1. 修改/usr/bin文件夹,显示permission denied
由于系统启用了SIP(System Integerity Protection)导致root用户也没有修改权限,所以我们需要屏蔽掉这个功能.
(1)进入恢复模式:关机状态下,长按电源键直至进入选项界面
(2)关闭SPI:进入终端,输入csrutil disable
(3)重启进入正常模式,进入终端,输入csrutil status ,检查状态确保关闭成功,显示以下即可;
System Integrity Protection status: disabled.
注:修改完成后,要恢复SPI:进入终端,输入csrutil enable。
2. 显示Read-only file system
unable to copy extended attributes to /usr/bin/...: Read-only file system
2.1 第一种解决方法:(对Mac M1无效)
重新以可读可写的方式挂载文件系统
sudo mount -uw /
注:重启挂载会失效,需要重新挂载。
若出现:
mount_apfs: volume could not be mounted: Permission denied
mount: / failed with 66
注:在 macOS Catalina 及之前版本中,可以通过关闭 SIP 并在终端中更改 system 文件夹为可写入。但是,这一后门在6月发布的 Big Sur 中被关闭了。
2.2 第二种解决方法:(对Mac M1,创建可读写的目录只能在根目录下建立,在/usr/bin下建立无效)
(1)先在home目录下创建一个可以读写的目录,例如/Users/xjx/data
(2)sudo vim /etc/synthetic.conf
(3)在synthetic.conf文件中添加一行
data /Users/xjx/data
中间的分隔符一定要是tab
注:/Users/xjx/data是你自己创建的可读写的目录,可以自定义。用来做为data实际存储的目录。重启后会创建一个data的软链接,指向/Users/xjx/data
注:该只能在home下建立,如果data改为/usr/bin/data,则不能正常建立软链接。
(4) 重启即可
参考资料:/chinamen1/article/details/109760125 | /chinamen1/article/details/109760125
2.3 第三种解决方法:
解决思路是: 将系统重新挂载在到一个有读写权限的新目录下,在该目录下操作即可。见第一个参考链接。
参考资料:/question/403361335 | /thread/252037700