Ja, Mac hat viele Verbesserungen an Unix im Bereich der Dateien. Wenn man die ganze Ressourcengabel ignoriert , die nicht mehr viel benutzt wird, gibt es:
- die Standard-Unix-Berechtigungen
ugo
rwx
und so weiter. Es gelten die normalen Unix-Tools.
- ACLs , sichtbar mit
ls -le
und änderbar mit chmod [ -a | +a | =a ]
.
- Dateiflaggen sichtbar mit
ls -lO
(Capital oh, not zero) und änderbar mit chflags
.
- Erweiterte Attribute , sichtbar mit
ls -l@
(nur Attributschlüssel) und sichtbar und änderbar mit xattr
. (Verwenden Sie xattr -h
für Hilfe, wenn man xattr
Sie nichts gibt.)
- Ab OS X 10.11 "El Capitan" schützt der Systemintegritätsschutz (SIP) einige Dateien vor Änderungen gegenüber normalen Prozessen, auch wenn sie
sudo
als ausgeführt werden root
. Durch SIP geschützte Dateien werden ls -lO
mit dem restricted
Flag und / oder ls -l@
mit dem com.apple.rootless
Attribut aufgelistet .
Aufgrund von Unix-Berechtigungen, ACLs, Dateiflaggen oder SIP können Ihnen Vorgänge für eine Datei verweigert werden. So entsperren Sie eine Datei vollständig:
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 sudo chflags norestricted
und sudo xattr -d com.apple.rootless
außerdem den Fehler "Vorgang nicht zulässig" zurückgibt. Um das Flag und / oder Attribut zu löschen, müssen Sie in macOS Recovery booten und entweder die Befehle vom Terminal ausführen (möglicherweise müssen Sie zuerst das Festplatten-Dienstprogramm verwenden, um das Boot-Laufwerk zu entsperren und bereitzustellen, und sich dann daran erinnern, dass sich Ihre Dateien unter /Volumes/Macintosh HD
oder unter welchem Boot befinden Laufwerk ist benannt) oder SIP ganz deaktivieren und dann neu starten und die Befehle sollten dann funktionieren. Beachten Sie jedoch, dass zukünftige Betriebssystemaktualisierungen wahrscheinlich das restricted
Flag und das com.apple.rootless
Attribut für alle Dateien wiederherstellen , aus denen Sie es entfernt haben.
Das Deaktivieren von SIP wird nicht empfohlen, da es viel Schutz vor Malware und versehentlichem Schaden entfernt. Außerdem ist es nicht erforderlich, wenn Sie den Schutz einfach auf Dateibasis entfernen können. Wenn Sie SIP deaktivieren, aktivieren Sie es erneut, wenn Sie die gewünschten Änderungen vorgenommen haben.
Beachten Sie, dass Sie, wenn angezeigt wird, dass ls -lO
das schg
Flag gesetzt ist, in den Einzelbenutzermodus wechseln müssen, um es zu deaktivieren. Ich werde hier nicht darauf eingehen, da es größere Fragen gibt, warum die Datei dieses Flag gesetzt hat und warum Sie versuchen, sich damit herumzuschlagen und was die Konsequenzen sein werden.
sudo chgrp wheel ./entries
?