7 votes

SIP empêchant la suppression de /opt/local

J'ai rencontré le même problème ce soir que cette question du SO qui n'a pas reçu de réponse complète.

J'essaie de désinstaller une ancienne installation de MacPorts et je tombe sur SIP :

mybox:~ me$ sudo rm -rf /opt/local
rm: /opt/local/var/macports/home/Library/Preferences: Operation not permitted
rm: /opt/local/var/macports/home/Library: Operation not permitted
rm: /opt/local/var/macports/home: Operation not permitted
rm: /opt/local/var/macports: Directory not empty
rm: /opt/local/var: Directory not empty
rm: /opt/local: Directory not empty

D'après la question initiale, la réponse semble impliquer SIP mais pourquoi SIP a-t-il décidé de protéger ce répertoire (vide) ?

EDIT : Voici les résultats de ls -a dans le répertoire :

./ ../

Et voici les résultats de ls -leOd /opt/local/var/macports/home/Library/Preferences :

drwxrwxrwx  2 root  wheel  - 64 Nov  8 19:45 /opt/local/var/macports/home/Library/Preferences/

.

MODIFIER 2018-11-12 :

Voici les résultats de ls -laeO@ /opt/local/var/macports/home

drwxr-xr-x  3 root  wheel  - 96 Nov  8 19:42 ./
drwxr-xr-x@ 3 root  wheel  - 96 Nov  8 19:45 ../
    com.apple.FinderInfo    32 
drwxr-xr-x  3 root  wheel  - 96 Nov  8 19:42 Library/

MODIFIER 2018-11-13 :

Voici les résultats de xattr -l /opt/local/var/macports

com.apple.FinderInfo:
00000000  00 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00  |........@.......|
00000010  00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00  |................|
00000020

9voto

Le répertoire est protégé par le protocole SIP parce qu'il s'agit du répertoire d'origine d'un macports vraisemblablement créé dans le cadre du processus d'installation de MacPorts.

La meilleure solution consiste d'abord à supprimer ce compte d'utilisateur, en suivant les instructions de la rubrique cette réponse acceptée à une autre question sur AppleSE. Vous pouvez également supprimer le macports qui existe également.

Plus précisément, les commandes suivantes supprimeront l'utilisateur et le groupe :

sudo /usr/bin/dscl . -delete "/Users/macports"
sudo /usr/bin/dscl . -delete "/Groups/macports"

En Page de désinstallation du site web de MacPorts mentionne la suppression de l'utilisateur et du groupe mais n'indique pas qu'il est nécessaire, en raison de la protection SIP, d'effectuer cette opération avant de supprimer les dossiers. Je pense qu'il y a également une erreur dans la syntaxe de leur dscl commande.

Une fois que vous avez fait cela, vous devriez être en mesure de sudo rm -rf /opt/local avec succès.

Le mérite de cette réponse revient en grande partie à @GordonDavisson qui a fourni 90% de la solution dans les commentaires, il y a quelques mois.

-1voto

Ruskes Points 44895

Essayez l'une des options suivantes

o Vous n'êtes pas le propriétaire du répertoire

ls -ld /chemin/vers/répertoire

o Vous n'avez pas le droit de supprimer le nom du répertoire dans le répertoire parent.

o Le répertoire ou son parent possède une ACL qui vous empêche de supprimer le répertoire.

ls -ldeO@ /chemin/vers/répertoire

ls -ldeO@ /chemin/vers/répertoire/

chmod pour jouer avec les ACL

o Le répertoire ou son parent possède le drapeau 'uchg' ou 'schg'.

ls -ldeO@ /chemin/vers/répertoire

ls -ldeO@ /chemin/vers/répertoire/

chflags pour manipuler les drapeaux.

et enfin ceci sudo chflags -R nouchg <parent>

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X