~/CodeBlog.at

Unix-Rechte-Rechner

rwxr-xr-x eintippen und die Zahl ablesen, oder 0755 eintippen und die Buchstaben sehen. Die Ziffern sind einzeln erklärt, auch die führende 0.

Eingabe

Typische Werte:
Rechte ankreuzen
KlasseLesen4Schreiben2Ausführen1
Besitzer
Gruppe
Andere

Spezialbits

Ergebnis

So liest man 0755

Kurz & knapp

rwxr-xr-x ist 0755: Der Besitzer hat 7 (lesen, schreiben, ausführen), Gruppe und andere haben je 5 (lesen, ausführen). Die erste Ziffer 0 steht für die Spezialbits setuid, setgid und sticky – 0 heißt, dass keines gesetzt ist, deshalb ist 0755 dasselbe wie 755. Der Rechner wandelt in beide Richtungen um und gibt den fertigen chmod-Befehl aus.

So entsteht die Zahl

Jede der drei Klassen – Besitzer, Gruppe, andere – bekommt eine Ziffer. Sie ist die Summe aus 4 für lesen (r), 2 für schreiben (w) und 1 für ausführen (x). Lesen und ausführen ergibt 4 + 1 = 5, alles zusammen4 + 2 + 1 = 7. Aus rwx r-x r-x wird so 7 5 5.

Was bedeutet die 0 in 0755?

Der Rechtewert hat eigentlich vier Ziffern. Die erste gehört den Spezialbits: 4 für setuid, 2 für setgid, 1 für das Sticky Bit, zusammengezählt wie bei den anderen Ziffern. Meist ist keines gesetzt, dann steht dort 0. chmod nimmt fehlende führende Ziffern als 0 an, deshalb sind 0755 und 755 derselbe Wert.

Dateien und Verzeichnisse

  • Datei: r Inhalt lesen, w Inhalt ändern, x als Programm oder Skript starten.
  • Verzeichnis: r Inhalt auflisten, w Einträge anlegen, umbenennen und löschen, x hineinwechseln und auf Einträge zugreifen. Deshalb haben Verzeichnisse fast immer x, zum Beispiel 755.

Spezialbits

  • setuid (4): Ein Programm läuft mit den Rechten seines Besitzers, nicht mit denen des Aufrufers. Zu sehen als s an der Stelle des Besitzer-x.
  • setgid (2): Wie setuid mit der Gruppe. Bei Verzeichnissen erben neue Dateien die Gruppe des Verzeichnisses, praktisch für gemeinsame Ordner (2775).
  • sticky (1): In einem Verzeichnis darf nur der Besitzer einer Datei sie löschen oder umbenennen, so wie bei /tmp (1777). Zu sehen als t bei „andere“.

Steht an der Stelle ein großes S oder T, ist das Spezialbit gesetzt, aber das Ausführungsrecht darunter fehlt.

Häufige Fragen

Was ist die 0 am Anfang von 0755?

Die erste Ziffer sind die Spezialbits: 4 für setuid, 2 für setgid und 1 für sticky, zusammengezählt. Bei 0755 ist keines gesetzt, deshalb ist 0755 dasselbe wie 755. Bei 4755 ist setuid gesetzt, bei 1777 das Sticky Bit.

Warum sollte man chmod 777 vermeiden?

777 erlaubt jedem Benutzer auf dem System, die Datei zu lesen, zu ändern und auszuführen. Meist steckt dahinter ein Besitzer- oder Gruppenproblem, das sich mit chown oder einer passenden Gruppe sauber lösen lässt, zum Beispiel mit 775 für ein gemeinsames Verzeichnis.

Was bedeutet ein großes S oder T in rwSr--r--?

Das Spezialbit ist gesetzt, aber an dieser Stelle fehlt das Ausführungsrecht. Ein kleines s oder t steht dagegen für „Spezialbit gesetzt und x vorhanden“. rwSr--r-- entspricht 4644, rwsr--r-- dagegen 4744.

Wie setze ich Rechte rekursiv für Dateien und Ordner getrennt?

chmod -R 755 macht auch alle Dateien ausführbar. Besser getrennt: find ordner -type d -exec chmod 755 {} + für Verzeichnisse und find ordner -type f -exec chmod 644 {} + für Dateien.

Quellen & weiterführende Links

  1. chmod – Utility Conventions (POSIX.1-2024) (öffnet in neuem Tab) – The Open Group
  2. chmod invocation – GNU Coreutils (öffnet in neuem Tab) – GNU
  3. chmod(1) – Linux manual page (öffnet in neuem Tab) – man7.org
  4. inode(7) – Linux manual page (Dateimodus, S_ISUID, S_ISGID, S_ISVTX) (öffnet in neuem Tab) – man7.org

Suche

Tippe einen Suchbegriff ein.