Dateirechte unter Linux
 

Worüber man häufig unter Linux stolpert, sind die Dateirechte. Im Gegensatz zu Windows hat unter Linux jede Datei einen Besitzer und eine explizite Rechtevergabe, wer was mit der Datei machen darf. Dieses Konzept ist eines der Hauptgründe warum Linux so sicher ist. Aufgeteilt sind die Rechte in drei Kategorien. Die erste Kategorie ist der Eigentümer der Datei selbst, so kann man für sich selbst einen Schreibschutz aktivieren, wenn man das Recht auf schreiben entfernt. Die zweite Kategorie ist die Gruppe, der die Datei angehört. Und die dritte Kategorie sind alle Anderen (sozusagen der Rest der Welt).

Mit Hilfe des Befehls ls -al kann man sich nicht nur die Dateirechte anzeigen lassen, sondern auch den Besitzer und die Gruppe, z.B.
# ls -al
drwxr-xr-x 1 root root 4096 2008-03-08 02:26 .
drwxr-xr-x 1 root root 4096 2007-03-09 22:04 ..
drwxrwxrwx 1 udo udo 16384 1970-01-01 01:00 Versuch
-rwxr-xr--
1 udo udo 234 2008-03-08 02:26 Datei

Die allererste Stelle kennzeichnet die Art des Eintrags.
Ein d steht für ein Verzeichnis (Directory), normale Dateien haben hier einen Strich.
Dann folgt die 3er Kombi für die Rechte des Eigentümers der Datei: rwx.
r = (read) lesen
w = (write) schreiben
x = ausführen
Steht nur ein "-" an der betreffenden Stelle, dann hat die betreffende Kategorie das betreffende Recht nicht.
Als nächstes kommt die Dreier-Kombi für die Gruppe und als letztes für den Rest der Welt. Nach dem Referenzzähler (die Zahl in der zweiten Spalte) folgt der Eigentümer der Datei und die Gruppenzugehörigkeit.

chmod

Ändern kann man die Rechte mit chmod, z.B.:
# ls -al
-rwxr-xr-- 1 udo udo 234 2008-03-08 02:26 Datei
# chmod 777 Datei
# ls -al
-rwxrwxrwx 1 udo udo 234 2008-03-08 02:26 Datei

Dabei gibt man die Zugriffsrecht in oktaler Form an.
Die einzelnen Zahlen in der Übersicht:
7 rwx
6 rw-
5 r-x
4 r--
3 -wx
2 -w-
1 --x
0 ---

Optionen für chmod:
-R Wenn ein Verzeichnis angegeben wurde, werden auch die
Rechte von Dateien und Verzeichnissen innerhalb dieses
Verzeichnisses geändert (rekursiv).

chown

Den Eigentümers oder der Gruppezugehörigkeit ändert man mit chown:
# ls -al
-rwxrwxrwx 1 udo udo 234 2008-03-08 02:26 Datei
# chown root:root Datei
-rwxrwxrwx 1 root root 234 2008-03-08 02:26 Datei

Wird nur ein Benutzername angegeben, bleibt die Gruppe so, wie sie war. Wird ein Benutzername mit Doppelpunkt angegeben, dann wird die Datei der primären Gruppe des Benutzers zugeordnet. Wird nur ein Gruppenname angegeben (mit Doppelpunkt am Anfang), dann bleibt der Eigentümer so, wie er war.
Zum Beispiel:
# ls -al
-rwxrwxrwx 1 root root 234 2008-03-08 02:26 Datei
# chown udo: Datei
# ls -al
-rwxrwxrwx 1 udo udo 234 2008-03-08 02:26 Datei
Die Datei wurde dem Benutzer udo zugeordnet und wegen der Doppelpunkte auch der primären Gruppe (hier die Gruppe udo) des Benutzers.