更新了 Mac OS X 11后發現,MacVim
不再能夠通過Terminal用命令打開了。
mvim hello.txt
于是嘗試將 mvim 重新復制到/usr/bin/中去
sudo cp -f mvim /usr/bin/
然而出現了權限問題:
cp: /usr/bin/mvim: Operation not permitted
搜索之后發現,是El Capitan
加入了Rootless機制
,不再能夠隨心所欲的讀寫很多路徑下了。設置 root 權限也不行。
Rootless機制將成為對抗惡意程序的最后防線
于是嘗試關閉 Rootless。重啟按住 Command+R,進入恢復模式,打開Terminal。
csrutil disable
重啟即可。如果要恢復默認,那么
csrutil enable
附錄:
csrutil命令參數格式:
csrutil enable [--without kext | fs | debug | dtrace | nvram][--no-internal]
禁用:csrutil disable
(等同于csrutil enable --without kext --without fs --without debug --without dtrace --without nvram)
其中各個開關,意義如下:
- B0: [kext] 允許加載不受信任的kext(與已被廢除的kext-dev-mode=1等效)
- B1: [fs] 解鎖文件系統限制
- B2: [debug] 允許task_for_pid()調用
- B3: [n/a] 允許內核調試 (官方的csrutil工具無法設置此位)
- B4: [internal] Apple內部保留位(csrutil默認會設置此位,實際不會起作用。設置與否均可)
- B5: [dtrace] 解鎖dtrace限制
- B6: [nvram] 解鎖NVRAM限制
- B7: [n/a] 允許設備配置(新增,具體作用暫時未確定)