Sudo 无法在 El Capitan 中的 /usr/bin 中创建文件

Sudo 无法在 El Capitan 中的 /usr/bin 中创建文件

我昨天升级到了 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。

相关内容