如何在 Mac 上的 /usr/bin 中创建符号链接?

如何在 Mac 上的 /usr/bin 中创建符号链接?

环境:OSX Sierra,Darwin 内核版本 16.3.0

根本问题:我想使用中央存储库中的一组 shell 脚本,这些脚本具有 #!/usr/bin/zsh。在我的 Mac 上,zsh 位于 /bin/zsh 中。

尝试的解决方案:我想创建一个符号链接

ln -s /bin/zsh /usr/bin/zsh

我的用户帐户具有管理员权限,但我不是 root 用户,并且我不想在此 Mac 上启用 root 用户。因此,我首先执行了

sudo su

获取具有 root 权限的 shell,然后执行命令。但是我仍然收到错误消息ln:/usr/bin/zsh:操作不允许

问题:

  • 为什么我会收到此错误信息?

  • 我要做什么才能创建链接?

  • 有没有更好的方法来实现我最初的目标?请注意,修复 #! 行不是一个选项。

答案1

您收到此消息是因为 Apple 的系统完整性保护. 系统完整性保护包括对系统以下部分的保护:

/System
/usr
/bin
/sbin
Apps that are pre-installed with OS X

第三方应用和安装程序可以继续写入的路径和应用包括:

/Applications
/Library
/usr/local

这意味着您可以简单地创建一个符号链接/usr/local/bin(它仍然在您的 $PATH 中)。

但是,似乎您特别需要在 中创建符号链接/usr/bin。您可以通过禁用系统完整性保护来实现这一点(请不要这样做,只需编辑脚本即可。)。您可以通过以下方式禁用它(我自己还没有测试过!):

Click the  menu.
Select Restart...
Hold down command-R to boot into the Recovery System.
Click the Utilities menu and select Terminal.
Type csrutil disable and press return.
Close the Terminal app.
Click the  menu and select Restart....

相关内容