Dateirechte & chmod
Rechte & Benutzer
Das Rechtemodell von Linux
Linux ist ein Mehrbenutzersystem. Damit nicht jeder alles lesen oder verändern kann, besitzt jede Datei und jedes Verzeichnis Zugriffsrechte. Diese werden für drei Kategorien vergeben: den Besitzer (user, u), die Gruppe (group, g) und alle anderen (others, o).
Für jede dieser Kategorien gibt es drei Rechte: r (read, lesen), w (write, schreiben) und x (execute, ausführen). Bei Verzeichnissen bedeutet x, dass man hineinwechseln (cd) darf, und r, dass man den Inhalt auflisten darf.
Rechte anzeigen
Mit ls -l siehst du die Rechte ganz links:
$ ls -l datei.txt -rw-r--r-- 1 anna users 1024 Jun 20 10:00 datei.txt
Das erste Zeichen ist der Typ (- Datei, d Verzeichnis, l Symlink). Danach folgen drei Dreiergruppen: rw- (Besitzer), r-- (Gruppe), r-- (andere).
Oktale Schreibweise
Jedes Recht hat einen Zahlenwert: r = 4, w = 2, x = 1. Man addiert die Werte je Kategorie zu einer Ziffer (0–7):
| Oktal | Symbolisch | Bedeutung |
|---|---|---|
| 7 | rwx | lesen, schreiben, ausführen |
| 6 | rw- | lesen, schreiben |
| 5 | r-x | lesen, ausführen |
| 4 | r-- | nur lesen |
| 0 | --- | kein Zugriff |
chmod – Rechte ändern
Mit chmod (change mode) setzt du Rechte. Oktal werden drei Ziffern angegeben (u, g, o):
$ chmod 644 datei.txt # rw-r--r-- (Standard für Dateien) $ chmod 755 skript.sh # rwxr-xr-x (Standard für Programme/Ordner) $ chmod 600 geheim.txt # rw------- (nur Besitzer)
Alternativ symbolisch mit + (hinzufügen), - (entfernen), = (exakt setzen):
$ chmod u+x skript.sh # Besitzer darf ausführen $ chmod go-w datei.txt # Gruppe & andere dürfen nicht mehr schreiben $ chmod a=r datei.txt # alle (a) nur noch lesen
Mit -R wirkt chmod rekursiv auf ganze Verzeichnisbäume.
Typische Werte merken
| Wert | Verwendung |
|---|---|
644 | normale Dateien |
755 | ausführbare Skripte, Verzeichnisse |
600 | private Dateien (z. B. SSH-Schlüssel) |
Welcher oktale Wert entspricht rwxr-xr-x?
Sicherheitsaspekt & Stolperfallen
Vermeide chmod 777! Damit darf jeder Benutzer schreiben und ausführen – ein großes Sicherheitsrisiko. Vergib immer nur die nötigsten Rechte (Least Privilege). Private Schlüssel müssen 600 sein, sonst verweigert SSH den Dienst.
Zum Üben und Umrechnen hilft der chmod-Rechner. Wer Dateien jemand anderem übergeben will, braucht oft auch Eigentum (chown).