我昨天升级到了 El Capitan,一切都很好,直到最近我注意到当我尝试安装 phpbrew 时无法在 /usr/bin 上写入任何内容(使用 sudo ofc)。
可能是什么原因造成此问题以及如何解决?
答案1
从 OSX 10.11 开始,Apple 加强了安全系统。系统完整性保护,苹果锁定:
/System
/sbin
/usr (with the exception of /usr/local subdirectory)
要禁用此安全功能,您必须重新启动计算机并CMD+R
在启动时按住以启动到 OS X 恢复模式。
然后OS X Utilities > Terminal
键入命令csrutil disable; reboot
您的计算机将重新启动。您将看到有关停用的确认消息。
验证 CRS 类型的状态csrutil status
答案2
作为拉格纳尔 (Ragnar) 曾提到,/usr
目录已被系统锁定,但 除外/usr/local
。然后,如果您的情况允许,我建议将符号链接添加到/usr/local/bin
。如果您对使用 没有严格的要求/usr/bin
,这是解决“操作不允许”错误的一种方法。
答案3
可以通过使用 ls 选项列出文件标志来验证特定文件或目录是否受到 OSX 的系统完整性保护 (SIP)/Rootless 的限制-O
(例如,查看 / 中哪些目录受到限制):
ls -Ol /
SIP 控制的目录或文件显示为“受限”。
答案中有详细信息问题关于 SIP/rootless。