File Ownership

Elk bestand of elke directory op een linux machine is eigendom van een specifieke user of group. Bijgevolg worden bestandsrechten apart gedefinieerd voor “user/owner”, “group” en “others”

User: De gebruiker die eigenaar is van het bestand. Standaard zal de gebruiker die het bestand aanmaakt ook eigenaar worden.

Group: De gebruikersgroep die eigenaar is van het bestand. Alle gebruikers die behoren tot deze gebruikersgroep zullen dezelfde rechten/toegang hebben op het bestand. Dit is bijvoorbeeld nuttig als je werkt aan een project waar meerdere gebruikers toegang tot moeten hebben; voeg de gebruikers toe aan een groep en zorg er vervolgens voor dat de bestanden en mappen van het project eigendom zijn van deze groep.

Other: Een gebruiker die geen eigenaar is van het bestand en die niet tot dezelfde groep behoort als het bestand. Kortom alle andere gebruikers dus.

Bestandsrechten/File permissions

Er zijn 3 soorten bestandsrechten op linux: read, write en execute. Deze rechten worden apart gedefinieerd voor user/owner, group en other.

Read Permission Wil zeggen dat het bestand geopend en gelezen kan worden of dat de inhoud opgelijst kan worden als het een directory betreft en als de execute rechten aanwezig zijn.

Write Permission Wil zeggen dat het bestand kan gewijzigd/overschreven worden of dat er bestanden kunnen toegevoegd, hernoemd of verwijderd worden als het om een directory gaat.

Execute Permissions Wil zeggen dat het bestand uitgevoerd kan worden als een programma of script of dat je toegang hebt tot bestanden of submappen in deze directory. Wees er echter van op de hoogte dat execute rechten op een directory niet volstaan om de inhoud hiervan op te lijsten. Hiervoor heb je dus ook read rechten nodig.

Hoe file permissions nakijken

Het ownership alsook de file permissions van een bestand/directory kunnen opgevraagd worden dmv een “long directory listing” met het “ls -l” commando:

brando@starlight:~$ ls -l
total 14149112
lrwxrwxrwx 1 brando brando          56 2011-11-06 04:27 Access-Your-Private-Data.desktop -> /usr/share/ecryptfs-utils/ecryptfs-mount-private.desktop
drwxr-xr-x 2 brando brando        4096 2011-11-19 17:38 Desktop
drwxr-xr-x 2 brando brando        4096 2011-11-13 00:27 Documents
drwxr-xr-x 2 brando brando        4096 2011-12-05 17:12 Downloads
drwxr-xr-x 2 brando brando        4096 2011-11-11 21:07 Music
drwxr-xr-x 2 brando brando        4096 2011-11-13 02:01 Pictures
drwxr-xr-x 2 brando brando        4096 2011-11-11 21:07 Public
drwxr-xr-x 2 brando brando        4096 2011-11-11 21:07 Templates
drwxr-xr-x 3 brando brando        4096 2011-11-21 13:25 tmp
drwxr-xr-x 2 brando brando        4096 2011-11-11 21:07 Videos
drwxrwxrwx 3 brando brando        4096 2011-11-14 23:34 VirtualBox VMs

In de eerste kolom vind je de bestandsrechten terug, de 2de toont het aantal links, i.e. “directory” entries die naar het bestand verwijzen, de 3de en de 4de kolom tonen respectievelijk het owner en groupownership van het bestand. De overige kolommen tonen de grootte van het bestand in bytes, de datum en het tijdstip van de laatste wijziging en tot slot de bestandsnaam.

De eerste kolom bestaat uit 1 character en toont het bestandstype:

d = directory
- = regular file
l = symbolic link
s = Unix domain socket
p = named pipe
c = character device file
b = block device file

Hoe file ownership wijzigen?

Het ownership van een bestand of directory kan gewijzigd(via de root user of met een gebruiker die hier ook toe gerechtigd is) worden dmv het “chown commando”:

$chown username filename

$chown username:groupname filename/dirname

De eerste versie past enkel het ownership aan, de tweede doet dit ook voor groupownership.
Noteer dat bovenstaand commando, indien uitgevoerd op een directory, enkel het ownership wijzigt van deze directories en niet van diens inhoud.
Om dit te verwezenlijken moet de recursive optie meegegeven worden:

$chown -R username:groupname dirname

Om enkel het group ownership van een bestand aan te passen kan je het “chgrp” commando gebruiken:

$chgrp usergroup filename

Hoe bestandsrechten wijzigen?

Bestandsrechten kunnen gewijzigd worden dmv het chmod commando. Hier volgen enkele voorbeelden:

$chmod a=r filename

Verwijder alle bestandsrechten maar voeg leesrechten toe voor iedereen.
Na dit commando zien de bestandsrechten er als volgt uit: -r–r–r–

$chmod g+x filename

Voeg execute rechten voor group toe.

$chmod ug-x

Verwijder execute rechten voor user/owner en group

Om samen te vatten volgt hier nog een duidelijk overzicht:

Which user?
u	user/owner
g	group
o	other
a	all
What to do?
+	add this permission
-	remove this permission
=	set exactly this permission
Which permissions?
r	read
w	write
x	execute

Er is ook een numerieke manier om bestandsrechten toe te kennen. Deze manier is iets minder straighforward maar wel veel sneller eens je ze onder de knie hebt.

4 = read (r)
2 = write (w)
1 = execute (x)
0 = no permission (-)

 

Which number?
0	---
1	--x
2	-w-
3	-wx
4	r--
5	r-x
6	rw-
7	rwx

Enkele voorbeelden:

$chmod 755 filename

Wijzigt de bestandsrechten naar -rwxr-xr-x

$chmod 640 filename

Wijzigt de bestandsrechten naar -rw-r—–

Kunnen we je nog ergens anders mee helpen?

Bel of mail ons. We helpen je snel met een antwoord.

Contacteer ons