bitlvl
DE

chmod-Rechner

Kreuzen Sie die Kästchen an oder tippen Sie eine Oktalzahl, einen rwx-String oder eine symbolische Änderung wie u+x,go-w. Befehl und Bedeutung aktualisieren sich laufend.

Rechte
Lesen (4)
Schreiben (2)
Ausführen (1)
Besitzer
Gruppe
Andere

Die Ergebnisse und Meldungen dieses Tools werden auf Englisch angezeigt.

Wie Unix-Rechte funktionieren

Jede Datei hat drei Sätze von je drei Rechte-Bits: für den Besitzer der Datei, für ihre Gruppe und für alle anderen. Jeder Satz kann Lesen (r, Wert 4), Schreiben (w, 2) und Ausführen (x, 1) erlauben. Addieren Sie die Werte in jedem Satz, erhalten Sie eine Oktalziffer; deshalb werden Rechte als drei Ziffern geschrieben: rwxr-xr-x ist 4+2+1, 4+1, 4+1 = 755.

Bei Verzeichnissen bedeuten dieselben Bits etwas anderes: Lesen listet die Einträge, Schreiben erstellt und löscht Einträge, und Ausführen erlaubt das Betreten des Verzeichnisses und den Zugriff auf die Dateien darin. Ein Verzeichnis ohne x ist selbst mit r unbrauchbar.

Die Sonderbits

Eine vierte, führende Ziffer enthält drei weitere Bits. setuid (4) lässt ein Programm als sein Besitzer laufen; so kann passwd eine root-eigene Datei bearbeiten. setgid (2) macht dasselbe für die Gruppe und lässt auf einem Verzeichnis neue Dateien die Gruppe des Verzeichnisses erben, was gemeinsame Projektordner wollen. sticky (1) auf einem Verzeichnis verhindert, dass Benutzer die Dateien anderer löschen; /tmp ist 1777.

Symbolischer Modus

chmod akzeptiert auch Änderungen statt absoluter Werte: u+x fügt Ausführen für den Besitzer hinzu, go-w entfernt Schreiben für Gruppe und Andere, a=r setzt alle auf nur Lesen. X (groß) fügt Ausführen nur Verzeichnissen und Dateien hinzu, die es bereits irgendwo haben, was chmod -R a+rX zum sicheren Weg macht, einen Baum zum Lesen zu öffnen.

umask

Neue Dateien beginnen bei 666 und Verzeichnisse bei 777, minus die umask. Die übliche umask 022 ergibt 644 und 755; 077 ergibt 600 und 700 (privat). umask ohne Argument zeigt den aktuellen Wert.

Gängige Werte

OktalSymbolischVerwendung
644rw-r--r--Gewöhnliche Dateien, Webinhalte
755rwxr-xr-xProgramme, Skripte, Verzeichnisse
600rw-------Private Schlüssel, .env, Passwortdateien
700rwx------~/.ssh und andere private Verzeichnisse
664 / 775rw-rw-r-- / rwxrwxr-xDateien / Verzeichnisse für Gruppenarbeit
2775rwxrwsr-xGemeinsames Verzeichnis mit Gruppenvererbung
1777rwxrwxrwt/tmp
4755rwsr-xr-xsetuid-Programme wie passwd, sudo

Fragen

Was bedeutet chmod 755?

Der Besitzer darf lesen, schreiben und ausführen; Gruppe und Andere dürfen lesen und ausführen. Es ist der normale Modus für Programme, Skripte und Verzeichnisse.

Was macht chmod 777, und warum ist es schlecht?

Es erlaubt jedem Benutzer des Systems, die Datei zu lesen, zu schreiben und auszuführen. Auf einem geteilten oder dem Internet zugewandten Rechner heißt das: jeder, auch ein kompromittierter Dienst, kann sie ändern. Es ist fast nie die richtige Lösung für einen Rechtefehler; meist ist es der Besitz (chown) oder 755/644.

Warum sagt mein Skript „permission denied“?

Ihm fehlt das Ausführen-Bit. Führen Sie chmod +x skript.sh (oder 755) aus. Liegt es auf einem mit noexec eingehängten Dateisystem oder zeigt die Shebang-Zeile auf einen fehlenden Interpreter, erhalten Sie dieselbe Meldung.

Was bedeutet das s oder t in ls -l?

Ein kleines s an der Ausführen-Position von Besitzer oder Gruppe heißt, setuid oder setgid ist zusammen mit Ausführen gesetzt; ein großes S heißt, das Sonderbit ist ohne Ausführen gesetzt (meist ein Fehler). t und T gelten entsprechend für das Sticky-Bit. Fügen Sie den String ins symbolische Feld ein, um ihn zu dekodieren.

Was ist der Unterschied zwischen chmod und chown?

chmod ändert die Rechte-Bits; chown ändert, welcher Benutzer und welche Gruppe die Datei besitzen. Viele „permission denied“-Probleme sind Besitzprobleme: Die Bits stimmen, aber für den falschen Benutzer.

Wie setze ich Rechte rekursiv?

chmod -R. Um nicht jede Datei ausführbar zu machen, nutzen Sie chmod -R u=rwX,go=rX verzeichnis, wobei das große X Ausführen nur auf Verzeichnisse und bereits ausführbare Dateien anwendet.