Was ist chmod?
chmod (change mode) ist ein Unix/Linux-Befehl zum Ändern von Dateiberechtigungen. Er bestimmt, wer eine Datei lesen, schreiben oder ausführen darf.
Die drei Berechtigungsebenen
- Owner (u): Der Besitzer der Datei
- Group (g): Mitglieder der Dateigruppe
- Others (o): Alle anderen Benutzer
Die drei Berechtigungsarten
- r (read): Lesen erlaubt – Wert: 4
- w (write): Schreiben erlaubt – Wert: 2
- x (execute): Ausführen erlaubt – Wert: 1
Oktale Notation verstehen
Die Berechtigungen werden als dreistellige Oktalzahl angegeben. Jede Ziffer (0-7) steht für eine Benutzergruppe und ist die Summe der Rechte:
- 0 = --- (keine Rechte)
- 1 = --x (nur ausführen)
- 2 = -w- (nur schreiben)
- 3 = -wx (schreiben + ausführen)
- 4 = r-- (nur lesen)
- 5 = r-x (lesen + ausführen)
- 6 = rw- (lesen + schreiben)
- 7 = rwx (alle Rechte)
Häufige chmod-Werte
- 644: rw-r--r-- – Standard für Dateien
- 755: rwxr-xr-x – Standard für Verzeichnisse/Skripte
- 600: rw------- – Private Dateien (z.B. SSH-Keys)
- 700: rwx------ – Private Verzeichnisse
- 777: rwxrwxrwx – Alle Rechte (Sicherheitsrisiko!)
- 400: r-------- – Nur Lesen für Owner
Symbolische Notation
Alternative zum Oktalwert mit Buchstaben:
chmod u+x file– Owner: Ausführen hinzufügenchmod g-w file– Group: Schreiben entfernenchmod o=r file– Others: Nur Lesen setzenchmod a+r file– Alle: Lesen hinzufügen
Spezielle Bits
- SUID (4xxx): Programm läuft mit Owner-Rechten
- SGID (2xxx): Programm läuft mit Group-Rechten
- Sticky Bit (1xxx): Nur Owner kann löschen (z.B. /tmp)
Häufig gestellte Fragen
Warum ist chmod 777 gefährlich?
Mit 777 kann jeder Benutzer die Datei lesen, ändern und ausführen. Bei Webservern könnte ein Angreifer Schadcode einschleusen. Verwenden Sie stattdessen 755 für Verzeichnisse und 644 für Dateien.
Wie setze ich Berechtigungen rekursiv?
Mit chmod -R 755 verzeichnis/ werden alle Dateien und Unterordner geändert. Vorsicht: Dateien brauchen oft andere Rechte als Verzeichnisse!
Was ist der Unterschied zwischen Datei- und Verzeichnisrechten?
Bei Verzeichnissen bedeutet x (execute) das Recht, ins Verzeichnis zu wechseln. Ohne x kann man nicht in ein Verzeichnis cd'en, auch wenn r gesetzt ist.