Ja, Mac heeft veel verbeteringen ten opzichte van Unix op het gebied van bestanden. Als je het hele resource fork ding negeert, dat niet veel meer gebruikt wordt, zijn er:
- de standaard Unix permissies
ugo
rwx
enzovoort. Normale Unix gereedschappen zijn van toepassing.
- ACL‘s, te bekijken met
ls -le
en te wijzigen met chmod [-a | +a | =a]
.
- bestandsvlaggen, te bekijken met
ls -lO
(hoofdletter oh, niet nul) en te wijzigen met chflags
.
- uitgebreide attributen , te bekijken met
ls -l@
(alleen attribuutsleutels) en te bekijken en te wijzigen met xattr
. (Gebruik xattr -h
voor hulp als man xattr
u niets oplevert.)
- Vanaf OS X 10.11 “El Capitan”, * System Integrity Protection ** (SIP) beschermt sommige bestanden verder tegen wijzigingen van gewone processen, zelfs als u
sudo
gebruikt om als root
te draaien. Bestanden die door SIP worden beschermd, zullen door ls -lO
worden vermeld als hebbende de vlag restricted
en/of door ls -l@
worden vermeld als hebbende het kenmerk com.apple.rootless
.
Je kunt geen toegang krijgen tot een bestand vanwege Unix permissies, ACL’s, bestandsvlaggen of SIP. Om een bestand volledig te ontgrendelen:
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
Als System Integrity Protection (SIP) is ingeschakeld, zullen sudo chflags norestricted
en sudo xattr -d com.apple.rootless
ook een “Operation not permitted” fout teruggeven. Om de vlag en/of het kenmerk te wissen, moet u opstarten in macOS Herstel en ofwel de opdrachten van Terminal uitvoeren (u moet misschien eerst Schijfhulpprogramma gebruiken om uw opstartschijf te ontgrendelen en te mounten, onthoud dan dat uw bestanden onder /Volumes/Macintosh HD
of hoe uw opstartschijf ook heet, zullen staan) of SIP helemaal uitschakelen en dan opnieuw opstarten en de opdrachten zouden dan moeten werken. Wees u er echter van bewust dat toekomstige updates van het besturingssysteem waarschijnlijk de restricted
vlag en het com.apple.rootless
attribuut zullen herstellen in alle bestanden waarvan u de vlag hebt verwijderd.
_ Het uitschakelen van SIP wordt niet aanbevolen _ omdat het veel bescherming tegen malware en onbedoelde schade wegneemt, plus het is niet nodig wanneer je de bescherming eenvoudig per bestand kunt verwijderen. Als u SIP toch uitschakelt, schakel het dan weer in als u klaar bent met het aanbrengen van wijzigingen.
Merk op dat als ls -lO
laat zien dat de schg
vlag gezet is, je in single-user mode moet komen om hem uit te zetten. Ik ga daar hier niet op in omdat er grotere vragen zijn over waarom die vlag in het bestand staat en waarom u er probeert mee te knoeien en wat de gevolgen zullen zijn.