Linux is een multi-user systeem. Dit wil zeggen dat, wanneer je het systeem wilt gebruiken je moet inloggen als een user, met een bijhorend paswoord.
Deze users worden ook nog eens opgedeeld in groepen (groups).
Aan het hoofd van alle groepen en gebruikers staat de root, de system-administrator.
Dit is nodig omdat niet iedereen alles mag lezen, veranderen of betreden in een systeem. Welke user wat mag wordt bepaald door de instelling van rechten (permissions). Daarbij maken we een onderscheid tussen de rechten van de Owner en de rechten van de Group:
Met behulp van het volgende commando kan je bekijken tot welke groep en eigenaar een bestand of directory behoort:
$ ls -la
De output kan er bijvoorbeeld zo uit zien:
drwxr-xr-x 2 root root 48 Aug 5 15:28 java/
drwxrwxrwx 2 bart users 80 Jun 27 00:02 public_html/
drwxr-xr-x 6 bart users 2280 Aug 10 23:42 site/
-rw-r--r-- 1 bart users 662817 Jul 25 15:48 unix.pdf
In de derde kolom, waar bart en root in staan, vind je de eigenaar of owner van het bestand of directory.
In de vierde kolom, waar root en users staan, vind je de group waartoe de owner behoort
Als een gebruiker een bestand wil lezen, beschrijven, wissen of uitvoeren, dan moet hij daartoe het recht hebben. Onder linux kan dus niet iedere gebruiker zomaar alles lezen, beschrijven, wissen of uitvoeren.
Welke rechten een gebruiker nodig heeft om een actie uit te voeren, wordt voor iedere file op directory apart bepaald. Aan elk directory en elk bestand in Linux worden rechten (ookwel permissions genoemd) meegegeven.
Rechten op een file of bestand kan je ook wijzigen >>.
Alleen de eigenaar kan deze permissies bepalen en veranderen. Van bestanden en mappen die je maakt ben je uiteraard zelf de eigenaar.
Van systeembestanden is de eigenaar meestal de gebruiker root.
Goed om te weten: de gebruiker root kan van alle bestanden de permissies bepalen ongeacht wie de eigenaar is! Ook kan de gebruiker root een andere eigenaar toewijzen met het commando chown. Dat maakt de gebruiker root zo belangrijk op een Linux systeem. |
Om bestanden te delen met meerdere gebruikers kunnen er groepen van gebruikers gemaakt worden.
Bij de installatie van ubuntu geef je een gebruikersnaam op. Voor die gebruikersnaam wordt er ook altijd een groep gemaakt waar (alleen) deze gebruiker lid van is.
Dus:
User = de eigenaar van het bestand
Group = het bestand hoort toe aan een group van users, deze hebben ook aparte rechten op het bestand.
Others = al de rest.
Om de permissies van een bestand of map op te vragen kan de -l aan de ls opdracht meegegeven worden:
drwxr-xr-x 2 root root 48 Aug 5 15:28 java/
drwxrwxrwx 2 bart users 80 Jun 27 00:02 public_html/
drwxr-xr-x 6 bart users 2280 Aug 10 23:42 site/
-rw-r--r-- 1 bart users 662817 Jul 25 15:48 unix.pdf
De eerste 10 posities geven dan de permissie aan. Ter verduidelijking gebruiken we hier kleur.
Het eerste teken is het type bestand:
De volgende 9 tekens zijn verdeeld in 3 groepjes.
De eerste groep zijn de permissies voor de eigenaar, de tweede groep bevat de permissies die gelden voor de groep en de laatste groep de permissies voor alle overige gebruikers.
eigenaar groep overige
rwx rwx rwx
Iedere groep bestaat weer uit drie posities. Deze drie posities geven de permissies voor deze groep aan. Het recht dat een eigenaar, groep of de overige gebruikers hebben op een bestand wordt weergegeven doormiddel van een letter:
r mag bestand lezen
w mag bestand wijzigen of wissen
x mag bestand uitvoeren (programma's)
Voor mappen is de betekenis vergelijkbaar:
r mag opvragen welke bestanden in de map zitten (lezen)
w mag bestanden toevoegen, wissen of wijzigen in de map (schrijven)
x toegang tot de map
Een voorbeeld van een bestand:
-rw-r--r-- 1 bb bb 23506 2006-05-22 21:35 ubuntu.jpg
De eerste 10 posities zijn -rw-r--r--:
Het volgende voorbeeld is een veel voorkomende instelling voor mappen. Voor mappen is de eerste positie een d.
drwxr-xr-x 2 bb bb 4096 2006-05-22 21:35 foto
Als eigenaar (bb) kunnen bestanden aan deze map worden toegevoegd en ook gewijzigd of gewist. Andere gebruikers hebben wel toegang maar kunnen niets wissen of toevoegen. Dit is een veel gebruikte instelling ook voor systeemmappen.
Met het commando chmod kunnen permissies gewijzigd worden.
Alleen de eigenaar van een bestand of map OF de gebruiker root kan de permissie wijzigen.
Dit kan op twee verschillende manieren.
In het commando chmod wordt gebruik gemaakt van letters om aan te geven voor wie de nieuwe permissies gelden. De letters hebben de volgende betekenis:
Ook een combinatie van letters is toegestaan.
Na deze letter komt een plus (+) teken om permissies toe te voegen en een min (-) teken om te verwijderen en als laatste de permissie waar het om gaat.
Wis bijvoorbeeld alle lees permissies voor de groep en overige gebruikers om de foto ubuntu.jpg te beveiligen:
chmod go-r ubuntu.jpg
Het resultaat:
-rw------- 1 bb bb 23506 2006-05-22 21:35 ubuntu.jpg
Als iedereen een bepaald programma of script, in dit voorbeeld script1 genoemd, moet kunnen gebruiken kunnen de permissies zo ingesteld worden:
chmod a+rx script1
Het resultaat:
-rwxr-xr-x 1 bb bb 140 2006-05-22 21:35 script1
In plaats van letters kan je ook getallen gebruiken. Als je dit, eenmaal onder de knie hebt is het een veel snellere methode!
R = 4 4 4
W = 2 2 2
X = 1 1 1
Je telt de cijfers dus verticaal op, en als je dan dit: -rwx-rw-x- wil bekomen, doe je:
$ chmod -R 761 directory
Het heeft nu niets te maken met die getallen, maar we hebben ineens aangetoond hoe je de Recursive mode kan gebruiken om de rechten van een hele directory en zijn inhoud te veranderen!
Wil je de eigenaar van een bestand/directory/link veranderen, dan kan dat met chown:
$ chown bart:users bestand
Het bestand behoort nu toe aan de User bart en aan de Group users.
De Group aan wie het bestand toebehoort staat achter de :. Als je de group niet witl veranderen kan je deze ook weglaten.
Je kan de Group ook apart wijzigen, met chgrp:
$ chgrp users bestand
De Group users heeft nu de rechten op het bestand.
Maak opdracht 4 (uitgereikt)
Menu |
|