Linux Zugriffsrechte verstehen und ändern
Ein Thema mit dem ich mich lange überhaupt nicht auseinander gesetzt habe sind die Zugriffsrechte im Linux-Betriebssystem. Hat man das System dahinter aber erst einmal durchdrungen und verstanden, ist es auch gar nicht mehr schwer (zugegeben, das ist wohl bei den meisten Dingen so :-)). Dummerweise bin ich aber eine übelst vergessliche Person (muss wohl mit dem Alter zusammen hängen), von daher muss ich das einfach mal aufschreiben :-)
1. Grundlegendes zu den Zugriffsrechten
Übersicht über die Zugriffsrechte:
$ ls -l
insgesamt 8
-rw-r--r-- 1 massel massel 0 Nov 27 18:58 testfile1.txt
-rw-r--r-- 1 massel massel 0 Nov 27 18:58 testfile2.txt
drwxr-xr-x 2 massel massel 4096 Nov 27 19:00 verzeichnis1
drwxr-xr-x 2 massel massel 4096 Nov 27 19:00 verzeichnis2
Die erste Stelle gibt den Dateityp an, wobei "-" für Datei, "d" für Verzeichnis (Directory) und "l" für Link steht. Danach kommen drei mal drei Zeichen. Die ersten drei Zeichen definieren die Rechte des Eigentümers (u = user), die mittleren drei Zeichen die Rechte der Gruppe (g = group) zu der die Datei/Verzeichnis/Link gehört und die letzten drei Zeichen stehen für Rechte der anderen (o = others), also "den Rest" bzw. "global" oder "world". Dazu kommen Angaben zum Eigentümer und zur Gruppe. Dabei ist der erste "massel" der Eigentümer und der zweite "massel" die Gruppe. Als nächstes folgt die Angabe der Größe in Bytes sowie ein Zeitstempel (Erstellungs- bzw. Änderungsdatum) gefolgt vom eigentlichen Datei- oder Verzeichnisnamen. Schaut man sich das genauer an, ergibt sich für jede der drei Gruppen die folgenden Rechte:
r = lesen (read)
w = schreiben (write)
x = ausführen (execute)
Handelt es sich um ein Verzeichnis, ergeben sich folgende Rechte:
r = lesen, erlaubt den Inhalt des Verzeichnisses aufzulisten
w = schreiben, erlaubt Dateien hinzuzufügen oder zu löschen
x = ausführen, erlaubt auf Dateien im Verzeichnis zuzugreifen
(insbesondere auf Dateiattribute wie Dateigröße etc.)
So weit so unspektakulär...
2. Ändern der Zugriffsrechte mit "chmod"
Möchte man nun die Zugriffsrechte für einzelne Dateien oder Verzeichnisse ändern, so gibt es unter Linux das Programm "chmod" (change mode). Um den "Modus" einer Datei oder eines Verzeichnisses zu ändern muss man entweder Eigentümer oder "root" sein. Dabei sieht die Syntax wie folgt aus:
chmod [ugoa] [+-=] [rwx] Dateiname
So erlaubt bspw. ein chmod u+x install.sh dem Eigentümer der Datei
"install.sh" diese auszuführen.
Alternativ bietet chmod die Möglichkeit die Rechte über einen numerischen Modus zu ändern. Wer darüber mehr erfahren möchte kann einfach "man chmod" auf der Konsole eingeben.
3. Ändern des Eigentümers mit chown
Möchte man für eine Datei oder ein Verzeichnis den Eigentümer und die Gruppe ändern, so bietet sich hierfür das Programm "chown" (change owner) an. Das Kommando hierfür sieht folgendermaßen aus:
chown [user]:[group] Dateiname
Ich denke das ist selbsterklärend :-)
Alternativ lässt sich die Gruppe noch mit dem Programm "chgrp" (change group) ändern, welches sich syntaktisch ebenso bedienen lässt wie chown.
4. Fazit
Wie man sieht ist die Rechtevergabe und Rechteverwaltung unter Linux kein Voodoo oder "rocket-science". Mir persönlich sind beim schreiben diese Artikels einige Groschen (im Wert von mehreren Thalern :-)) gefallen und ich habe Lust bekommen, noch weitere Grundlagen linuxoider Betriebssyteme aufzuarbeiten :-).