BrowserTools
Startseite / Rechner / Chmod-Rechner

Chmod-Rechner

Berechnen Sie Unix-Dateirechte als Zahl wie 755 oder als Buchstaben wie rwxr-xr-x und sehen Sie, was sie erlauben.

Chmod-Rechner wird geladen… Wenn nichts passiert, aktiviere JavaScript.

Jede Datei und jedes Verzeichnis unter Linux, macOS und anderen Unix-artigen Systemen hat drei Gruppen von Rechten: eine für den Eigentümer, eine für die Gruppe und eine für alle anderen. Jede Gruppe kann Lesen, Schreiben und Ausführen erlauben, und chmod ist der Befehl, der sie ändert. Dieser Rechner zeigt dieselben Rechte in allen Formen, die Ihnen in der Praxis begegnen. Setzen Sie Häkchen im Raster, geben Sie eine Zahl wie 644 oder 2775 ein oder fügen Sie die Buchstaben aus ls -l ein, etwa drwxr-sr-x, und die beiden anderen Formen passen sich sofort an. Darunter finden Sie chmod-Befehle zum Kopieren in numerischer und symbolischer Form (chmod 755 file und chmod u=rwx,g=rx,o=rx file), mit optionalem Dateinamen und rekursivem Schalter -R.

Häufig gestellte Fragen

Was bedeutet chmod 755?
Jede Ziffer steht für eine Klasse: Eigentümer, Gruppe, andere. 7 ist Lesen (4) plus Schreiben (2) plus Ausführen (1), 5 ist Lesen plus Ausführen. 755 erlaubt dem Eigentümer also alles, während Gruppe und alle anderen die Datei lesen und ausführen oder das Verzeichnis auflisten und betreten, aber nichts ändern können. In Buchstaben ist das rwxr-xr-x. Es ist der übliche Modus für Programme, Skripte und Webverzeichnisse.
Was ist der Unterschied zwischen 644 und 755?
Bei beiden darf nur der Eigentümer schreiben. 644 (rw-r--r--) gibt niemandem das Ausführrecht, was für Dokumente, Bilder, Konfigurationsdateien und Webseiten passt. 755 ergänzt das Ausführrecht für alle drei Klassen, das Programme zum Starten und Verzeichnisse zum Betreten brauchen. Verzeichnisse mit 644 lassen sich gar nicht öffnen, eine häufige Ursache für "Permission denied".
Was bedeuten s, S, t und T in der Rechteangabe?
Ein kleines s an der Ausführen-Stelle des Eigentümers bedeutet setuid plus Ausführen, an der Stelle der Gruppe setgid plus Ausführen. Ein kleines t an der Stelle der anderen bedeutet Sticky Bit plus Ausführen. Die Großbuchstaben S und T zeigen, dass das Sonderbit gesetzt ist, das Ausführrecht aber nicht, wodurch das Bit bei einer Datei meist wirkungslos ist. 4755 ist zum Beispiel rwsr-xr-x und 1777 ist rwxrwxrwt.
Wozu dienen setuid, setgid und das Sticky Bit?
Setuid lässt ein Programm mit den Rechten des Dateieigentümers laufen statt mit denen des startenden Benutzers, so kann passwd die Passwortdatenbank aktualisieren. Setgid macht dasselbe für die Gruppe und sorgt bei einem Verzeichnis dafür, dass neue Dateien dessen Gruppe erben. Das Sticky Bit auf einem Verzeichnis bedeutet, dass nur der Eigentümer einer Datei, der Eigentümer des Verzeichnisses oder root sie löschen oder umbenennen kann, deshalb hat /tmp den Modus 1777.
Warum sollte ich chmod 777 vermeiden?
777 erlaubt jedem Konto auf dem Rechner, auch dem Webserver und jedem kompromittierten Dienst, die Datei zu ändern oder zu ersetzen. Bei einem Verzeichnis kann außerdem jeder fremde Dateien löschen. Oft verdeckt es das eigentliche Problem, meist einen falschen Eigentümer oder eine falsche Gruppe. Korrigieren Sie die Besitzverhältnisse mit chown und verwenden Sie stattdessen 755 oder 775 für Verzeichnisse und 644 oder 664 für Dateien.
Wie setze ich rekursiv unterschiedliche Rechte für Dateien und Verzeichnisse?
chmod -R wendet einen einzigen Modus auf alles an, Dateien bekämen also wie Verzeichnisse das Ausführrecht. Verwenden Sie stattdessen find: find pfad -type d -exec chmod 755 {} + für Verzeichnisse und find pfad -type f -exec chmod 644 {} + für Dateien. Der symbolische Modus bietet eine Abkürzung: chmod -R u=rwX,go=rX pfad, wobei das große X das Ausführrecht nur Verzeichnissen und bereits ausführbaren Dateien gibt.
Was ist eine umask?
Die umask ist eine Menge von Bits, die von den Standardrechten abgezogen werden, wenn ein Programm etwas Neues anlegt. Dateien beginnen bei 666 und Verzeichnisse bei 777, und jedes Bit der umask wird entfernt. Mit der üblichen umask 022 erhalten neue Dateien 644 und neue Verzeichnisse 755. Mit 077 sind es 600 und 700, sodass nur Sie Zugriff haben. Führen Sie umask in einem Terminal aus, um Ihren aktuellen Wert zu sehen.
Löscht chmod 755 auf einem Verzeichnis das setgid-Bit?
Nicht mit GNU chmod unter Linux. Bei Verzeichnissen bleiben vorhandene setuid- und setgid-Bits bei einem numerischen Modus erhalten, damit gemeinsame Ordner ihre Gruppenvererbung nicht versehentlich verlieren. Zum Entfernen verwenden Sie den symbolischen Modus, etwa chmod g-s verzeichnis, oder einen numerischen Modus mit einer zusätzlichen führenden Null, etwa chmod 00755 verzeichnis. Andere Systeme verhalten sich eventuell anders, prüfen Sie das Ergebnis also mit ls -l.

Über Chmod-Rechner

Die Zahlen sind oktal: Jede Ziffer ist die Summe aus Lesen (4), Schreiben (2) und Ausführen (1) für eine Klasse. 7 bedeutet also alle drei, 6 Lesen und Schreiben, 5 Lesen und Ausführen und 4 nur Lesen. Eine vierte, vorangestellte Ziffer enthält die Sonderbits: 4 für setuid, 2 für setgid und 1 für das Sticky Bit. In der Buchstabenform erscheinen sie an den Ausführen-Stellen als s oder t, und als großes S oder T, wenn das Sonderbit ohne das darunterliegende Ausführrecht gesetzt ist. Der Rechner versteht all diese Fälle, und der Erklärungsbereich beschreibt in einfachen Worten, was Eigentümer, Gruppe und alle anderen tatsächlich tun dürfen. Wechseln Sie zwischen File und Directory, denn dieselben Bits bedeuten Unterschiedliches: Bei einem Verzeichnis erlaubt Lesen das Auflisten der Namen, Schreiben das Anlegen und Löschen von Dateien und Ausführen das Betreten und den Zugriff auf die Dateien darin.

Die gängigen Vorlagen decken den Alltag ab: 644 für normale Dateien, 755 für Skripte und Verzeichnisse, 600 und 700 für private Schlüssel und Ordner, 664 und 775 für die Zusammenarbeit in einer Gruppe, 400 für schreibgeschützte Geheimnisse und 1777 für gemeinsam genutzte temporäre Verzeichnisse. Das Tool warnt bei riskanten Modi, etwa 777, für alle beschreibbaren Verzeichnissen ohne Sticky Bit oder einem setuid-Programm, das andere verändern können. Außerdem gibt es einen umask-Rechner: Geben Sie eine umask wie 022 oder 077 ein und sehen Sie, welche Rechte neue Dateien (ausgehend von 666) und neue Verzeichnisse (ausgehend von 777) erhalten. Alles wird in Ihrem Browser berechnet.

Das Sticky Bit hielt früher Programme im Speicher

Das Sticky Bit bekam seinen Namen in frühen Unix-Versionen, lange bevor es etwas mit gemeinsamen Verzeichnissen zu tun hatte. Bei einer Programmdatei wies es das System an, den Programmcode nach dem Beenden im Swap-Bereich zu behalten, damit häufig genutzte Befehle wie der Editor oder die Shell beim nächsten Mal schneller starteten. Das Programm blieb sozusagen kleben.

Mit besserem virtuellem Speicher und Seiten-Caches wurde dieser Trick überflüssig, und die meisten Systeme ignorierten das Bit bei Dateien fortan. In den 1980er-Jahren erhielt es eine neue Aufgabe bei Verzeichnissen: Nur der Eigentümer einer Datei darf sie löschen oder umbenennen, selbst wenn das Verzeichnis für alle beschreibbar ist. Diese Bedeutung hat es bis heute, und deshalb zeigt jedes Linux- und macOS-System für /tmp ein t am Ende von drwxrwxrwt.

Unterstützen