问题描述
Mac 上一些操作需要系统权限,输入正确密码时,一般情况下设置命令就可以解决:sudo chmod -R 777 要修改文件上层目录的路径。
但是部分情况下除外,比如 sudo 移动到文件到 /usr/bin 目录,或者 sudo pip update 等,仍然会失败,提示 operation not permitted。
原因分析
Mac 电脑启用了 SIP(System Integrity Protection),增加了 rootless 机制,导致即使在 root 权限下依然无法修改文件,关闭该保护机制才能进行修改
解决方案
- 重启电脑,屏幕出现苹果 logo 的时候,按照 Command + R,直到进入保护模式
- 保护模式:屏幕正中是一个对话框,提示恢复某个备份,或者恢复出厂系统等等。左上角有一排工具栏
- 左上角找到 terminal 终端,打开,并输入 csrutil disable
- 再次重启电脑,即可对 usr/bin 目录下文件进行修改了
PS:如果要恢复保护机制,重新进入保护模式,同样方式在终端输入 csrutil enable 即可