Nieuws
Nieuwe distributie
Onlangs zijn we overgestapt op een nieuwe Linux-distributie, nl. Pardus Linux
Dit lijkt ons een prima distributie, zowel voor beginners als experts.
|
|
7. BESTANDSRECHTEN
Gebruikers
Zoals eerder genoemd, is Linux een multi-user systeem. Iedere gebruiker heeft zijn eigen home-directory. De
gegevens van alle gebruikers worden bewaard in een bestand /etc/passwd. Het wachtwoord kun je
daar echter niet vinden. Dat staat weer, versleuteld, in een ander bestand, nl. /etc/shadow. Dat
laatste bestand is ook nog eens beveiligd tegen nieuwsgierige blikken: alleen root kan het
/etc/shadow-bestand lezen.
Eerst even naar /etc/passwd: Daar staat de inlognaam van elke gebruiker met daarachter o.a. een
user-ID (UID) en een group-ID (GID). Een computer werkt nl. liever met getallen dan met namen, vandaar dat
elke gebruiker een nummer krijgt. Die group-ID nummers maken duidelijk, dat elke gebruiker ook tot een groep
behoort. Elke gebruiker is "lid" van tenminste één groep. Bij sommige distributies worden
alle gebruikers lid van dezelfde groep, bij andere distributies krijgt iedere gebruiker een eigen groep. Maar
dat alles is door root ook anders in te stellen (dat is echter voer voor gevorderden).
Om te zien wat je UID en GID is geef je het commando id. De uitvoer geeft eerst je UID,
daarna het GID van de groep, waar je momenteel bij hoort, en tenslotte de groepen waar je lid van bent.
Als je lid bent van meerdere groepen, kun je ook omschakelen naar één van de andere groepen,
en wel met het commando newgrp. Stel dat je lid bent van de groep "user" en van de groep
"test", dan verander je je actuele groep van user naar test door newgrp test. Soms wordt
daarbij om een wachtwoord gevraagd. Als je nooit een groepswachtwoord aangemaakt hebt, kun je hier
gewoon een "Enter" geven.
Bestandsrechten
Genoeg gespeeld: we gaan nu wat meer vertellen over de verschillende kolommen, die je ziet met een
ls -l.
De eerste kolom bestaat uit een aantal letters en streepjes, 10 in het totaal. Daar komen we zo op.
In de tweede kolom staat een getal: daar willen we het nu ook nog niet over hebben. In de derde en vierde
kolom staan de gebruiker en de groep waarvan het bestand eigendom is. En die zijn nu wel belangrijk,
want dat heeft alles te maken met de eerste kolom.
Als de eerste letter in de eerste kolom een streepje (-) is, heb je te maken met een gewoon
bestand. Als er een d staat, dan gaat het over een directory. Een l betekent, dat het
een link betreft; daar komen we later nog op terug.
De volgende 9 tekens geven de toegangsrechten van het bestand of de directory weer. Een r
betekent readable (leesbaar), een w writable (schrijfbaar) en een x executable
(uitvoerbaar). De 9 tekens zijn onder te verdelen in 3 groepen van 3 tekens. De eerste 3 zijn voor de eigenaar
van het bestand of directory, de tweede 3 voor de groep en de laatste 3 voor alle anderen.
Als er dus bij een bestand -rw------- staat, betekent dat, dat alleen de eigenaar het bestand
mag lezen en ernaar mag schrijven (of het mag wissen), en dat alle anderen, incl. de gebruikers die lid zijn
van dezelfde groep, er helemaal niets mee mogen.
Vaak staat er -rw-r--r--: alleen de eigenaar van het bestand kan er dan wat aan veranderen, de
overigen kunnen het alleen lezen.
Een x staat bij programma's en script-programma's, die uitgevoerd kunnen worden. De plaats
van de x-en bepaalt dus, wie het programma mag (mogen) uitvoeren.
Bij directory's werkt het iets anders: een r betekent, dat je de inhoud van een directory kunt
bekijken (bijv. met ls). Een w wil zeggen, dat je in die directory bestanden kunt
aanmaken, wijzigen en verwijderen. De x heeft hier weinig met execute te maken (je kunt een
directory tenslotte niet uitvoeren). Als een directory executable is, wil dat zeggen, dat je naar de directory
kunt "cd-en".
Eigenaar wijzigen
Zoals gezegd heeft ieder bestand en directory een eigenaar. Maar Linux zou Linux niet zijn, als je dat niet
zou kunnen veranderen, en wel met chown. Als je het bestand test aan Piet wilt
geven, geef je het commando chown piet test. Aan het groepseigendomsrecht verander je op
deze manier niets. Dat kàn echter wel: chown piet:groep test. Denk erom, dat er geen
spaties mogen staan rond de dubbele punten. Het commando chown kent natuurlijk nog meer
opties; die kun je terugvinden in de man-pages.
Als je alleen het groepseigendomrecht wilt wijzigen, dan kan dat met chgrp groep test.
N.B. Onnodig te zeggen, dat je wel over de nodige rechten van een bestand moet beschikken, voordat je het
bestand van eigenaar of groep kunt veranderen.
Rechten wijzigen
Natuurlijk kun je, als je eigenaar van het bestand bent (of root, want die mag alles), ook de
toegangsrechten van dat bestand veranderen. Hiervoor gebruik je het commando chmod.
Als je bijvoorbeeld iedereen lees en schrijfrechten wilt geven op een bestand, kun je het commando
chmod u=rw,g=re,o=rw bestand geven, waar u staat voor user (=eigenaar),
g voor groep en o voor others (anderen).
Je kunt ook uitgaan van bestaande rechten en die wijzigen. Als een bestand bijvoorbeeld als permissies
-rw-r--r-- heeft, kun je dat wijzigen in -rw-rw-rw- met de opdracht chmod
g+w,o+w bestand. Hierbij voeg je met het +-teken een recht toe en met een
--teken haal je een bevoegdheid weg.
Een veel meer gebruikte methode om bestandspermissies te wijzigen maakt gebruik van getallen.
De 9 permissie-bits zijn, zoals eerder gezegd, verdeeld in 3 sets van 3, een set voor de eigenaar, een set voor
de groep en een set voor anderen. Zo'n set heeft een r, een w en een x
bit. De r heeft een waarde van 4, de w een waarde van 2 en de x een
waarde van 1. Zo zou de toestemming voor lezen en schrijven het getal 6 opleveren (4+2), en alleen het
recht tot lezen een 4. Een notatie van -rwxrw-r-- levert dan 764 op : rwx=7, rw=6, r=4. Om eerder
genoemd voorbeeld weer te gebruiken: als je iedereen toestemming wilt geven tot lezen en schrijven van een
bestand, geef je chmod 666 bestand in als opdracht. Als je alleen zelf, als eigenaar, alles met een
bestand wilt kunnen doen (lezen, schrijven en uitvoeren) geef je chmod 700 bestand. Nu is de
maximale privacy gewaarborgd: geen ander dan de eigenaar (en root) kan het bestand lezen, laat staan
wijzigen of uitvoeren...
Resumé
We hebben hier in sneltreinvaart een aantal Linux-opdrachten behandeld. Wil je er echter goed in thuis
raken, dan moet je er echt even mee oefenen en zeker de man-pages erop nalezen.
Tenslotte nog een overzicht van de in dit hoofdstuk genoemde opdrachten:
Laatst herzien op 18-12-2006
|