J'essaie de déplacer quelque chose vers /usr/bin sous OS X El Capitan. J'ai désactivé la fonction sans racine en utilisant les commandes suivantes : sudo nvram boot-args="rootless=0" ; sudo reboot
, mais je continue à obtenir 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
Nvm. Pour tous ceux qui ont ce problème, vous devez redémarrer votre Mac et appuyer sur ⌘+R au démarrage. Ensuite, allez dans Utilitaires > Terminal et tapez les commandes suivantes :
csrutil disable
reboot
C'est le résultat de la protection de l'intégrité du système. Plus d'informations [ici][1].
EDIT
Si vous savez ce que vous faites et que vous avez l'habitude d'utiliser Linux, vous devriez utiliser la solution ci-dessus car la plupart des restrictions SIP sont une véritable plaie.
Cependant, si vous êtes un tinkerer/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.
La solution correcte est de copier ou d'installer dans /usr/local/bin
et non dans /usr/bin
. Ceci 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 autre couche de protection contre les logiciels malveillants qui obtiennent un accès root. [Voici][1] une explication complète de ce que fait SIP et pourquoi il est utile.
Comme suggéré dans [cette réponse][2], 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 est d'installer les éléments personnalisés uniquement dans "/usr/local"".
[1] : https://apple.stackexchange.com/questions/193368/what-is-the-rootless-feature-in-el-capitan-really [2] : https://apple.stackexchange.com/questions/196224/unix-ln-s-command-not-permitted-in-osx-el-capitan-beta3
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 dans le système de récupération.
Cliquez sur le menu Utilitaires et sélectionnez Terminal
Tapez csrutil disable et appuyez sur la touche retour.
Cliquez sur le menu et sélectionnez Redémarrer
Une fois que vous avez validé vos modifications, assurez-vous de réactiver SIP ! Il contribue grandement à la protection de votre système. (Mêmes étapes que ci-dessus, mais tapez : csrutil enable)