259

我正在尝试将某些内容移至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

5 回答 5

372

非易失性。对于其他遇到此问题的人,您需要重新启动您的 Mac 并在启动时按⌘+R 。然后进入实用程序>终端并键入以下命令:

csrutil disable
reboot 

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

编辑

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

但是,如果您是修补匠/菜鸟/“超级用户”并且不知道自己在做什么,这可能非常危险,您最好使用下面的答案

于 2015-09-18T21:56:41.357 回答
297

正确的解决方案是复制或安装/usr/local/bin/usr/bin。这是由于系统完整性保护(SIP)。SIP/usr/bin只读,但保持/usr/local读写状态。

如上面的答案所述,不应禁用SIP ,因为它增加了另一层保护,防止恶意软件获得 root 访问权限。以下是对 SIP 的作用以及它为何有用的完整说明。

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

于 2016-07-18T11:13:09.850 回答
15

如果你想控制/usr/bin/

您将需要重新启动系统:

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

单击实用程序菜单并选择终端

键入 csrutil disable 并按回车键

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

提交更改后,请确保重新启用 SIP!它对保护您的系统有很大帮助。(除了类型:csrutil enable,与上述步骤相同)

于 2018-03-31T04:31:12.423 回答
0

最可能的原因是系统完整性保护 (SIP) - csrutil 是命令行实用程序。您需要禁用它才能查看目录。

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

csrutil status

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

csrutil disable

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

要启用它(完成后应重新打开):

csrutil enable

于 2021-11-17T16:23:24.153 回答
-1

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

sudo mv geckodriver /usr/local/bin

它应该工作。

于 2019-01-26T20:07:08.277 回答