Producten
Internet Toegang
xDSL beschikbaarheid
xDSL aanvragen
SDSL
ADSL Business
ADSL Resid&Telework
Domeinregistraties
Leased Lines
Dedicated Hosting
Datacenter Diensten
Helpdesk
Migratie naar @evonet.be
Algemene configuratie
Toegang: ADSL & inbel
Browsen
E-mail
FTP
Nieuwsgroepen
Telnet
Irc
Woordenboek
Een homepage maken
Homepage maken
Chmod commando
Directory beveiligen
Statistieken
Permissies wijzigen
Scripts gebruiken
Mailserver settings
Firewall
Virussen
Downloads
Tucows
Allmacintosh
Linuxberg
HTML
Themes
Bedrijfsinfo
Coördinaten
EVONET
Alg. voorwaarden
Partners EVONET
Policy
Werken bij EVONET
Nieuws
Nuttige links
Resellers
EVONET-reseller worden



 
  Een homepage maken

Permissies wijzigen met het CHMOD-commando

Inleiding

Wat is Chmod? Chmod verandert de rechten van een bestand.

Bestanden op Unix systemen hebben een eigenaar die het bestand kan lezen, bewerken, verplaatsen of wissen. Maar je zit niet in je eentje op het systeem. Hoe voorkom je dat anderen jouw persoonlijke data lezen terwijl ze wel toegang krijgen tot je database, die met pijn en moeite geuploade, Quake-versie en je zelf geschreven programmaatjes ?

Voorkennis:

Op Unix systemen bestaan naast afzonderlijke gebruikers ook groepen. Elke gebruiker zit in minimaal een (standaard-) groep maar kan daarnaast in een of meerdere andere groepen zitten. Bestanden hebben dan ook niet alleen een persoonlijke eigenaar, maar ook een groepseigenaar. Dit is vrijwel altijd de groep waar de persoonlijke eigenaar standaard in zit. Op xs1.evonet.be en xs2.evonet.be is de standaard groep waar alle gebruikers in zitten 'users'. Daarnaast zijn er ook usernamen die niet in die groep zitten. Dit zijn meestal programma's, zoals het www-serverprogramma en de mail-serverprogramma's.

De rechten van een bestand of directory zijn te zien met het commando 'ls -l'. De optie -l staat hier voor 'long format'. De rechten worden voorgesteld door de eerste tekenreeks voor elk bestand:

-rwxr--r-- 1 login 1024 Apr 18 10:04 bestand
drwxrwx--- 2 login 512 Apr 18 15:11 directory

Zo'n reeks is in vier groepen te verdelen:

1. Het eerste teken geeft het soort bestand aan. Dit telt niet mee bij de rechten van het bestand. Een d geeft hier enkel aan dat het om een directory gaat.
2. De volgende drie tekens geven de rechten van de eigenaar aan.
3. De volgende drie tekens geven de rechten van de groepsleden aan.
4. De laatste drie tekens geven de rechten van de anderen aan. De letters r,w, en x staan altijd op dezelfde plaats en geven bepaalde rechten aan. Als een bepaald recht niet aanwezig is, staat er een

Vertaling:

In dit document is het voor de consistentie met bepaalde Engelse afkortingen beter om de originele Engelse term te gebruiken in plaats van de Nederlandse vertaling. De meeste van deze termen zijn:


readable leesbaar (voor directories betekent dit dat de inhoud opgevraagd kan worden met ls)
writable beschrijfbaar
executable uitvoerbaar (bij programma's)
toegankelijk (bij directories)
user gebruiker (eigenaar)
group groep (leden van dezelfde groep als de eigenaar)
others anderen (die niet in die groep zitten)

Sommige zaken zijn met opzet weggelaten uit deze vertaling omdat ze de uitleg voor de doorsnee gebruiker nodeloos moelijker maken. Wie iets mist kan het beste de echte manual van chmod erop naslaan (man chmod).

Gebruik:

chmod [ -fR ] rechten bestandsnaam ...

Beschrijving:

Verander de rechten van een of meerdere bestanden. Alleen de eigenaar van een bestand (of een systeembeheerder) kan de rechten veranderen.

De rechten van elk genoemd bestand kan absoluut of symbolisch opgegeven worden, als volgt: Absolute Rechten

De absolute rechten is een getal samengesteld uit de volgende rechten:


400 Readable door de user.
200 Writable door de user.
100 Executable (of toegankelijk bij directories) door de user.
   
040 Readable door de group.
020 Writable door de group.
010 Executable (of toegankelijk) door de group.
   
004 Readable door others.
002 Writable door others.
001 Executable (of toegankelijk) door others.

De toe te kennen rechten wordt verkregen door de getallen van de gewenste rechten bij elkaar op te tellen. (Eigenlijk gaat het op een andere manier, maar het komt op hetzelfde neer). Zie de voorbeelde hieronder.

Symbolische Rechten

Symbolische rechten hebben de vorm: chmod [wie] op rechten [op rechten ] ...

wie is een combinatie van de volgende soorten:

u User.
g Group.
o Others.
a All (iedereen), gelijk aan ugo.

Als wie weggelaten wordt, wordt standaard a gebruikt, maar er wordt wel rekening gehouden met het rechten-masker (umask, zie onder).

op is een van de volgenden:

+ Om rechten te geven.
- Om rechten weg te nemen.
= Om rechten expliciet toe te kennen zoals ze opgegeven wordt. Hiermee wordt gezegd: deze rechten en niet anders, dus absolute rechten.

rechten is elke combinatie van:

r Readable.
w Writable.
x Executable.
X Geef execute rechten als het om een directory gaat of als er al execution rechten zijn voor een van de andere soorten.

De letters u, g, of o geven aan dat de rechten relatief ten opzichte van de huidige rechten van die soort geldt.

Het weglaten van rechten heeft alleen zin in combinatie met '=' om alle andere rechten weg te nemen.

Zie de voorbeelden hieronder.

Opties:

-f  Force (dwingend). chmod zal niet klagen als het niet zonder meer lukt om de rechten van een bestand te wijzigen.

-R  Recursief. chmod zal elke onderliggende directory ingaan en de rechten van de bestanden aanpassen zoals aangegeven.

Rechten-masker:

Op Unix systemen is een rechten-masker in te stellen voor bestanden die aangemaakt worden. Dit is een getal van drie cijfers, net zoals de absolute rechten hierboven. Als een bestand aan gemaakt wordt, krijgt het voor elke soort maximale rechten minus de rechten van het masker. De werking lijkt dus tegengesteld aan die van de absolute rechten hierboven. umask 077 is het veiligst en zou in ieders opstartbestand (meestal .login) moeten staan.

Voorbeelden

chmod 644 bestand Maak een bestand leesbaar voor iedereen en schrijfbaar voor de eigenaar.
chmod 606 bestand Maak een bestand leesbaar en schrijfbaar voor de eigenaar en others. Dit is nuttig voor guestbooks zodat de www-server (die niet tot 'users' behoort) toch tekst toevoegen aan het guestbook, zonder dat andere gebruikers dat kunnen.
chmod go-w bestand Neem schrijfrechten weg voor de group en others.
umask 077 Zorg dat groups en others nooit rechten hebben op bestanden die aangemaakt worden.
umask 022 Zorg dat groups en others hooguit leesrechten hebben op nieuw aangemaakte bestanden.
chmod =rw,+X test* Geef alle bestanden en directories die met 'test' beginnen lees- en schrijfrechten, maar laat execution rechten zoals die nu is.
chmod 755 mail
u=rwx,go=rx mail
u=rwx,go=u-w mail Maak de directory mail toegankelijk en leesbaar voor iedereen en schrijfbaar voor de eigenaar alleen.
chmod 711 backup Maak de directory backup toegankelijk voor iedereen en lees- en schrijfbaar voor de eigenaar. Anderen uit dezelfde groep en others kunnen de inhoud van de directory niet opvragen. Wel bestanden hierin, mits leesbaar en ze de naam kennen.
chmod -R go= News Neem alle rechten weg van groups en others voor de directory News en alle onderliggende bestanden en directories.
chmod g=u-w bestand Geef groups gelijke rechten als de eigenaar, met uitzondering van schrijfrechten.