Skip to main content

File and Directory permissions

File systeem

Het unix file systeem is een hierarchisch systeem, net als bij Windows. Dat betekent dat er ergens een begin is; onder windows is dat (bijna altijd) c:\ en onder Linux is dat /

Owner en Group

FIles en directories hebben een owner (ook wel user) en een group. De owner is meestal degene die de file heeft aangemaakt. De rechten van de owner en de group kunnen apart worden ingesteld.

RWX - Read, Write en Execute

We kennen drie soorten rechten: Read, Write en eXecute (RWX). Read is voor lezen, write voor aanpassen/schrijven en execute betekent dat je een file mag uitvoeren. Voor een directory betekent de execute dat je naar de directory toe mag gaan.

ls -l

Als je een ls -l doet dan zie je bijvoorbeeld

drwxrwxr-x  17 max    apache 4096 Nov 27 22:03 www

De drwxrwxrwx geven de file permissions (rechten) aan, daarover later meer). De 17 geeft het aantal links aan, dit is voor nu niet belangrijk. 'max' is de owner, ook wel user van de file. apache is de group waartoe de file behoort. 4096 is het aantal bytes dat de file in beslag neemt (dat is niet helemaal hetzelfde als de grootte van de file), dan volgt de 'last modification date' en als laatste zie je de file name.

De owner kan bijvoorbeeld Read and Write-rechten hebben en leden van de group kunnen bijvoorbeeld alleen Read-rechten hebben. Je kunt tenslotte ook nog de rechten van 'iedereen' (other) instellen, dat zijn alle gebruikers die niet de owner zijn en niet in in de group zitten.

Image result for linux owner and group

Voor elke file en directory staan 10 letters, we kijken naar de laatste 9. Dit zijn 3 groepjes van 3; rwx, rwx en rwx. De eerste rwx staat voor de owner/user van de file, de tweede voor de group en de laatste voor others.

Stel je ziet dit als je een ls -l uitvoerd:

-rw-r--r--  1 root root         52 Jan 11 18:18 subuid

Dat betekent dat de file subuid van root is (owner/user) en dat die ook aan de group root toebehoort. De owner root heeft Read en Write rechten en de groep heeft alleen read rechten. Ten slotten hebben others ook read rechten.

File permissies instellen

Met het commando chmod (CHange file MODe bits) kunnen de rechten worden ingesteld van de User, Group en Others. Stel je wilt de rechten instellen van de User en de Group dan gebruik je UG. Stel je wilt de rechten instellen van de User, Group en Others dan gebruik he UGO.

Dan kun je rechten toevoegen of afnemen, dat doe je met een + of een -.

Vervolgens kun je read, write en execute rechten toekenen of afnemen. Read en write toevoegen doe je met +rx. Afnemen van alle rechten doe je met -rwx.

Voorbeelden chmod
Afnemen van read rechten van others voor file_a chmod o-r file_a
Toevoegen van read en write rechten aan user en group voor alle files in deze dierctory chmod ug+rw *
Toevoegen van alle rechten aan iedereen voor alle files in deze directory en alles 'hieronder' chmod -R ugo+rwx

Recursief

In het laatste commando is de flag -R toegevoegd. Dit betekent recurief en dat betekent dat alle files en alle directories worden veranderd. Directories in directories worden ook veranderd, ook de directories in de directories in de firectories, etc. worden veranderd.

FIle permissies instellen - octaal

In plaats van rechten toekennen in meerdere stappen kan je dat ook in één doen. De r is 4, de w is 2 en de x is 1. Dus als je rw- wilt instellen dan gebruik je het 4+2=6. Als je r-x wilt instellen gebruik je 4+1=5. Dat doe je dan drie keer voor de user, de group en others. rwx wordt 4+2+1=7 Als we dus de user, group en others allemaal +rwx willen geven dan kan dat met een chmod 777.

Read 4
Write 2
Execute 1

Het getal dat je gebruikt is een getal in het 8-tallig stelsel, we noemen dat het octale stelsel.

https://i.redd.it/vkxuqbatopk21.png

r=4, w=2 en x=1. Dus rwx=4+2+1=7

Nog meer voorbeelden
geef alleen alle rechten op file01 aan owner

chmod u+rwx file01

chmod go-rwx file01

chmod 700 file01
geef owner, groep en others alle rechten

chmod ugo+rwx file01

chmod 777 file01
geef alleen de owner en de groep leesrechten op file01

chmod ug+r file01

chmod ug-wx file01

chmod o-rwx file01

chmod 440 file01

User en groups aanpassen

Met chown kun je de user/owner aanpassen en met chgrp kun je de group aanpassen.

chown CHange Owner
chgrp CHange GRoup
chown voorbeelden
maak root owner van file file01 chown root ./file01  
maak apache owner van alle file in /var/www chown -R apache /var/www -R is recursief
van de file01 maar root owner en voeg de group root ook toe chown root:root ./file01  
chgrp voorbeeld
Geeft de group root rechten op file02 chgrp root ./file02  

--