Zum Inhalt springen
labkompass

Rechner · Linux

chmod-Rechner

Was bedeutet 750, und warum ist 777 fast nie die Lösung? Setze die Rechte für Besitzer, Gruppe und alle anderen per Klick oder tippe eine Zahl oder die Zeichenfolge aus ls -l ein — der Rechner rechnet um, erklärt die Wirkung für Datei oder Verzeichnis und erzeugt den chmod-Befehl. Ausgeführt wird nichts.

Häufige Rechte

Gilt für
Rechte je Klasse
WerLesen (r)Schreiben (w)Ausführen (x)Bedeutung
Besitzer (u)darf Inhalt auflisten, Dateien anlegen, umbenennen und löschen und betreten und auf Dateien darin zugreifen
Gruppe (g)darf Inhalt auflisten und betreten und auf Dateien darin zugreifen
Andere (o)kein Zugriff
Sonderbits

750=drwxr-x---

Befehl erzeugen

Befehl

chmod 750 /srv/daten

GNU chmod lässt ein vorhandenes setgid-Bit eines Verzeichnisses bei der Zifferform stehen. Entfernen mit chmod g-s.

So liest du 750

Jede Ziffer gehört zu einer Gruppe von Benutzern: die erste zum Besitzer der Datei, die zweite zu ihrer Gruppe, die dritte zu allen anderen. Innerhalb einer Ziffer zählt Lesen 4, Schreiben 2 und Ausführen 1. Eine 7 ist also alles (4+2+1), eine 5 Lesen und Ausführen, eine 0 nichts. ls -l zeigt dasselbe als Buchstaben: rwxr-x---.

Datei oder Verzeichnis macht einen Unterschied

Bei einer Datei heißt x „darf als Programm gestartet werden“. Bei einem Verzeichnis heißt x „darf betreten werden“ — ohne x hilft auch r nicht weiter, dann sind nur die Dateinamen sichtbar. Und wer in einem Verzeichnis w hat, darf dort Dateien löschen, auch fremde, solange kein Sticky-Bit gesetzt ist.

Die drei Sonderbits

setuid lässt ein Programm mit den Rechten seines Besitzers laufen — so ändert passwd als normaler Benutzer die Passwortdatei. setgid an einem Verzeichnis sorgt dafür, dass neue Dateien die Gruppe des Verzeichnisses erben, ideal für gemeinsame Ordner. Das Sticky-Bit an einem Verzeichnis erlaubt das Löschen nur dem Besitzer einer Datei, wie in /tmp.

Häufige Fragen

Warum soll ich nicht einfach chmod 777 setzen?

777 erlaubt jedem Benutzer und jedem Dienst auf dem System, die Datei zu ändern oder im Verzeichnis Dateien auszutauschen. Ein kompromittierter Webdienst kann dann zum Beispiel Skripte manipulieren, die später als root laufen. Fast immer ist das eigentliche Problem der falsche Besitzer oder die falsche Gruppe — das löst chown, nicht 777.

Welche Rechte brauchen SSH-Schlüssel?

Der private Schlüssel 600, das Verzeichnis ~/.ssh 700. Sind die Rechte zu offen, verweigert der SSH-Client die Nutzung des Schlüssels, und der SSH-Server ignoriert eine authorized_keys-Datei, die andere beschreiben können.

Was ist der Unterschied zwischen chmod 755 und chmod u=rwx,g=rx,o=rx?

Für die neun normalen Rechte keiner. Bei Verzeichnissen gibt es einen Sonderfall: GNU chmod lässt ein vorhandenes setgid- oder setuid-Bit bei der Zifferform stehen. Zum Entfernen braucht es ausdrücklich chmod g-s.

Passende Tools