
Linux commando: chown
Elk bestand op een Linux-systeem draagt een klein label dat zegt wie de eigenaar is. Als een website plotseling zijn cache niet meer kan schrijven, of een net gekopieerde map zich vreemd gedraagt, ligt de oorzaak vaak niet bij de rechten zelf, maar bij de eigenaar erachter. Het commando chown is hoe je die eigenaar verandert. Het is de stille partner van chmod: de een bepaalt wat elke klasse van gebruikers mag doen, de ander bepaalt wie die gebruikers eigenlijk zijn.
1. De basis
De taak van chown is het veranderen van de eigenaar en, optioneel, de groep van een bestand of map. Waar chmod de rechten-bits bewerkt (de rwx-letters), bewerkt chown de twee namen waar die bits naar verwijzen.
Elk bestand heeft precies een eigenaar en een groep:
| Kenmerk | Wat het is | Ingesteld met |
|---|---|---|
| eigenaar (user) | De enige gebruiker die het bestand bezit, meestal degene die het aanmaakte | chown |
| groep | Een benoemde groep gebruikers die toegang tot het bestand delen | chown of chgrp |
| modus | Wat de eigenaar, de groep en anderen elk mogen doen (lezen, schrijven, uitvoeren) | chmod |
Het commando dat bepaalt van wie een bestand is. Achter een kort woord zit het hele idee van eigendom in een multi-user-systeem, de reden dat alleen root bestanden aan andere gebruikers mag geven, en een beveiligingsregel die stilletjes gevaarlijke programma's ontwapent.
Dit artikel begint met de eenvoudigste eigenaarswijziging en bouwt stap voor stap op naar groepen, recursieve wijzigingen over een hele mappenboom, symbolische links, en de verrassende regels die het systeem beschermen. Aan het eind lezen de derde en vierde kolom van ls -l als gewone taal.
Het juiste mentale model: rechten en eigendom zijn twee helften van een antwoord. De modus zegt "de eigenaar mag dit schrijven"; eigendom zegt "en jij bent de eigenaar". Geen van beide helften betekent iets zonder de ander.
1.1 Eerst het eigendom lezen
Voordat je eigendom wijzigt, moet je het kunnen zien. Draai ls -l en kijk naar de derde en vierde kolom:
$ ls -l report.txt
-rw-r--r-- 1 peter staff 1234 May 28 17:02 report.txt
| |
owner group
Hier is de eigenaar peter en de groep staff. De rechtenreeks ervoor (-rw-r--r--) bepaalt wat elk van hen mag doen, maar het is chown dat de namen peter en staff in de eerste plaats bepaalt. Wil je de numerieke ID's achter die namen zien, voeg dan -n toe (kort voor numeric, numeriek):
$ ls -ln report.txt
-rw-r--r-- 1 1000 1000 1234 May 28 17:02 report.txt
De namen zijn slechts een vriendelijk gezicht; de kernel bewaart een numeriek gebruikers-ID (UID) en een groeps-ID (GID). Dat detail wordt later belangrijk, wanneer je bestanden kopieert tussen machines die niet dezelfde lijst met gebruikers delen.
Naar boven2. Waar komt de naam vandaan?
De naam chown is kort voor change owner (eigenaar wijzigen).
chown = CHange OWNer
Hij volgt dezelfde naamgevingsgewoonte als zijn buren: chmod (change mode), cp (copy), mv (move) en rm (remove). Het vroege Unix werd getypt op trage teletype-terminals die elk teken op papier afdrukten, dus commandonamen werden zo kort gehouden als kon terwijl ze nog leesbaar bleven. De gewoonte bleef, en vijftig jaar later is chown nog steeds chown.
Het commando is een dunne schil om een enkele systeemaanroep, die ook chown() heet, die de nieuwe eigenaar- en groeps-ID's in de metadata van het bestand schrijft (de inode). Er is een bijpassend commando, chgrp (kort voor change group, groep wijzigen), dat alleen de groep verandert. Zoals je zult zien kan chown alles wat chgrp doet, dus veel mensen gebruiken chgrp nooit.
3. Een korte geschiedenis
Eigendom is een van de oudste ideeen in Unix. Het verscheen in Unix 1st Edition bij Bell Labs in 1971, samen met de bestandsmodi die chmod bewerkt. Het koppel van een eigenaar, een groep en een set rechten-bits heeft bijna elk besturingssysteem overleefd waar het mee concurreerde, en het draait vandaag nog op elke Linux-server.
| Tijdperk | Mijlpaal |
|---|---|
| 1971 | Unix 1st Edition verschijnt met bestandseigenaren en chown |
| Jaren 70 | Groepseigendom komt naast gebruikerseigendom, wat het owner/group/others-model geeft |
| Jaren 80 | POSIX standaardiseert de "restricted chown"-regel die verhindert dat gebruikers bestanden weggeven |
| Vandaag | De GNU coreutils chown, geschreven door David MacKenzie en Jim Meyering, 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, maar een paar opties verschillen (zo biedt GNU --from en --reference, die BSD mist, en spellen de twee de recursieve symlink-opties net iets anders). Dit artikel gebruikt de GNU-versie, gecontroleerd tegen coreutils 9.4, wat je op bijna elke Linux-server vindt.
4. Eenvoudige gebruiksgevallen
4.1 De eigenaar wijzigen
De eenvoudigste vorm geeft een bestand aan een nieuwe eigenaar. Je noemt de gebruiker, dan het bestand:
$ chown peter report.txt
$ ls -l report.txt
-rw-r--r-- 1 peter staff 1234 May 28 17:02 report.txt
De eigenaar is nu peter; de groep (staff) blijft ongemoeid. Dit is het meest voorkomende dagelijkse gebruik: een bestand is door de verkeerde gebruiker aangemaakt, en je zet het recht. Let alvast op een belangrijke regel, in detail behandeld in sectie 7: op Linux mag alleen root de eigenaar van een bestand wijzigen. In de praktijk draai je chown vrijwel altijd met sudo:
$ sudo chown peter report.txt
4.2 Eigenaar en groep samen wijzigen
Om beide tegelijk in te stellen, schrijf je de eigenaar, een dubbele punt en de groep, zonder spaties:
$ sudo chown peter:staff report.txt
$ ls -l report.txt
-rw-r--r-- 1 peter staff 1234 May 28 17:02 report.txt
Lees peter:staff als "eigenaar peter, groep staff". Deze ene vorm is waarom de meeste mensen chgrp nooit leren: chown dekt de groep al af.
chown peter : staff file
| |
| +--- group: the new group
+----------- owner: the new user
4.3 Alleen de groep wijzigen
Laat je de eigenaar weg en begin je met de dubbele punt, dan verandert alleen de groep. Dit doet precies hetzelfde als chgrp:
$ sudo chown :www-data page.html # change group only
$ sudo chgrp www-data page.html # identical result
Beide commando's zetten de groep op www-data en laten de eigenaar ongemoeid. Welke je gebruikt is een kwestie van smaak; de dubbele-puntvorm bespaart je een tweede commando.
5. Gemiddelde gebruiksgevallen
5.1 De login-groep-snelkoppeling
Er is een handige afkorting voor "maak deze gebruiker de eigenaar, en zet de groep op de eigen groep van die gebruiker". Je schrijft de eigenaar, een dubbele punt en dan niets:
$ sudo chown peter: report.txt
De afsluitende dubbele punt betekent "gebruik de login-groep van peter". Als de primaire groep van peter ook peter heet (de gebruikelijke standaard op modern Linux), belandt het bestand bij peter:peter. Het is een kleine besparing, maar een handige wanneer je de bestanden van een gebruiker terugzet naar hun normale staat.
| Je typt | Eigenaar | Groep |
|---|---|---|
chown peter file |
gezet op peter |
ongewijzigd |
chown peter:staff file |
gezet op peter |
gezet op staff |
chown peter: file |
gezet op peter |
gezet op login-groep van peter |
chown :staff file |
ongewijzigd | gezet op staff |
chown : file |
ongewijzigd | ongewijzigd |
5.2 Numerieke ID's gebruiken
Je hoeft geen namen te gebruiken. Overal waar een gebruikers- of groepsnaam is toegestaan, werkt ook een numeriek ID:
$ sudo chown 1000:1000 report.txt
Dit is essentieel wanneer een gebruiker geen naam heeft op het huidige systeem, wat voortdurend gebeurt binnen Docker-containers, op reddingssystemen, of bij het terugzetten van een back-up van een andere machine. Omdat de kernel echt getallen bewaart en geen namen, werken numerieke ID's altijd, zelfs wanneer het opzoeken van de naam mislukt. Als een naam en een getal verward kunnen worden, kun je numeriek lezen afdwingen met een voorloop-+, zoals in chown +1000 file.
Namen zijn een gemakslaag. Het bestand onthoudt een UID en een GID; de koppeling naar
peterenstaffstaat in/etc/passwden/etc/group(of in LDAP of Active Directory, via de Name Service Switch). Kopieer een bestand naar een machine met een andere koppeling en dezelfde getallen kunnen een andere naam tonen, of helemaal geen naam. Containers maken dit zichtbaar: een user namespace kan ID's omzetten, zodat UID1000binnen een Docker-container bij een totaal andere gebruiker op de host kan horen.
5.3 Eigendom kopieren: --reference
In plaats van een eigenaar en groep te noemen, kun je chown vragen ze van een ander bestand te kopieren met --reference:
$ sudo chown --reference=working.conf broken.conf
Nu heeft broken.conf precies dezelfde eigenaar en groep als working.conf. Dit is de natuurlijke oplossing wanneer het ene bestand in een map werkt en het andere niet, en je ze wilt laten overeenkomen zonder de namen met de hand te lezen en te typen.
5.4 Melden wat er veranderde
Standaard is chown stil. Twee vlaggen laten het praten. Gebruik -v (kort voor verbose, uitgebreid) om elk bestand te melden dat het aanraakt, of -c (kort voor changes, wijzigingen) om alleen de bestanden te melden die echt veranderden:
$ sudo chown -c peter:staff *.txt
changed ownership of 'notes.txt' from root:root to peter:staff
changed ownership of 'todo.txt' from root:root to peter:staff
# report.txt is not listed: it already belonged to peter:staff
Bij een grote batch is -c de betere keuze: het toont alleen het echte werk en blijft stil over bestanden die al klopten.
6. Gevorderde gebruiksgevallen
6.1 Een hele boom wijzigen: -R
De vlag -R (kort voor recursive, recursief) past de wijziging toe op een map en alles erin. Dit is de nuttigste gevorderde optie, en degene waar je naar grijpt bij het overdragen van een website aan zijn webserver-gebruiker:
$ sudo chown -R www-data:www-data /var/www/site
Anders dan de valkuil van het recursieve chmod -R, is een recursieve chown meestal veilig, omdat eigenaar en groep hetzelfde betekenen voor bestanden en mappen. Er is toch een ding om op te letten, en dat gaat over symbolische links.
6.2 Symbolische links: -h en het standaardgedrag
Standaard verandert chown, wanneer je het op een symbolische link richt, de link niet. Het volgt de link en verandert het bestand waar de link naar wijst (het doel). Dat is het --dereference-gedrag, en het is de standaard:
$ ls -l link
lrwxrwxrwx 1 peter staff 8 ... link -> secret.txt
$ sudo chown root link # changes secret.txt, NOT the link
$ ls -l secret.txt
-rw-r--r-- 1 root staff ... secret.txt
Om het eigendom van de link zelf te wijzigen in plaats van zijn doel, voeg je -h toe (kort voor no-dereference, van de onderliggende lchown-systeemaanroep):
$ sudo chown -h root link # changes the link, leaves the target alone
Dit is het belangrijkst tijdens een recursieve run. Het voorbeeld uit de handleiding, chown -hR root /u, verandert de eigenaar van een hele boom en van eventuele symbolische links erin, zonder die links de boom uit te volgen. Een gewone recursieve chown combineren met links die een niet-vertrouwde gebruiker kan aanmaken is een bekende manier om een tool te verleiden bestanden te wijzigen die het nooit zou mogen aanraken, dus op gedeelde systemen is de -h-gewoonte een veiligheidsgewoonte.
Wanneer je wel recursief gaat met -R, bepalen drie extra vlaggen of chown symbolische links volgt die naar mappen wijzen:
| Vlag | Gedrag tijdens -R |
|---|---|
-P |
Volg geen enkele symbolische link. Dit is de standaard, en de veilige keuze. |
-H |
Volg een symlink alleen als die direct op de commandoregel staat, niet die dieper in de boom worden gevonden. |
-L |
Volg elke symlink naar een map die het tegenkomt. Krachtig en makkelijk te betreuren; het kan chown ver buiten de bedoelde boom leiden. |
Worden er meerdere gegeven, dan telt alleen de laatste. Laat de standaard -P staan tenzij je een specifieke reden hebt.
6.3 De wijziging bewaken: --from
De optie --from wijzigt een bestand alleen als het nu de eigenaar (of groep) heeft die je noemt. Al het andere wordt overgeslagen:
$ sudo chown --from=olduser newuser file # only if file is currently olduser's
Dit is een precisiegereedschap. Het klassieke werk is een hernummering van een gebruikers-ID: je wilt elk bestand van olduser naar newuser verplaatsen, maar alle andere bestanden met rust laten. Dat doen met find en een aparte chown laat een klein venster waarin het verkeerde bestand erdoor kan glippen; --from sluit het grootste deel van dat gat door de huidige eigenaar te controleren op het moment van de wijziging:
$ sudo chown -hR --from=olduser newuser /home
6.4 De hoofdmap beschermen: --preserve-root
Een recursief commando dat per ongeluk op / is gericht kan het eigendom van een heel systeem herschrijven. De optie --preserve-root laat chown weigeren om in / af te dalen:
$ sudo chown -R --preserve-root peter / # refuses, instead of wrecking the system
Moderne distributies zetten deze bescherming vaak standaard aan in aliassen, maar het is goed om te weten dat de vlag bestaat, en om nooit in de eerste plaats een kaal chown -R something / te typen.
7. Iets wat de meeste gebruikers niet weten
7.1 Je kunt je eigen bestanden niet weggeven
Hier is de regel die bijna iedereen verrast. Op Linux kan een gewone gebruiker de eigenaar van een bestand niet naar iemand anders wijzigen, zelfs niet voor bestanden die ze bezitten. Alleen root mag eigendom wijzigen. Probeer het als gewone gebruiker en je krijgt:
$ chown alice report.txt
chown: changing ownership of 'report.txt': Operation not permitted
Dit is de POSIX-regel "restricted chown", en die bestaat om goede redenen. Als gebruikers bestanden konden weggeven, konden ze schijfquota ontwijken door bestanden op andermans account te dumpen, of een bestand op naam van een andere gebruiker plaatsen om die erin te luizen of langs een controle te glippen. Dus de macht om een eigenaar te wijzigen is voorbehouden aan de supergebruiker. De groep wijzigen is losser: je mag de groep van een bestand op elke groep zetten waarvan je lid bent, zonder root.
Eigendom stroomt voor gewone gebruikers een kant op: root kan je een bestand geven, maar jij kunt het aan niemand geven. Om een bestand naar een andere gebruiker te verplaatsen, word je root, of maak je een kopie die de andere gebruiker dan zelf bezit.
7.2 chown ontwapent stilletjes setuid-programma's
Deze is een echte beveiligingsfunctie die verborgen in het volle zicht zit. Wanneer je de eigenaar van een bestand wijzigt, wist de kernel meestal de setuid- en setgid-bits op hetzelfde moment. Denk terug aan chmod: een setuid-programma draait met de identiteit van zijn eigenaar. Als het wijzigen van de eigenaar die bit zou laten staan, kon je een gewoon programma nemen, het setuid maken, en het dan naar root chown-en, en ineens een programma hebben dat als root draait. Die bit wissen bij elke eigenaarswijziging gooit die deur dicht:
$ ls -l tool
-rwsr-xr-x 1 peter staff ... tool # setuid bit is set (the 's')
$ sudo chown root tool
$ ls -l tool
-rwxr-xr-x 1 root staff ... tool # the 's' is gone; now a plain program
De praktische les: als je bewust een setuid-root-programma nodig hebt, zet dan eerst de eigenaar en daarna de setuid-bit. Doe je het andersom, dan wordt je chmod u+s stilletjes ongedaan gemaakt door de volgende chown.
7.3 De oude puntscheiding
Je kunt een oud script tegenkomen dat eigendom met een punt schrijft in plaats van een dubbele punt:
$ sudo chown peter.staff report.txt # legacy syntax
Heel vroeg Unix gebruikte een punt als scheiding tussen eigenaar en groep. GNU chown accepteert het nog voor achterwaartse compatibiliteit, maar het drukt nu een waarschuwing af, en de ondersteuning kan ooit verdwijnen. De punt is ook dubbelzinnig: als een echte gebruikersnaam een punt bevat (zeg first.last), kan chown niet zien waar de naam eindigt en de groep begint. Schrijf in alles wat nieuw is altijd de moderne dubbele-puntvorm, peter:staff.
7.4 Niet elk bestandssysteem bewaart eigendom
Eigendom is een eigenschap van het bestandssysteem, niet van het bestand. De native Linux-bestandssystemen leggen allemaal een UID en een GID in elke inode vast:
$ stat -c '%U %G' report.txt
peter staff
Maar sommige bestandssystemen hebben geen plek om die informatie te bewaren. FAT32 en exFAT, de formaten op de meeste USB-sticks en camerakaarten, bewaren helemaal geen Unix-eigenaar. NTFS (het Windows-bestandssysteem) ook niet, tenminste niet in een vorm die Linux standaard gebruikt. Wanneer je zo'n schijf aankoppelt, verzint de kernel een eigenaar voor elk bestand uit de aankoppelopties, en chown mislukt gewoon of wordt genegeerd:
$ sudo chown peter /mnt/usb/photo.jpg
chown: changing ownership of '/mnt/usb/photo.jpg': Operation not supported
De oplossing is niet chown; het is de aankoppeling. Je stelt eigendom voor de hele schijf in bij het aankoppelen met de opties uid= en gid=, bijvoorbeeld mount -o uid=1000,gid=1000 /dev/sdb1 /mnt/usb. Als chown ooit "Operation not supported" antwoordt, is het bestandssysteem de reden, niet je rechten.
7.5 Eigendom is niet de enige poort
Een deel van vakmanschap is weten wanneer een tool ophoudt. Je kunt de eigenaar en groep perfect instellen en toch geweigerd worden, omdat eigendom slechts de eerste van meerdere toegangslagen is:
- POSIX-ACL's geven extra gebruikers of groepen hun eigen rechten bovenop het owner/group/others-model. Een afsluitende
+inls -l(zoals in-rw-rwxr--+) is je aanwijzing; lees ze metgetfacl. - SELinux en AppArmor voegen een hele aparte beleidslaag toe. Een proces kan een bestand bezitten en toch geblokkeerd worden door zijn beveiligingscontext of profiel, wat
chownenchmodook zeggen.
Wanneer het eigendom klopt maar de toegang toch mislukt, vertelt een kleine gereedschapskist je waarom. Gebruik ze voordat je naar weer een chown grijpt:
$ id # who am I, and which groups am I in?
$ stat report.txt # exact owner, group, and mode of one file
$ namei -l /srv/data/file # ownership and mode of every step in the path
$ find /srv -user root # every file still owned by root
$ find /srv -group www-data # every file in a given group
De meest onderbenutte hiervan is namei -l. Toegang tot een bestand hangt af van elke map erboven, en namei loopt het hele pad af en drukt de eigenaar en modus bij elke stap af, zodat het precies laat zien waar een keten breekt.
8. Beste praktijken
- Verwacht dat je
sudogebruikt. Een eigenaar wijzigen vereist root. Zegtchown"Operation not permitted", dan mis je vrijwel zekersudoen doe je niets verkeerd. - Stel eigendom in voor rechten, niet erna. Een
chownkan setuid- en setgid-bits wissen, dus draaichowneerst enchmodals tweede wanneer een bestand beide nodig heeft. - Grijp naar de dubbele-puntvorm.
chown user:group filestelt beide tegelijk in en bespaart je een apartechgrp. - Verkies numerieke ID's tussen machines. Bij het verplaatsen van bestanden tussen servers, containers of back-ups is
chown 1000:1000betrouwbaar waar namen op beide kanten misschien niet bestaan. - Gebruik
-hop gedeelde systemen bij recursie.chown -hRwijzigt links in plaats van ze blind de boom uit te volgen, wat een echt beveiligingsgat sluit. - Typ nooit
chown -R user /. Een verdwaalde schuine streep kan je hele systeem aan de verkeerde eigenaar geven. Controleer het pad dubbel, en houd--preserve-rootin gedachten. - Lees de handleiding als je twijfelt. Het kenmerk van een professional is niet elke optie uit het hoofd kennen; het is
man chowntypen zodra er een vraag opkomt.
$ man chown # the full manual page
$ chown --help # a quick summary (GNU)
$ info coreutils 'chown invocation' # the verbose GNU manual
Naar boven9. Veelgemaakte fouten
9.1 Mythe versus werkelijkheid
| Mythe | Werkelijkheid |
|---|---|
"chown verandert wat ik met een bestand mag doen." |
Nee. Dat is chmod. chown verandert alleen wie de eigenaar en groep zijn; de rechten-bits blijven zoals ze waren. |
| "Ik bezit dit bestand, dus ik kan het aan een andere gebruiker geven." | Op Linux kan dat niet. Alleen root mag de eigenaar van een bestand wijzigen. Je kunt de groep veranderen naar een waar je lid van bent, maar het bestand niet weggeven. |
"chown user:group heeft een spatie rond de dubbele punt nodig." |
Er mag geen spatie in. peter:staff is een operand; peter : staff is een fout. |
"chown op een symlink verandert de link." |
Standaard volgt het de link en verandert het doel. Voeg -h toe om de link zelf te veranderen. |
| "De eigenaar instellen houdt mijn setuid-programma werkend." | Het wijzigen van de eigenaar wist meestal de setuid- en setgid-bits. Stel eerst het eigendom in, daarna de speciale bit. |
9.2 Andere valkuilen om te vermijden
- Rechten repareren met
chownterwijl jechmodbedoelt, of andersom. Als de juiste gebruiker een bestand nog steeds niet kan lezen na een moduswijziging, hoort het bestand misschien gewoon bij de verkeerde eigenaar. Hoort het bij de juiste gebruiker maar mislukt het toch, controleer dan de modus. De twee commando's lossen verschillende helften van het probleem op. - De
-Rop een map vergeten. Een kaalchown user dirwijzigt alleen de map-node, niet de bestanden erin. Voeg-Rtoe om de hele boom te bereiken. - Een recursieve
chownvanaf de verkeerde plek draaien.chown -Rvolgt het pad dat je geeft precies. Bevestig dat je in, of gericht op, de map bent die je denkt. - De puntscheiding in nieuwe scripts gebruiken.
peter.staffis verouderd, waarschuwt, en breekt op namen die een punt bevatten. Schrijfpeter:staff. - Een webapplicatie breken met te breed eigendom. Elk bestand aan
www-datageven kan de webserver zijn eigen code laten herschrijven. Geef de server alleen eigendom van de mappen die het echt moet schrijven, zoals cache en uploads.
10. Samenvatting
Het commando chown is klein, maar het beslecht een vraag die elk multi-user-systeem moet beantwoorden: van wie is dit bestand?
chownbetekent "change owner" (eigenaar wijzigen). Het bewerkt de eigenaar en groep diels -ltoont, en het is sinds 1971 onderdeel van Unix.- De basisvormen zijn
chown user file,chown user:group file, enchown :group file(dat gelijk is aanchgrp). - Een afsluitende dubbele punt, zoals in
chown peter: file, zet de groep op de login-groep van de gebruiker. - Namen zijn een gemak bovenop numerieke UID's en GID's. Gebruik getallen met
chown 1000:1000bij het verplaatsen van bestanden tussen machines of naar containers. - Gebruik
-Rom een hele boom te wijzigen,-hom op een symbolische link te werken in plaats van zijn doel, en--fromom alleen bestanden met een bepaalde huidige eigenaar te wijzigen. - Alleen root mag de eigenaar van een bestand wijzigen, dus je draait
chownvrijwel altijd metsudo. De groep mag je zonder root wijzigen naar een waar je lid van bent. - Eigendom wijzigen wist meestal setuid- en setgid-bits, dus stel eerst de eigenaar in en daarna de speciale bit.
--referencekopieert de eigenaar en groep van een ander bestand;-cen-vmelden wat er veranderde.- FAT, exFAT en NTFS bewaren geen Unix-eigenaar; daar stel je eigendom in met de aankoppelopties
uid=engid=, niet metchown. - Eigendom is slechts de eerste poort. ACL's, SELinux en AppArmor kunnen toegang nog steeds weigeren;
id,statennamei -lhelpen je uitzoeken waarom. - Bij twijfel, typ
man chown.
Dit is de snelle referentie die het bewaren waard is:
chown peter file set the owner to peter
chown peter:staff file set owner peter and group staff
chown peter: file owner peter, group = peter's login group
chown :staff file change only the group (like chgrp)
chown 1000:1000 file use numeric IDs (portable across machines)
chown -R www:www /var/www change a whole directory tree
chown -h root link change the symlink itself, not its target
chown -hR --from=old new / renumber one user's files safely
chown --reference=A B give B the same owner and group as A
sudo chown ... ownership changes need root
Eigendom is de helft van Linux-beveiliging die mensen vergeten tot het bijt: de rechten zien er goed uit, en toch werkt niets, omdat het bestand bij de verkeerde gebruiker hoort. Als een server van jou zijn cache maar niet wil schrijven, of een site het na een deploy wel doet maar ervoor niet, loont het vaak om iemand het hele plaatje van eigendom en rechten samen te laten bekijken, rustig, voordat een botte chown -R een kleine mismatch in een grotere verandert.


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


