Как создать символические ссылки в /usr/bin на Mac?
Среда: OSX Sierra, ядро Darwin версии 16.3.0
Корневая проблема: я хочу использовать кучу сценариев оболочки в центральном хранилище, которые имеют #!/ Usr/bin/zsh. На моем Mac zsh находится в / bin / zsh.
Попытка решения: хочу создать символическую ссылку
ln -s /bin/zsh /usr/bin/zsh
Моя учетная запись имеет права администратора, но я не являюсь пользователем root, и я бы предпочел не включать пользователя root на этом Mac. Поэтому я сначала сделал
sudo su
чтобы получить оболочку с привилегиями root и затем выполнить команду ln. Однако я все еще получаю сообщение об ошибке 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....