Hoe het werkt
In Unix en Linux heeft elk bestand permissies voor drie klassen: de eigenaar, de groep en de rest ("anderen"). Elke klasse kan drie permissies hebben: lezen (r), schrijven (w) en uitvoeren (x). chmod is het commando dat ze wijzigt.
Permissies worden op twee gelijkwaardige manieren weergegeven: numeriek (octaal) en symbolisch. In octaal is elke klasse een cijfer van 0 tot 7, de som van 4 (lezen) + 2 (schrijven) + 1 (uitvoeren). Symbolisch worden ze als negen tekens geschreven, bijvoorbeeld rwxr-xr-x.
Een eerste vierde cijfer regelt de speciale bits: setuid (4), setgid (2) en sticky (1). Deze tool converteert beide kanten op: vink de permissies aan met de vakjes om het octaal, de symbolische notatie en het kant-en-klare commando te krijgen, of plak een waarde om die weergegeven te zien.
Voorbeelden
755rwxr-xr-xDe eigenaar kan lezen, schrijven en uitvoeren; de groep en anderen alleen lezen en uitvoeren. Typisch voor mappen en scripts.644rw-r--r--De eigenaar leest en schrijft; de groep en anderen lezen alleen. Gebruikelijk in gegevens- en configuratiebestanden.600rw-------Alleen de eigenaar kan lezen en schrijven; niemand anders heeft toegang. Aanbevolen voor privésleutels.4755rwsr-xr-xHet eerste cijfer 4 schakelt setuid in: het programma draait met de rechten van de eigenaar van het bestand.Gebruiksscenario's
- Uitvoerrecht geven aan een script (chmod 755) of een bestand met gevoelige gegevens beperken (chmod 600).
- Vertalen tussen het octale getal in een tutorial en wat ls -l toont, zonder de bits met de hand te berekenen.
- Begrijpen welke permissies een commando daadwerkelijk verleent voordat je het op een server uitvoert.
Veelgestelde vragen
Waarom zijn 755 maar drie cijfers en verschijnen er soms vier?
De drie cijfers vertegenwoordigen gebruiker, groep en anderen. Het vierde cijfer, optioneel en aan het begin, regelt de speciale bits (setuid, setgid, sticky); als het 0 is wordt het weggelaten, daarom zijn 0755 en 755 hetzelfde.
Wat betekenen de s en de t in rwsr-xr-t?
Ze vervangen de x om een speciaal bit aan te geven. De s in het gebruikersblok is setuid, in het groepsblok setgid; de t in het blok van anderen is het sticky bit. In hoofdletters (S/T) is het bit actief maar zonder uitvoeringsrecht.
Wat is het verschil tussen chmod 755 en chmod u=rwx,g=rx,o=rx?
Geen: ze leveren exact dezelfde permissies op. De octale vorm is compacter en de symbolische leesbaarder. chmod accepteert ook relatieve wijzigingen zoals u+x (uitvoeren toevoegen aan de eigenaar) zonder de rest aan te raken.
Welke permissies moet een privé SSH-sleutel hebben?
600 (rw-------). SSH weigert een privésleutel te gebruiken als de groep of anderen die kunnen lezen. De map ~/.ssh gebruikt meestal 700.