当我尝试在我的/ 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,我也会收到此错误。
答案 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
默认情况下不存在,但 在默认路径中,因此只要您创建它,就会搜索它命令。
它也可以禁用系统完整性保护,但通常最好将其保留并在更合适的位置进行自定义。 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级权限的命令。