我正在尝试移动一些东西到OS X El Capitan上的/usr/bin。我使用以下命令禁用了root - less: sudo nvram boot-args="root - less=0";sudo重启,但我一直得到相同的错误:

MacBook-Air:~ Mark$ sudo cp class-dump /usr/bin
Password:
cp: /usr/bin/class-dump: Operation not permitted
MacBook-Air:~ Mark$ sudo mv class-dump /usr/bin
mv: rename class-dump to /usr/bin/class-dump: Operation not permitted

当前回答

正确的解决方案是复制或安装到/usr/local/bin,而不是/usr/bin。这是由于系统完整性保护(SIP)。SIP将/usr/bin设为只读,而将/usr/local设为读写。

正如上面的答案所述,SIP不应该被禁用,因为它增加了另一层保护,防止恶意软件获得根访问权。这里完整地解释了SIP的功能以及它的有用之处。

在这个答案中建议,不应该禁用SIP(无根模式)“不建议禁用无根模式!”最好的做法是只在“/usr/local”中安装自定义内容。

其他回答

Nvm。对于其他有此问题的人,您需要重新启动mac,并在启动时按⌘+R。然后进入Utilities > Terminal,输入以下命令:

csrutil disable
reboot 

这是系统完整性保护的结果。更多信息请点击这里。

EDIT

如果您知道自己在做什么,并且习惯于运行Linux,那么您应该使用上面的解决方案,因为许多SIP限制完全令人头疼。

然而,如果你是一个修补匠/新手/“超级用户”,不知道自己在做什么,这可能是非常危险的,你最好使用下面的答案。

最可能的原因是系统完整性保护(SIP)——csrutil是命令行实用程序。如果要查看该目录,需要禁用该目录。

要查看您的状态,您需要:

CSRutil 状态

禁用它(这通常是一个坏主意):

csrutil disable

(那么您可能需要重新启动)。

要启用它(当你完成时,它应该被打开):

csrutil启用

如果你想控制/usr/bin/

您需要重新启动您的系统:

在启动声音响起后,按住Command-R引导进入恢复系统

单击Utilities菜单并选择Terminal

输入csrutil disable并按回车键

单击“订阅”菜单并选择“重启”

一旦提交了更改,请确保重新启用SIP!它能保护你的系统。(除了type: csrutil enable外,步骤与上面相同)

正确的解决方案是复制或安装到/usr/local/bin,而不是/usr/bin。这是由于系统完整性保护(SIP)。SIP将/usr/bin设为只读,而将/usr/local设为读写。

正如上面的答案所述,SIP不应该被禁用,因为它增加了另一层保护,防止恶意软件获得根访问权。这里完整地解释了SIP的功能以及它的有用之处。

在这个答案中建议,不应该禁用SIP(无根模式)“不建议禁用无根模式!”最好的做法是只在“/usr/local”中安装自定义内容。