Valid HTML 4.01! Valid CSS
Anybrowser

Navigatie:


Home - Linux beginners - Bestandsrechten

logo

.



Home
Printbaar

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:

id newgrp chown chgrp chmod


Laatst herzien op 18-12-2006