web-dev-qa-db-fra.com

Sudo ne peut pas créer de fichier dans / usr / bin à El Capitan

Je suis passé à El Capitan hier et tout allait bien jusqu'à récemment, quand j'ai remarqué que je ne pouvais rien écrire (avec Sudo ofc) sur/usr/bin car j'essayais d'installer phpbrew.

Qu'est-ce qui pourrait causer cela et comment le résoudre?

enter image description here

12
sushil

Depuis OSX 10.11, Apple renforce le système de sécurité. Appelé System Integrity Protection, Apple se verrouille:

/System
/sbin
/usr (with the exception of /usr/local subdirectory)

Pour désactiver cette fonction de sécurité, vous devez redémarrer votre ordinateur et conserver CMD+R au démarrage pour démarrer en mode de récupération OS X.

Alors OS X Utilities > Terminal

Tapez la commande csrutil disable; reboot

Votre ordinateur va redémarrer. Vous verrez un message de confirmation concernant la désactivation.

Pour vérifier le statut du type de CRS csrutil status

14
Ragnar

Comme mentionné par Ragnar , le répertoire /usr est verrouillé par le système, à l'exception de /usr/local. Ensuite, si votre scénario le permet, je vous recommande d’ajouter le lien symbolique à /usr/local/bin. Si vous n'avez pas d'exigence stricte d'utiliser /usr/bin, c'est un moyen de contourner l'erreur "Opération non autorisée".

2
Gustavo Straube

Vous pouvez vérifier si un fichier ou un répertoire particulier est limité par la protection de l'intégrité du système (SIP)/Rootless de OSX en répertoriant les indicateurs de fichier à l'aide de l'option -O de ls (par exemple, pour voir quels répertoires sont restreints):

ls -Ol /

Les répertoires ou fichiers contrôlés par SIP s'affichent sous la forme "restreint".

Il y a tous les détails dans les réponses à cette question à propos de SIP/rootless.

1
Pierz