web-dev-qa-db-fra.com

Opération non autorisée sur une racine - El Capitan (sans racine désactivée)

J'essaie de déplacer quelque chose vers/usr/bin sur OS X El Capitan. J'ai désactivé rootless en utilisant les commandes suivantes: Sudo nvram boot-args="rootless=0"; Sudo reboot, mais je continue à avoir la même erreur:

MacBook-Air:~ Mark$ Sudo cp class-dump /usr/bin
Password:
cp: /usr/bin/class-dump: Operation not permitted
MacBook-Air:~ Mark$ Sudo mv class-dump /usr/bin
mv: rename class-dump to /usr/bin/class-dump: Operation not permitted
204
Mark Bourke

Nvm. Pour quiconque ayant ce problème, vous devez redémarrer votre mac et appuyer sur ⌘ + R lors du démarrage. Ensuite, allez dans Utilities> Terminal et tapez les commandes suivantes:

csrutil disable
reboot 

Cela résulte de la protection de l'intégrité du système. Plus d'infos ici .

MODIFIER

Si vous savez ce que vous faites et si vous êtes habitué à utiliser Linux, vous devez utiliser la solution ci-dessus, car de nombreuses restrictions SIP sont un vrai casse-tête. 

Cependant, si vous êtes un bricoleur/noob/"poweruser"} et que vous ne savez pas ce que vous faites, cela peut être très dangereux et vous feriez mieux d'utiliser la réponse ci-dessous.

331
Mark Bourke

La solution correcte consiste à copier ou à installer dans /usr/local/bin et non /usr/bin. Cela est dû à System Integrity Protection (SIP). SIP rend /usr/bin en lecture seule, mais laisse /usr/local en lecture-écriture.

SIP ne doit pas être désactivé, comme indiqué dans la réponse ci-dessus, car il ajoute une couche de protection supplémentaire contre les logiciels malveillants bénéficiant d'un accès root. Voici une explication complète de ce que SIP fait et de son utilité.

Comme suggéré dans cette réponse il ne faut pas désactiver SIP (mode sans racine) "Il n'est pas recommandé de désactiver le mode sans racine! La meilleure pratique consiste à installer des éléments personnalisés dans"/usr/local "uniquement. . " 

205
hariszaman

Si vous voulez prendre le contrôle de /usr/bin/

Vous devrez redémarrer votre système:

Juste après le son de démarrage, maintenez la touche Command-R enfoncée pour démarrer le système de récupération.

Cliquez sur le menu Utilitaires et sélectionnez Terminal.

Tapez csrutil disable et appuyez sur Entrée

Cliquez sur le menu  et sélectionnez Redémarrer

Une fois vos modifications validées, assurez-vous de réactiver SIP! Cela protège beaucoup votre système. (Mêmes étapes que ci-dessus, à l'exception du type: csrutil enable)

13
Elliot Yap

Si après "csrutil désactivé", votre commande ne fonctionne toujours pas, essayez avec "Sudo" dans le terminal, par exemple:

Sudo mv geckodriver usr/local/bin

Et ça devrait marcher.

0
Nicolas