Ihre IPv4-Adresse:
Betriebssystem:

Wie chmod-Berechtigungen funktionieren: 755, 644 und Sticky Bit

Auf Unix-ähnlichen Systemen ändert chmod die Zugriffsrechte von Dateien und Verzeichnissen. Lese-, Schreib- und Ausführungsrechte werden getrennt für den Eigentümer, die Gruppe und andere Benutzer festgelegt. Verzeichnisrechte haben eine eigene Bedeutung: Sie bestimmen, ob Namen aufgelistet, Einträge angelegt oder entfernt und bekannte Pfade aufgerufen werden können.

Numerische und symbolische Modi

Ein symbolischer Befehl wie chmod u+x script.sh erlaubt dem Eigentümer, die Datei auszuführen. Im numerischen Modus steht Lesen für 4, Schreiben für 2 und Ausführen für 1. 755 entspricht also rwxr-xr-x: Der Eigentümer darf lesen, schreiben und ausführen, Gruppe und andere dürfen lesen und ausführen. Der Modus 644 passt oft für eine gewöhnliche öffentliche Datei, ob er geeignet ist, hängt aber von der Anwendung ab. Eine vertraute Zahl ist keine Sicherheitseinstellung, die überall passt.

Warum Verzeichnisrechte wichtig sind

Bei einem Verzeichnis erlaubt das Leserecht das Auflisten von Namen, das Schreibrecht das Ändern von Verzeichniseinträgen und das Ausführungsrecht das Durchlaufen eines bekannten Pfads. Ob eine Datei gelöscht werden kann, hängt normalerweise von den Rechten am übergeordneten Verzeichnis ab, nicht vom Schreibrecht an der Datei selbst. Eine Datei mit 444 kann daher trotzdem von jemandem entfernt werden, der ausreichende Rechte am Verzeichnis hat. Das Handbuch zu GNU Coreutils erläutert diesen Unterschied. Schlägt der Zugriff fehl, obwohl die Zieldatei lesbar aussieht, prüfen Sie jedes übergeordnete Verzeichnis und die Identität, unter der der Dienst läuft.

Ein Beispiel aus dem Webhosting

Nehmen wir ein Verzeichnis mit HTML-Dateien, die der Webserver lesen, aber nur ihr Eigentümer ändern darf. Ein Ausgangspunkt kann 755 für Verzeichnisse und 644 für gewöhnliche Dateien sein. Dienstkonto, Gruppen und Vorgaben des Hosters müssen Sie trotzdem berücksichtigen; private Konfigurationsdateien brauchen unter Umständen strengere Rechte. Wer alles auf 777 setzt, um eine Fehlermeldung loszuwerden, gibt lokalen Benutzern weitreichende Änderungsrechte und schafft womöglich ein Sicherheitsproblem. Prüfen Sie vor Änderungen den aktuellen Eigentümer und die Rechte mit stat und ls -l.

Setuid, Setgid und das Sticky Bit

Eine vorangestellte vierte Oktalziffer legt Spezialbits fest: 4 für Setuid, 2 für Setgid und 1 für Sticky. So aktiviert 4755 Setuid für eine ausführbare Datei, 455 dagegen nicht. Setuid ist mit Vorsicht einzusetzen, weil Fehler im Programm mit den Rechten des Eigentümers ausgeführt werden können. Bei Verzeichnissen kann Setgid dafür sorgen, dass neue Einträge die Gruppe des Verzeichnisses erben. Ein Sticky Bit auf einem gemeinsam genutzten Verzeichnis wie /tmp schränkt ein, wer Dateien anderer Benutzer entfernen oder umbenennen darf. Prüfen Sie vor chmod -R genau den betroffenen Verzeichnisbaum: Gewöhnliche Dateien, ausführbare Dateien und Verzeichnisse brauchen selten alle dieselben Modi.