Oui, Mac apporte de nombreuses améliorations à Unix dans le domaine des fichiers. En ignorant la totalité de la fourchette de ressources qui n’est plus très utilisée, il existe:
- les autorisations Unix standard
ugo
rwx
et ainsi de suite. Les outils Unix normaux s'appliquent.
- ACL , visualisable avec
ls -le
et modifiable avec chmod [ -a | +a | =a ]
.
- drapeaux de fichiers visibles avec
ls -lO
(Capital oh, pas zéro) et modifiables avec chflags
.
- attributs étendus , visibles avec
ls -l@
(clés d'attribut uniquement) et visibles et modifiables avec xattr
. (Utilisez xattr -h
de l'aide si man xattr
ne vous donne rien.)
- À partir de OS X 10.11 "El Capitan", la protection de l’intégrité du système (SIP) protège davantage certains fichiers des modifications apportées par les processus ordinaires, même lors
sudo
de l’exécution en tant que root
. Les fichiers protégés par SIP seront listés par ls -lO
ayant le restricted
drapeau et / ou par ls -l@
l' com.apple.rootless
attribut.
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é, sudo chflags norestricted
et sudo xattr -d com.apple.rootless
également renvoyer une erreur « Opération non autorisée ». Pour effacer l'indicateur et / ou l'attribut, vous devez démarrer 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, puis rappelez-vous que vos fichiers seront sous /Volumes/Macintosh HD
ou quel que soit votre démarrage. lecteur est nommé) ou désactivez SIP complètement puis redémarrez et les commandes devraient alors fonctionner. Sachez toutefois que les futures mises à jour du système d'exploitation restaureront probablement l' restricted
indicateur et les com.apple.rootless
attributs des fichiers que vous avez supprimés.
La désactivation de SIP n'est pas recommandée car elle supprime une grande partie de la protection contre les logiciels malveillants et les dommages accidentels. De plus, il n'est pas nécessaire de supprimer simplement la protection fichier par fichier. Si vous désactivez SIP, réactivez-le lorsque vous avez terminé les modifications.
Notez que si ls -lO
affiche l' schg
indicateur est défini, vous devez passer 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.
sudo chgrp wheel ./entries
?