J'essaie de faire ce qui suit sur mon Mac (10.6.7):
Sudo chown myusername:wheel ./entries
mais Unix/Mac retourne "Operation not allowed". Lorsque je ls -lash
le fichier coupable, il se présente comme suit:
8 -rwxrwxrwx 1 myusername staff 394B Apr 26 23:26 entries
J'ai essayé Sudo
et Sudo su
; rien ne fonctionne. Des idées quoi de neuf?
J'essaie de chmod
fichiers que j'ai copiés de mon ancien ordinateur Ubuntu. La plupart des fichiers ont chmod
'ed avec succès récursivement; juste celui-ci est bloqué et je ne comprends pas pourquoi.
Après beaucoup de difficultés, voici ce que j'ai dû faire pour résoudre le problème:
~/Desktop
Sudo chown myusername:staff ./entries
Sudo rm ./entries
Sudo mv ~/Desktop/entries ./entries
Oui, Mac apporte de nombreuses améliorations à Unix dans le domaine des fichiers. En ignorant l'ensemble ressource fork chose qui n'est plus beaucoup utilisée, il y a:
ugo
rwx
et ainsi de suite. Les outils Unix normaux s'appliquent.ls -le
et modifiable avec chmod [ -a | +a | =a ]
.ls -lO
(majuscule, pas zéro) et modifiables avec chflags
.ls -l@
(clés d'attribut uniquement) et visualisable et modifiable avec xattr
. (Utilisez xattr -h
pour obtenir de l'aide si man xattr
ne vous donne rien.)Sudo
est exécuté en tant que root
. Les fichiers protégés par SIP seront répertoriés par ls -lO
avec le drapeau restricted
et/ou par ls -l@
avec l'attribut com.Apple.rootless
.Des opérations sur un fichier peuvent être refusées en raison d'autorisations Unix, de listes de contrôle d'accès, d'indicateurs de fichier ou de SIP. Pour déverrouiller complètement un fichier:
Sudo chmod -N file # Remove ACLs from file
Sudo chmod ugo+rw file # Give everyone read-write permission to file
Sudo chflags nouchg file # Clear the user immutable flag from file
Sudo chflags norestricted file # Remove the SIP protection from file
Sudo xattr -d com.Apple.rootless file # Remove SIP protection from file
Si la protection de l'intégrité du système (SIP) est activée, Sudo chflags norestricted
et Sudo xattr -d com.Apple.rootless
renverront également l'erreur "Opération non autorisée". Pour effacer l'indicateur et/ou l'attribut, vous devez démarrer dans macOS Recovery et exécuter les commandes à partir de Terminal (vous devrez peut-être d'abord utiliser Utilitaire de disque pour déverrouiller et monter votre lecteur de démarrage, sans oublier que vos fichiers seront placés sous. /Volumes/Macintosh HD
ou quel que soit le nom de votre lecteur d'amorçage) ou désactivez SIP au total puis redémarrez et les commandes devraient alors fonctionner. Sachez toutefois que les futures mises à jour du système d'exploitation restaureront probablement les attributs restricted
et com.Apple.rootless
à tous les fichiers que vous avez supprimés.
Désactiver SIP n'est pas recommandé car il supprime une grande partie de la protection contre les logiciels malveillants et les dommages accidentels. De plus, il n'est pas nécessaire de simplement supprimer la protection base de fichier. Si vous désactivez SIP, réactivez-le lorsque vous avez terminé les modifications.
Notez que si ls -lO
indique que l'indicateur schg
est défini, vous devez entrer en mode mono-utilisateur pour le désactiver. Je ne vais pas m'étendre là-dessus, car il y a de plus grandes questions sur la raison pour laquelle le fichier a cet indicateur défini, pourquoi vous essayez de le gêner et quelles en seront les conséquences.
J'ai eu le même problème. Il s’avère que les fichiers incriminés ont été marqués «Verrouillé» par le système d’exploitation. J'ai trouvé cette solution et elle a résolu les problèmes en quelques secondes:
http://explanatorygap.net/2005/07/10/unlocking-files-recursively-from-the-command-line/
Il semble que la commande
rm
ait changé dans Tiger, de sorte que si vous utilisezrm -Rf
avec des privilèges élevés, les fichiers seront automatiquement déverrouillés.
Sous OS X avant Tiger: find /Volumes/Transit -flags +uchg -print0 | xargs -0 chflags nouchg
Sous OS X après Tiger: Sudo rm -Rf foldername/
De même, même après OS X 10.4, il peut exister des indicateurs de métadonnées de fichier, tels que uchg
et uappnd
, qui empêchent toute modification des autorisations ou de la propriété des fichiers. chflags
peut supprimer les drapeaux. Certains attributs/métadonnées de fichier et la façon dont ils sont gérés par différents outils de copie sont ici .
J'ai eu le même problème avec le Crashplan.app.
Toutes les solutions énumérées ici ne m'aideraient pas, mais celle-ci a fait l'affaire: http://forums.macrumors.com/showthread.php?t=1546163
Vous devez modifier les indicateurs immuables du système et de l'utilisateur:
Faites ceci pour voir quels drapeaux sont actifs sur votre fichier/dossier:
ls -lhdO MyFile
La réponse pourrait ressembler à ceci:
drwxrwxr-x 3 root admin schg,uchg 102B Apr 8 2013 MyFile
schg , uchg sont ces drapeaux immuables. Un pour le système et un pour l'utilisateur. Pour les supprimer, procédez comme suit:
chflags noschg CrashPlan.app # this removes system immutable flag
chflags nouchg CrashPlan.app # this removes the user immutable flags
Ensuite, pour moi au moins, le fichier est déverrouillé et vous pouvez le supprimer!
Sous OS X 10.11 (El Capitan), cela peut également être causé par la nouvelle fonctionnalité Rootless . Voir cette réponse pour une explication.
En résumé, pour certains répertoires importants, il n’ya aucun moyen de les modifier - que vous utilisiez Sudo
, chown
ou chmod
. Cela affecte le répertoire /usr
(bien que vous soyez autorisé à modifier /usr/local
).
Pour modifier un répertoire protégé par Rootless, vous devez désactiver Rootless . Et bien sûr, réactivez-le après vos modifications, car il s'agit d'une amélioration importante de la sécurité.
J'ai eu le même problème, à propos de mon dossier personnel. À la fin, je viens d'utiliser Finder comme ceci:
Allez -> Ordinateur -> votre disque -> Utilisateurs -> votre nom d’utilisateur -> clic droit -> Obtenir des informations
J'ai trouvé que c'était verrouillé, probablement je l'ai fait dans le passé et j'ai oublié. Décochez la case verrouillée, le problème est résolu.
Je peux vous recommander d'utiliser "Obtenir des informations" à partir du Finder afin de résoudre ce type de problèmes.
(OS X 10.8.3)
Assurez-vous que le fichier et son dossier parent sont déverrouillés
Je rencontrais un problème similaire lorsque je tentais de supprimer un fichier de signature de messagerie Mac Mail. Je ne pouvais pas le supprimer avant d'avoir déverrouillé le fichier ainsi que son dossier parent.