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 reçois toujours 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
macos
osx-elcapitan
Mark Bourke
la source
la source
Réponses:
Nvm. Pour toute autre personne ayant ce problème, vous devez redémarrer votre Mac et appuyer sur ⌘ + R lors du démarrage. Ensuite, allez dans Utilitaires> Terminal et tapez les commandes suivantes:
Ceci est le résultat de la protection de l'intégrité du système. Plus d'infos ici .
ÉDITER
Si vous savez ce que vous faites et que vous êtes habitué à exécuter Linux, vous devez utiliser la solution ci-dessus, car bon nombre des restrictions SIP sont une véritable douleur.
Cependant, si vous êtes un bricoleur / noob / "poweruser" et ne savez pas ce que vous faites, cela peut être très dangereux et il vaut mieux utiliser la réponse ci-dessous .
la source
csrutil enable; reboot
. La commande ne fonctionne malheureusement pas en mode normal.La bonne solution est de copier ou d'installer
/usr/local/bin
non/usr/bin
. Ceci est dû à la protection de l'intégrité du système (SIP) . SIP est en/usr/bin
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 obtenant un accès root. Voici une explication complète de ce que fait SIP et pourquoi il est utile.
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."
la source
java
à/usr/local/bin/java
mes alias de Bashrc, après avoir fait le lien approprié dans ce dossier que cette réponse suggère.rm
quoi que ce soit/usr/bin/
? Je comprends que SIP a son but, mais je veux supprimer un exécutable spécifique./usr/local/bin
sur mon chemin et openssl 1.0.2n est correctement lié à/usr/local/bin/openssl
mais chaque fois que je le fais,which openssl
il montre toujours/usr/bin/openssl
quelle est l'ancienneOpenSSL 0.9.8zh 14 Jan 2016
version. Comment faire en sorte que mon système préfère l'/usr/local/bin/openssl
un à l'autre?Si vous souhaitez 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 retour
Cliquez sur le menu et sélectionnez Redémarrer
Une fois que vous avez validé vos modifications, assurez-vous de réactiver SIP! Cela fait beaucoup pour protéger votre système. (Mêmes étapes que ci-dessus sauf type: csrutil enable)
la source
Si après avoir appelé "csrutil désactivé" votre commande ne fonctionne toujours pas, essayez avec "sudo" dans le terminal, par exemple:
Et ça devrait marcher.
la source