web-dev-qa-db-fra.com

Comment créer des liens symboliques dans / usr / bin sur un Mac?

Environnement: OSX Sierra, Darwin Kernel version 16.3.0

Problème racine: je veux utiliser un tas de scripts Shell dans un référentiel central, qui ont un #!/Usr/bin/zsh. Sur mon Mac, le zsh se trouve dans/bin/zsh.

Tentative de solution: je veux créer un lien symbolique

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

Mon compte d'utilisateur dispose de droits d'administrateur, mais je ne suis pas root et je préférerais ne pas activer l'utilisateur root sur ce Mac. C'est pourquoi j'ai d'abord fait une

Sudo su

pour obtenir un shell avec les privilèges root, puis exécuter la commande ln . Cependant, je reçois toujours le message d'erreur . Ln:/usr/bin/zsh: opération non autorisée .

Des questions:

  • Pourquoi ai-je ce message d'erreur?

  • Que devrais-je faire pour créer le lien?

  • Y a-t-il un meilleur moyen d'atteindre mon objectif initial? Notez que la correction du #! lignes n'est pas une option.

10
user1934428

Vous obtenez ce message en raison de la protection de l'intégrité du système d'Apple . La protection de l'intégrité du système inclut la protection de ces parties du système:

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

Les chemins d'accès et les applications que les applications tierces et les installateurs peuvent continuer à écrire pour inclure:

/Applications
/Library
/usr/local

Cela signifie que vous pouvez simplement créer un lien symbolique dans /usr/local/bin (il est toujours dans votre $ PATH).

MAIS, il semble que vous ayez spécifiquement besoin de créer le lien symbolique dans /usr/bin. Vous pouvez y parvenir en désactivant la protection de l'intégrité du système (veuillez ne pas le faire, éditez simplement les scripts ..). Vous pouvez le désactiver par (je ne l'ai pas testé moi-même !!!):

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....
13
13dimitar