Ja, Mac hat viele Erweiterungen zu Unix im Bereich der Dateien. Ignoriert man die ganze resource fork Sache, die nicht mehr viel benutzt wird, gibt es:
- die Standard-Unix-Berechtigungen
ugo
rwx
und so weiter. Es gelten die normalen Unix-Werkzeuge.
- ACL‘s, einsehbar mit
ls -le
und änderbar mit chmod [-a | +a | =a]
.
- Dateiflags, anzeigbar mit
ls -lO
(Großbuchstabe oh, nicht Null) und änderbar mit chflags
.
- erweiterte Attribute , anzeigbar mit
ls -l@
(nur Attributschlüssel) und anzeigbar und änderbar mit xattr
. (Verwenden Sie xattr -h
für die Hilfe, wenn man xattr
Ihnen nichts gibt.)
- Beginnend mit OS X 10.11 “El Capitan”, * System Integrity Protection ** (SIP) schützt einige Dateien weiter vor Änderungen durch normale Prozesse, auch wenn Sie
sudo
verwenden, um als root
zu laufen. Dateien, die durch SIP geschützt sind, werden von ls -lO
als mit dem Flag restricted
und/oder als mit dem Attribut ls -l@
aufgeführt.
Operationen an einer Datei können Ihnen aufgrund von Unix-Berechtigungen, ACLs, Dateiflags oder SIP verweigert werden. Um eine Datei vollständig freizugeben:
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
Wenn der Systemintegritätsschutz (SIP) aktiviert ist, geben com.apple.rootless
und sudo chflags norestricted
auch den Fehler “Operation nicht erlaubt” zurück. Um das Flag und/oder das Attribut zu löschen, müssen Sie in macOS Recovery booten und entweder die Befehle vom Terminal aus ausführen (möglicherweise müssen Sie zuerst das Festplattendienstprogramm verwenden, um Ihr Boot-Laufwerk zu entsperren und zu mounten, dann denken Sie daran, dass Ihre Dateien unter sudo xattr -d com.apple.rootless
oder wie auch immer Ihr Boot-Laufwerk benannt ist, liegen) oder SIP insgesamt deaktivieren und dann neu starten und die Befehle sollten dann funktionieren. Seien Sie sich jedoch bewusst, dass zukünftige Betriebssystem-Updates wahrscheinlich das /Volumes/Macintosh HD
-Flag und das restricted
-Attribut für alle Dateien wiederherstellen werden, aus denen Sie es entfernt haben.
_ Das Deaktivieren von SIP wird nicht empfohlen _, da es einen Großteil des Schutzes vor Malware und versehentlicher Beschädigung aufhebt, außerdem ist es nicht notwendig, wenn Sie den Schutz einfach auf Dateibasis entfernen können. Wenn Sie SIP deaktivieren, aktivieren Sie es wieder, wenn Sie mit den Änderungen fertig sind.
Beachten Sie, dass Sie, wenn com.apple.rootless
anzeigt, dass das Flag ls -lO
gesetzt ist, in den Einzelbenutzermodus wechseln müssen, um es wieder zu deaktivieren. Ich werde hier nicht näher darauf eingehen, da es wichtigere Fragen darüber gibt, warum die Datei dieses Flag gesetzt hat und warum Sie versuchen, daran herumzupfuschen, und was die Konsequenzen sein werden.