在root上时不允许操作 - El Capitan(无根禁用)

时间:2015-09-18 19:06:42

标签: macos osx-elcapitan

我正在尝试在OS X El Capitan上将某些内容移至 / usr / bin 。我使用以下命令禁用了rootless:sudo nvram boot-args="rootless=0"; sudo reboot,但我一直收到同样的错误:

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

4 个答案:

答案 0 :(得分:339)

NVM。对于遇到此问题的其他人,您需要重启Mac并在启动时按⌘+ R 。然后进入实用工具>终端并输入以下命令:

csrutil disable
reboot 

这是系统完整性保护的结果。更多信息here

修改

如果您知道自己在做什么并且习惯于运行Linux,那么您应该使用上述解决方案,因为许多 SIP 限制是完全痛苦的屁股。

但是,如果你是修补匠/ noob /" poweruser" 并且不知道你在做什么,这可能是非常危险的,你会感觉更好使用the answer below

答案 1 :(得分:217)

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

不应该像上面的答案中所述禁用 SIP ,因为它增加了另一层保护,防止恶意软件获得root访问权限。 Here完整解释了SIP的作用及其有用的原因。

正如this answer中所建议的,不应禁用SIP(无根模式)“不建议禁用无根模式!最佳做法是仅将自定义内容安装到”/ usr / local“。 “

答案 2 :(得分:13)

如果您想控制/usr/bin/

您需要重新启动系统:

在启动声音之后,按住Command-R启动进入恢复系统

单击Utilities菜单,然后选择Terminal

键入csrutil disable并按return

单击菜单并选择重新启动

提交更改后,请务必重新启用SIP!它可以保护您的系统。 (与上面的步骤相同,但类型为:csrutil enable)

答案 3 :(得分:0)

如果在“禁用csrutil”之后您的命令仍然不起作用,请在终端中尝试“ sudo”,例如:

sudo mv geckodriver usr/local/bin

它应该可以工作。