更新了 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] 允许设备配置(新增,具体作用暂时未确定)
网友评论
csrutil status
System Integrity Protection status: disabled. 但是还是不能更改是为什么
请问 我执行 csrutil disable 报上面的错误 怎么办呢???
这句话不是很明白.. 重启? 重启什么呢?
el captain後才開始深入使用mac
以為是原先的權限問題,而一直對sudo哭XD