即使是sudo,也无法在/ usr / bin中创建符号链接

时间:2016-04-19 22:23:14

标签: macos terminal symlink

当我尝试在我的/ usr / bin文件夹中对二进制文件进行符号链接时,我得到一个不允许操作的错误:

SyntaxError: Unexpected token ILLEGAL
    at exports.runInThisContext (vm.js:53:16)
    at Module._compile (module.js:404:25)
    at Object.Module._extensions..js (module.js:432:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:313:12)
    at Function.Module.runMain (module.js:457:10)
    at startup (node.js:138:18)
    at node.js:974:3

即使是sudo,我也会收到此错误。

5 个答案:

答案 0 :(得分:102)

为什么我不能符号链接到/usr/bin

El Capitan的新System Integrity Protection功能可防止对OS X的多个核心部分进行更改,包括大多数/usr/,甚至是root。

我怎样才能将可执行文件添加到路径中?

本地自定义设置(例如您正在执行的操作)属于/usr/local。默认情况下,路径/usr/local/bin不存在,但您可以创建它并将自定义二进制文件(和符号链接)放入其中:

sudo mkdir -p /usr/local/bin
sudo ln -s /usr/bin/python2.7 /usr/local/bin/python2

请注意,虽然/usr/local/bin默认情况下不存在,但 在默认路径中,因此只要您创建它,就会搜索它命令。

禁用SIP

它也可以禁用系统完整性保护,但通常最好将其保留并在更合适的位置进行自定义。 Apple Stack Exchange问​​题有关于此的更多详细信息:What is the Rootless Feature in El-Captain, really?

答案 1 :(得分:6)

我在Mac OS High Sierra中为Sublime Text 3创建了符号链接

sudo ln -s /Applications/Sublime\ Text.app/Contents/SharedSupport/bin/subl /usr/local/bin/

我还试图在" / usr / bin"中创建符号链接。并且正在获得不允许的操作。

然后我在" / usr / local / bin"中创建了符号链接。而且没有错误。符号链接工作正常。只需确保" / usr / local / bin"在路上。

所以,似乎可以访问" / usr / bin"是受限制的。

答案 2 :(得分:3)

重启系统 - >长按 cmd + R 。 从实用程序菜单中选择一个终端 键入以下命令 csrutil disable 关闭终端并重新启动系统。

答案 3 :(得分:0)

  1. Create a symbolic link to psql in usr/bin (for mac only)
         command: sudo ln -s /Applications/Postgres.app/Contents/Versions/latest/bin/psql /usr/bin/psql 

如果由于权限问题而无法创建符号链接,则归因于“ csrutil”。禁用csrutil后,您可以创建符号链接。 请按照以下步骤禁用CSRUtill:

重新启动Mac。 在OS X启动之前,按住Command-R并按住不放,直到看到Apple图标和进度条。发布。这会引导您进入恢复状态。 从实用程序(在顶部栏)菜单中,选择终端。 在提示符下,键入以下内容,然后按Return键:csrutil disable 终端应显示一条消息,指出SIP已禁用。 从菜单中,选择重新启动。

答案 4 :(得分:-1)

尝试先运行sudo su,然后再运行带有root级权限的命令。