Mac下操作文件,遇到Operation not permitted
问题:在/usr/lib下操作文件遇到Operation not permitted
原因
在Mac OS10.11之后,Apple公司为了提高系统环境安全,引入了一个内核保护措施--SIP(System Integrity Protection,系统完整性保护),又称Rootless mode机制。
在SIP机制下,系统默认会锁定/system、/sbin、/usr这三个目录,即使切换到root用户也只能查看,不能进行其他操作。
SIP可以有效地防止恶意程序对电脑进行破坏,所以平时建议保持开启状态。
# 查看SIP状态
csrutil status
目前SIP是启用状态
解决办法
1.重启电脑,进入恢复模式,禁用SIP
重启电脑,苹果图标亮的时候,同时按住Command+R进入恢复模式。(按击一次即可,然后等待读条)
进入到了恢复页面,第一栏 -> 实用工具 ->打开终端
# 关闭保护机制
csrutil disable
# 重启
reboot
2.将根目录变为可读写的(重启后失效)
sudo mount -uw /
操作成功后,根目录读写功能已开启,你可以操作根目录了。
如果执行命令失败,错误如下,则是因为RIP未被禁用。
mount_apfs: volume could not be mounted: Operation not permitted
mount: / failed with 77
3.最后,重启电脑到恢复模式,启用SIP
# 开启保护机制
csrutil enable
# 重启
reboot