Linux commando: chmod
Vroeg of laat komt elke Linux-gebruiker een muur van letters tegen zoals -rwxr-xr-x, samen met een advies dat klinkt als een toverspreuk: "draai er gewoon chmod 755 op". Het commando chmod is hoe je bepaalt wie een bestand mag lezen, schrijven en uitvoeren. Zodra je het snapt, verandert die muur van letters in een eenvoudige, leesbare zin.
1. De basis
De taak van chmod is het veranderen van de modus van een bestand of map. De modus is de verzameling rechten-bits die bepaalt wie wat mag doen. Waar ls die rechten alleen leest en aan je laat zien, schrijft chmod ze.
Linux koppelt drie basisrechten aan elk bestand, voor drie aparte klassen van mensen:
| Recht | Op een bestand | Op een map |
|---|---|---|
r (read) |
De inhoud lezen | De namen erin opsommen |
w (write) |
De inhoud wijzigen | Items aanmaken, hernoemen of verwijderen |
x (execute) |
Het uitvoeren als programma | Erin gaan en bij de bestanden komen |
De drie klassen zijn de eigenaar (de gebruiker die het bestand bezit), de groep (een benoemde set gebruikers) en anderen (iedereen verder). Drie rechten keer drie klassen zijn de negen letters die je in ls -l ziet.
Het commando dat bepaalt wie mag lezen, schrijven en uitvoeren. Achter drie korte letters zit het hele Unix-rechtenmodel, een elegante octale afkorting, en een paar speciale bits die stilletjes het hele systeem laten draaien.
Dit artikel begint met de eenvoudigste wijziging die je kunt maken en bouwt stap voor stap op naar de octale notatie, recursieve wijzigingen, en de speciale bits achter commando's zoals sudo en de gedeelde map /tmp. Aan het eind lezen zowel de letters als de getallen als gewone taal.
Het juiste mentale model: een bestand hoort niet als bij toverslag bij een programma of een persoon. Het draagt een klein label dat precies opsomt wie het mag lezen, wijzigen en uitvoeren.
chmodis hoe je dat label bewerkt.
1.1 Eerst de rechtenreeks lezen
Voordat je rechten wijzigt, moet je ze kunnen lezen. Draai ls -l en kijk naar de eerste kolom:
$ ls -l script.sh
-rwxr-xr-x 1 peter staff 812 Jun 1 09:14 script.sh
Die eerste tien tekens splitsen zich in vier delen:
- rwx r-x r-x
| | | |
type owner group others
Het eerste teken is het type van het bestand (- voor een gewoon bestand, d voor een map). De volgende negen zijn drie blokken rwx, een blok per klasse. Een letter betekent dat het recht aanwezig is; een streepje betekent dat het ontbreekt. Dus rwxr-xr-x lees je als: de eigenaar kan lezen, schrijven en uitvoeren; de groep en anderen kunnen lezen en uitvoeren, maar niet schrijven.
2. Waar komt de naam vandaan?
De naam chmod is kort voor change mode (modus wijzigen).
chmod = CHange MODe
Het woord "mode" is de oude Unix-term voor de rechten-bits van een bestand. Datzelfde woord kom je op verwante plekken tegen: het veld st_mode in de stat-systeemaanroep bevat precies deze bits, en de C-bibliotheekfunctie die chmod aanroept heet zelf ook chmod(). Het commando is een dunne schil om die ene systeemaanroep.
Net als zijn buren cp (copy), mv (move) en rm (remove) is de naam kort gehouden omdat het vroege Unix werd getypt op trage teletype-terminals, waar elk teken op papier werd afgedrukt. De gewoonte bleef, en vijftig jaar later is chmod nog steeds chmod.
3. Een korte geschiedenis
Het rechtenmodel dat chmod bewerkt is bijna zo oud als Unix zelf. Het verscheen in Unix 1st Edition bij Bell Labs in 1971, en het ontwerp is sindsdien nauwelijks veranderd. Het idee van een compacte "modus" per bestand, verdeeld over eigenaar, groep en anderen, heeft bijna elk besturingssysteem overleefd waar het mee concurreerde.
| Tijdperk | Mijlpaal |
|---|---|
| 1971 | Unix 1st Edition komt uit met bestandsmodi en chmod |
| Jaren 70 | De set-user-ID-bit wordt toegevoegd, waardoor programma's met de rechten van de eigenaar draaien |
| Jaren 80 | BSD voegt het sticky-bit-gedrag toe dat gedeelde mappen zoals /tmp gebruiken |
| Vandaag | De GNU coreutils-versie van chmod draait op de meeste Linux-distributies |
Zoals bij de meeste kerncommando's zijn er twee versies in omloop. Linux-systemen draaien de GNU coreutils-versie; macOS en de BSD's leveren een BSD-versie. Ze zijn het eens over de belangrijke dingen, symbolische en octale modi werken hetzelfde, maar een paar opties verschillen (GNU schrijft recursief bijvoorbeeld als -R en biedt --reference, wat BSD mist). Dit artikel gebruikt de GNU-versie, gecontroleerd tegen coreutils 9.4, wat je op vrijwel elke Linux-server aantreft.
4. Eenvoudige toepassingen
4.1 Een script uitvoerbaar maken
Dit is verreweg de meest voorkomende reden waarom mensen naar chmod grijpen. Je hebt een shellscript geschreven, maar het systeem weigert het te draaien:
$ ./backup.sh
bash: ./backup.sh: Permission denied
Het bestand heeft nog geen uitvoerrecht. Voeg het toe met de +x-vorm (kort voor "add execute", uitvoeren toevoegen):
$ chmod +x backup.sh
$ ./backup.sh
Backup finished.
Dat is de hele oplossing. chmod +x maakt van een gewoon tekstbestand een uitvoerbaar commando.
4.2 De symbolische vorm: wie, operator, wat
De letters die je net gebruikte zijn onderdeel van een kleine, leesbare taal. Een symbolische modus heeft drie delen:
chmod u+x file
|||
||`--- what: r (read), w (write), x (execute)
|`---- operator: + add, - remove, = set exactly
`----- who: u (user), g (group), o (others), a (all)
Je leest u+x als "voor de user (gebruiker), add (voeg toe) execute (uitvoeren)". Een paar alledaagse voorbeelden:
$ chmod u+x file # let the owner run it
$ chmod g-w file # take write away from the group
$ chmod o-r secret # hide it from everybody else
$ chmod a+r page.html # everyone may read it (a = all)
Als je de "wie" weglaat, zoals in het kale chmod +x uit het vorige voorbeeld, betekent het "all" (alles), maar begrensd door je umask (het standaardrechtenmasker van je shell). Om verrassingen te vermijden: benoem de klasse die je bedoelt. chmod a+x is altijd ondubbelzinnig.
4.3 Meerdere klassen tegelijk wijzigen
Je kunt meerdere wijzigingen, gescheiden door komma's, in een commando opsommen:
$ chmod u+rwx,go-w notes.txt # owner gets all; group and others lose write
$ ls -l notes.txt
-rwxr--r-- 1 peter staff 1234 May 28 17:02 notes.txt
De operator = is strenger dan + en -: hij zet een klasse op precies wat je noemt en wist de rest voor die klasse. Dus chmod g=r file maakt het recht van de groep alleen-lezen, wat het ook was, en laat de eigenaar en anderen ongemoeid.
5. Gematigde toepassingen: de octale notatie
Symbolische modi zijn leesbaar, maar ervaren gebruikers typen vaak liever een getal van drie cijfers, zoals chmod 755. Dit is de octale notatie, en zodra het klikt vergeet je het nooit meer.
5.1 De truc: elk recht is een getal
Geef elk recht een waarde:
| Recht | Waarde |
|---|---|
r read |
4 |
w write |
2 |
x execute |
1 |
Om een klasse te beschrijven, tel je de waarden op die je wilt. Lezen plus schrijven plus uitvoeren is 4 + 2 + 1 = 7. Lezen plus uitvoeren is 4 + 1 = 5. Alleen lezen is 4. Omdat 4, 2 en 1 machten van twee zijn, telt elke combinatie op tot een uniek cijfer van 0 tot 7, en dat is precies waarom het systeem grondtal 8 (octaal) gebruikt.
5.2 Drie cijfers, een per klasse
Een volledige modus bestaat uit drie van die cijfers: eigenaar, groep, anderen, in die volgorde.
chmod 7 5 5 file
| | |
| | +--- others: 4+1 = r-x
| +----- group: 4+1 = r-x
+------- owner: 4+2+1 = rwx
Dus 755 is rwxr-xr-x. Dit zijn de getallen die je het vaakst gebruikt:
| Octaal | Symbolisch | Typisch gebruik |
|---|---|---|
644 |
rw-r--r-- |
Een gewoon bestand: eigenaar bewerkt, iedereen leest |
755 |
rwxr-xr-x |
Een script of een map: iedereen mag uitvoeren of erin |
600 |
rw------- |
Een prive-bestand, bijvoorbeeld een SSH-sleutel |
700 |
rwx------ |
Een prive-map waar alleen de eigenaar in mag |
664 |
rw-rw-r-- |
Een bestand dat een hele groep samen mag bewerken |
Je kunt elke wijziging meteen controleren met ls -l, of chmod zelf laten melden wat het deed met -c (kort voor changes, wijzigingen):
$ chmod -c 640 report.txt
mode of 'report.txt' changed from 0644 (rw-r--r--) to 0640 (rw-r-----)
5.3 Symbolisch of octaal: welke gebruik je?
Ze doen hetzelfde werk; het verschil is de bedoeling. Octaal zet de hele modus in een keer en is het beste als je precies weet wat je wilt (chmod 644 file). Symbolisch past een ding aan en laat de rest ongemoeid (chmod +x file voegt uitvoeren toe zonder lezen of schrijven aan te raken). Grijp naar symbolisch als je "voeg dit toe" of "haal dat weg" bedoelt, en naar octaal als je "maak het precies dit" bedoelt.
5.4 Waar de eerste rechten van een bestand vandaan komen: umask
Ook als je nooit chmod draait, krijgt een nieuw bestand toch een modus. Waar komt die vandaan? Elke shell draagt een umask (kort voor user mask, gebruikersmasker), een set bits die hij verwijdert van de rechten van alles wat je aanmaakt.
Nieuwe bestanden beginnen bij 666 (rw-rw-rw-) en nieuwe mappen bij 777 (rwxrwxrwx). Merk op dat bestanden nooit met uitvoeren beginnen; daarom heeft een vers script chmod +x nodig. De umask wist vervolgens de bits die hij benoemt:
$ umask
0022
$ touch a; mkdir b
$ ls -l a | cut -c1-10 # 666 with 022 cleared
-rw-r--r--
$ ls -ld b | cut -c1-10 # 777 with 022 cleared
drwxr-xr-x
Een veelgemaakte valkuil is dit als aftrekken te beschrijven, als in "666 min 022 is 644". Dat geeft toevallig het juiste antwoord bij nette waarden, maar zo werkt het niet. De umask zet bits uit; hij zet ze nooit aan. Met umask 023 wordt een bestand 644, niet 643, want maskeren kan geen bit wissen dat er nooit stond (bestanden hebben geen uitvoerbit om weg te halen in de "others"-plek). Denk "welke bits neemt het masker weg", niet "trek de getallen af".
Naar boven
chmodzet de rechten van een bestand dat al bestaat;umaskzet de rechten van bestanden die nog niet bestaan. Samen beantwoorden ze "wie mag hieraan komen?" van aanmaak tot verwijdering.
6. Gevorderde toepassingen
6.1 Een hele boom wijzigen: -R
De optie -R (kort voor recursive, recursief) past de modus toe op een map en alles erin:
$ chmod -R 755 /var/www/site
Dit is krachtig en, onvoorzichtig gebruikt, schadelijk. De valkuil is dat bestanden en mappen verschillende rechten nodig hebben. Een map heeft uitvoeren (x) nodig zodat je erin kunt, maar een gewoon databestand hoort meestal niet uitvoerbaar te zijn. chmod -R 755 maakt elk bestand uitvoerbaar, en chmod -R 644 strip het uitvoerbit van elke map, waardoor je jezelf eruit sluit.
6.2 De hoofdletter X: uitvoeren alleen waar het zin heeft
GNU chmod lost die valkuil op met een speciale rechtenletter, de hoofdletter X. Die voegt uitvoeren alleen toe aan mappen en aan bestanden die al minstens een uitvoerbit hebben. Gewone databestanden blijven ongemoeid.
$ chmod -R u=rwX,go=rX /var/www/site
Lees dat als: geef de eigenaar overal lezen en schrijven, plus uitvoeren alleen waar het hoort; geef de groep en anderen lezen, plus uitvoeren alleen waar het hoort. Dit ene commando zet een verstandig, veilig rechtenschema over een hele website in een keer. Een korte demonstratie van het verschil:
$ ls -l
-rw-rw-r-- 1 peter staff 0 ... plain.txt # a data file, no execute
drwx------ 2 peter staff 4096 ... sub # a directory
$ chmod a+X plain.txt sub
$ ls -l
-rw-rw-r-- 1 peter staff 0 ... plain.txt # unchanged: still not executable
drwx--x--x 2 peter staff 4096 ... sub # changed: directory now enterable
6.3 Rechten kopieren: --reference
In plaats van een modus te noemen, kun je chmod de modus van een ander bestand laten kopieren met --reference:
$ chmod --reference=working.conf broken.conf
Nu heeft broken.conf precies dezelfde rechten als working.conf. Dit is handig als het ene bestand in een map zich netjes gedraagt en het andere niet, en je ze wilt laten overeenkomen zonder de getallen met de hand te lezen.
6.4 De speciale bits: setuid, setgid en sticky
Naast de negen gewone bits zijn er drie speciale bits, geschreven als een vierde octaal cijfer voor de modus. Zij zorgen dat delen van Linux werken.
| Bit | Octaal | Wat het doet |
|---|---|---|
| setuid | 4 | Op een programma: draai het met de identiteit van de eigenaar, niet die van de aanroeper |
| setgid | 2 | Op een programma: draai het als de groep van het bestand; op een map: nieuwe bestanden erven die groep |
| sticky | 1 | Op een gedeelde map: alleen de eigenaar van een bestand mag het verwijderen |
Het klassieke setuid-voorbeeld is passwd. Een gewone gebruiker moet het systeemwachtwoordbestand bijwerken, dat alleen root mag schrijven. Setuid laat het programma als zijn eigenaar draaien, root, precies voor die taak:
$ ls -l /usr/bin/passwd
-rwsr-xr-x 1 root root 59976 ... /usr/bin/passwd
Let op de s op de plek waar de x van de eigenaar zou staan. Die s is het setuid-bit dat boven op het uitvoerbit zit. Je zet het door een 4 voor de modus te plaatsen:
$ chmod 4755 myprog # rwsr-xr-x (setuid)
$ chmod 2775 shared/ # rwxrwsr-x (setgid directory)
$ chmod 1777 /tmp # rwxrwxrwt (sticky, world-writable)
Het sticky-bit is waarom /tmp werkt. Iedereen mag er schrijven, maar de t aan het eind betekent dat je alleen je eigen bestanden kunt verwijderen, niet die van anderen. Zonder dat zou elke gebruiker de tijdelijke bestanden van een ander kunnen wissen.
De speciale bits zijn de stille machinerie van een systeem met meerdere gebruikers: setuid laat je je eigen wachtwoord veranderen, setgid houdt de bestanden van een gedeeld project in een groep, en het sticky-bit voorkomt dat
/tmpin een sloopterrein verandert.
Nog een leesdetail: als het uitvoerbit eronder ontbreekt, verschijnt de letter als een hoofdletter S of T in plaats van klein. Dus rwSr--r-- betekent dat setuid is gezet maar het bestand niet echt uitvoerbaar is, meestal een fout die een tweede blik waard is.
7. Iets wat de meeste gebruikers niet weten
7.1 chmod beschermt het setgid-bit van een map
Hier is een detail dat zelfs doorgewinterde beheerders verrast. Je zou verwachten dat een volledige numerieke modus zoals chmod 755 de rechten op precies dat zet. Bij gewone bestanden doet het dat. Maar op een map weigert GNU chmod bewust om de setuid- en setgid-bits met een normale numerieke modus te wissen:
$ ls -ld shared
drwxrwsr-x 2 peter staff 4096 ... shared # setgid is on (the 's')
$ chmod 0755 shared
$ ls -ld shared
drwxr-sr-x 2 peter staff 4096 ... shared # the 's' is STILL there
Dit is geen bug. De coreutils-handleiding legt het uit: omdat set-group-ID op een map wordt gebruikt om gedeelde bestanden in een gemeenschappelijke groep te houden, laat een gewone chmod die bits met rust, zodat een routine-rechtenwijziging het delen van bestanden niet stilletjes kapotmaakt. Om ze echt te wissen moet je expliciet zijn, op een van deze manieren:
$ chmod g-s shared # symbolic: mention the bit directly
$ chmod =755 shared # an "operator numeric" mode
$ chmod 00755 shared # a numeric mode with five or more digits
De les: gebruik op mappen het symbolische g-s als je het setgid-bit echt weg wilt. Een getal van drie cijfers doet het niet.
7.2 Rechten worden afgedwongen door de kernel, niet door chmod
Het is de moeite waard te weten wat chmod wel en niet doet. Het schrijft alleen de rechten-bits in de metadata van het bestand. Het controleert, scant of bewaakt het bestand nooit. Elke keer dat iemand het bestand daarna opent, leest de kernel die bits en beslist ja of nee. Dus chmod is geen slot dat je vast blijft houden; het is een briefje dat je achterlaat voor de kernel om af te dwingen, keer op keer, lang nadat chmod klaar is.
Dit verklaart ook een beroemde uitzondering: root negeert rechten-bits. De supergebruiker mag elk bestand lezen en schrijven, ongeacht de modus. Rechten beschermen bestanden tegen gewone gebruikers en tegen elkaar, niet tegen root.
7.3 Weten waar chmod ophoudt: ACL's en capabilities
Deel van vakmanschap is weten wanneer een gereedschap ophoudt. De klassieke rechten-bits beschrijven maar drie klassen: eigenaar, groep en anderen. Twee moderne mechanismen gaan verder, en het loont ze te herkennen als je ze tegenkomt.
Een Access Control List (ACL) laat je rechten geven aan een specifieke extra gebruiker of groep, buiten de drie klassen om. Je beheert ACL's met setfacl en leest ze met getfacl:
$ setfacl -m u:john:rwx project.txt # give user john full access, on top of the mode
$ getfacl project.txt
# file: project.txt
# owner: peter
# group: staff
user::rw-
user:john:rwx
group::r--
mask::rwx
other::r--
Als een bestand een ACL draagt, voegt ls -l een + toe aan het eind van de rechtenreeks, bijvoorbeeld -rw-rwxr--+. Dat plusteken is je hint dat chmod alleen niet het hele verhaal vertelt, en dat je naar getfacl moet grijpen.
Het tweede mechanisme zijn capabilities (bevoegdheden). In plaats van de alles-of-niets-macht van setuid-root kan de kernel een programma een enkele smalle bevoegdheid geven. Daarom hoeft ping op moderne systemen niet meer setuid-root te zijn:
$ getcap /usr/bin/ping
/usr/bin/ping cap_net_raw=ep # may open raw sockets, nothing more
Zo'n bevoegdheid zet je met setcap, bijvoorbeeld setcap cap_net_bind_service=+ep server om een programma op een lage poort te laten luisteren zonder als root te draaien. Als je een systeem doorlicht en een setuid-bit verwacht maar niet vindt, zijn capabilities vaak de reden.
8. Beste werkwijzen
- Kies de minste rechten die werken. Begin restrictief.
600voor prive-bestanden en700voor prive-mappen zijn veiliger standaardwaarden dan alles "voor de zekerheid" openzetten. - Gebruik nooit
chmod 777om een probleem te verhelpen. Het is bijna nooit de echte oplossing, en het laat elke gebruiker op de machine je bestand wijzigen. Als iets niet gelezen kan worden, ligt het meestal aan het eigenaarschap (chown) of een ontbrekendx-bit op een map, niet aan een gebrek aan wereldtoegang. - Gebruik de hoofdletter
Xbij recursieve wijzigingen.chmod -R u=rwX,go=rX dirgeeft mappen hun uitvoerbit en laat databestanden niet-uitvoerbaar, en vermijdt zo de-R-valkuil. - Grijp naar symbolische modi om bij te sturen, octaal om te zetten.
+xeng-wwijzigen een ding;644en755verklaren de hele modus. - Onthoud dat SSH streng is. OpenSSH weigert een prive-sleutel of
~/.ssh-map te gebruiken die anderen kunnen lezen.chmod 600 ~/.ssh/id_ed25519enchmod 700 ~/.sshzijn de standaardoplossingen. - Lees de handleiding als je twijfelt. De gewoonte die een professional kenmerkt is niet het uit het hoofd kennen van elk bit; het is
man chmodtypen zodra er een vraag opkomt.
$ man chmod # the full manual page
$ chmod --help # a quick summary (GNU)
$ info coreutils 'chmod invocation' # the verbose GNU manual
Naar boven9. Veelgemaakte fouten
9.1 Mythe versus werkelijkheid
| Mythe | Werkelijkheid |
|---|---|
"chmod 777 lost rechtenproblemen op." |
Het verbergt ze en maakt een beveiligingsgat. De echte oorzaak is meestal eigenaarschap of een ontbrekend x-bit op een map. |
"chmod verandert wie het bestand bezit." |
Nee. Eigenaarschap wijzig je met chown. chmod verandert alleen wat elke klasse mag. |
| "Leesrecht op een map laat me de bestanden erin openen." | Een map lezen somt alleen namen op. Je hebt ook uitvoeren (x) op de map nodig om bij de bestanden te komen. |
| "Rechten houden bestanden veilig voor root." | Root negeert de rechten-bits volledig. Rechten scheiden gewone gebruikers, niet de supergebruiker. |
"chmod op een symlink wijzigt de link." |
Het volgt de link en wijzigt het doel. De eigen modus van een symlink (lrwxrwxrwx) staat vast en wordt genegeerd. |
9.2 Andere valkuilen om te vermijden
chmod -R 644op een map draaien. Dit haalt uitvoeren van elke submap weg en sluit je eruit. Gebruik in plaats daarvan de hoofdletterX.- Het
x-bit op een map vergeten. Een webserver die "403 Forbidden" teruggeeft heeft vaak alleen uitvoeren op een bovenliggende map nodig, geen extra leesrecht. 644en664verwarren. Een cijfer extra geeft de hele groep schrijfrecht. Controleer het middelste getal goed.- Verwachten dat
chmod 755het setgid-bit van een map wist. Dat doet het niet. Gebruikchmod g-som het expliciet te verwijderen. chmodgebruiken terwijl jechownbedoelt. Als de juiste mensen na een moduswijziging nog steeds niet bij een bestand kunnen, hoort het bestand waarschijnlijk bij de verkeerde gebruiker of groep.- Aannemen dat een
+inls -leen typefout is. Een+aan het eind zoals-rw-rwxr--+betekent dat het bestand een ACL heeft. Alleen de rechten-bits lezen misleidt je; controleer metgetfacl.
10. Samenvatting
Het commando chmod is klein, maar het bestuurt de hele vraag "wie mag wat" op een Linux-systeem.
chmodbetekent "change mode" (modus wijzigen). Het bewerkt de rechten-bits diels -ltoont, en is sinds 1971 onderdeel van Unix.- Elk bestand draagt lees-, schrijf- en uitvoerrechten voor drie klassen: eigenaar, groep en anderen.
- Symbolische modi passen een ding tegelijk aan:
u+x,g-w,a+r, en=om precies te zetten. - Octale modi zetten alles in een keer. Lezen is 4, schrijven is 2, uitvoeren is 1; tel ze op per klasse.
644,755en600dekken de meeste dagelijkse behoeften. - Gebruik
-Rom een boom te wijzigen, maar combineer het met de hoofdletterXzodat databestanden niet allemaal uitvoerbaar worden. - De speciale bits setuid, setgid en sticky (een vierde cijfer: 4, 2, 1) laten gereedschappen zoals
passwden de gedeelde map/tmpwerken. - Op mappen wist een numerieke
chmodhet setgid-bit niet; gebruik daarvoorchmod g-s. - Je
umaskzet de rechten van bestanden die je nog niet hebt aangemaakt; het zet bits uit, dus denk maskeren, niet aftrekken. - Als de rechten-bits niet genoeg zijn, nemen ACL's (
setfacl/getfacl, getoond door een+inls -l) en capabilities (getcap/setcap) het over. chmodschrijft alleen de bits. De kernel dwingt ze bij elke toegang af, en root negeert ze.- Bij twijfel: typ
man chmod.
Dit is de handige naslag om te bewaren:
chmod +x file make a file executable
chmod u+x file add execute for the owner only
chmod g-w file remove write from the group
chmod 644 file rw-r--r-- a normal readable file
chmod 755 file rwxr-xr-x a script or directory
chmod 600 file rw------- a private file (SSH keys)
chmod 700 dir rwx------ a private directory
chmod -R u=rwX,go=rX dir safe recursive: execute only on dirs
chmod g-s dir remove the setgid bit from a directory
chmod 1777 dir rwxrwxrwt world-writable, sticky (like /tmp)
chmod --reference=A B give B the same mode as A
Rechten zijn zo'n onderwerp dat er intimiderend uitziet tot het patroon klikt, en dan voelt het vanzelfsprekend. Als een server van jou steeds "Permission denied" of "403 Forbidden" blijft geven, of je niet zeker weet of een setuid-programma daar echt hoort, loont het vaak om iemand het hele plaatje van rechten en eigenaarschap goed te laten nakijken, voordat een snelle chmod 777 een klein probleem in een beveiligingsprobleem verandert.


Peter is Joomla specialist en Linux admin voor snelle, veilige en schaalbare websites.


