chmod verstehen: Unix-Dateirechte, oktale Zahlen und die rwx-Schreibweise

Wer mit Linux- oder macOS-Servern arbeitet, stoesst frueher oder spaeter auf eine kryptische Fehlermeldung wie Permission denied oder auf einen Befehl wie chmod 755 deploy.sh. Dahinter steckt das Rechtesystem von Unix-Dateisystemen – ein einfaches, aber oft missverstandenes Konzept. Dieser Artikel erklaert, was die Zahlen und Buchstaben bedeuten und wie du sie richtig setzt.

Die drei Grundrechte: read, write, execute

Jede Datei und jedes Verzeichnis unter Unix kennt genau drei Arten von Zugriff:

Wichtig: Bei Verzeichnissen hat das x-Bit eine andere Bedeutung als bei Dateien – es erlaubt nicht das Ausfuehren, sondern das Betreten. Deshalb haben Ordner fast immer ein x-Bit gesetzt, auch wenn man sie nicht "ausfuehrt".

Drei Empfaenger: User, Group, Other

Diese drei Rechte existieren jeweils dreifach – fuer drei Klassen von Nutzern:

In der Ausgabe von ls -l siehst du das als neunstelligen Block, zum Beispiel rwxr-xr-x. Die ersten drei Zeichen gelten fuer den Besitzer, die naechsten drei fuer die Gruppe, die letzten drei fuer alle anderen. Ein Bindestrich bedeutet "Recht nicht gesetzt".

Die oktale Notation: warum 755?

Statt der Buchstaben verwendet man oft eine dreistellige Zahl. Jede Ziffer steht fuer eine Nutzerklasse, und jedes Recht hat einen Wert: read = 4, write = 2, execute = 1. Man addiert einfach die Werte der gesetzten Rechte.

So wird aus rwxr-xr-x die Zahl 755: der Besitzer darf alles (7), Gruppe und andere duerfen lesen und ausfuehren (5). Wenn du dir bei einer Umrechnung unsicher bist, nimm den chmod-Rechner – er wandelt eine oktale Zahl wie 755 sofort in die rwx-Schreibweise um und umgekehrt, ohne dass du im Kopf addieren musst.

Typische Rechte im Alltag

Der gefuerchtete Befehl chmod 777 setzt fuer alle drei Klassen volle Rechte. Das ist fast immer ein Fehler: Auf einem Webserver oeffnet es Tueren fuer Angreifer, weil jeder Prozess die Datei aendern darf. Wer mit chmod 777 ein Problem "loest", verschiebt es meist nur.

Symbolische Schreibweise

Neben der Zahl versteht chmod auch eine symbolische Form, die gezielt einzelne Bits aendert, ohne den Rest zu ueberschreiben. chmod u+x skript.sh fuegt dem Besitzer das Ausfuehrrecht hinzu, chmod go-w datei entzieht Gruppe und anderen das Schreibrecht. Das ist praktisch, wenn du nur eine Kleinigkeit drehen willst und die bestehenden Rechte nicht kennst.

Haeufige Fehlerquellen

Ein klassischer Stolperstein: Ein Shell-Skript laesst sich nicht starten, weil das x-Bit fehlt. Hier hilft chmod +x skript.sh. Ein anderer Fall sind SSH-Keys – OpenSSH verweigert die Nutzung, wenn der private Schluessel zu offene Rechte hat. Hier sind 600 Pflicht.

Bei der Server-Konfiguration lohnt es sich, Rechte bewusst und sparsam zu vergeben. Wer tiefer in die Welt der Terminal-Befehle einsteigen will, findet in unserem Beitrag zu den Grundlagen des Linux-Terminals einen guten Einstieg. Fuer weitere kleine Helfer rund um Entwicklung und Konfiguration lohnt ein Blick in unsere Webtools-Sammlung.

Fazit

chmod ist kein Hexenwerk: Drei Rechte, drei Nutzerklassen, ein Additionssystem. Wer einmal versteht, dass 7 = rwx und 4 = read bedeutet, liest jede Zahl fluessig. Fuer schnelle Umrechnungen ist der chmod-Rechner der bequemste Weg, beide Schreibweisen sicher ineinander zu uebersetzen.