Pack Camo

Chmod-Rechner

Unix-Dateirechte als Checkboxen, oktal wie 755 und symbolisch wie rwxr-xr-x.

Alles läuft lokal — nichts wird hochgeladen.

Rechte

WerLesen (4)Schreiben (2)Ausführen (1)Wert
Eigentümer7
Gruppe5
Andere5
Sonderbits

Gängige Modi

Befehl

  • Numerisch
    chmod 755 script.sh
  • Symbolisch
    chmod u=rwx,g=rx,o=rx script.sh
Oktal
0755
Symbolisch
rwxr-xr-x
ls -l
-rwxr-xr-x
chmod-Form
u=rwx,g=rx,o=rx

Wer darf was

  • Der Eigentümer kann sie lesen, sie ändern und sie als Programm ausführen.
  • Die Gruppe kann sie lesen und sie als Programm ausführen.
  • Jeder andere kann sie lesen und sie als Programm ausführen.

Unix-Dateirechte und den chmod-Befehl berechnen

Dieser chmod-Rechner wandelt Dateirechte unter Linux und macOS in jede benötigte Form um: Haken Sie Lesen, Schreiben und Ausführen für Eigentümer, Gruppe und alle anderen an, oder geben Sie einen Oktalmodus wie <code>755</code> oder einen symbolischen wie <code>rwxr-xr-x</code> ein, und die anderen Ansichten passen sich an. Sie erhalten den passenden <code>chmod</code>-Befehl in numerischer und symbolischer Form, die Bits Setuid, Setgid und Sticky sowie eine verständliche Zusammenfassung, wer was darf. Alles wird in Ihrem Browser berechnet.

So berechnen Sie chmod-Rechte

  1. 1Haken Sie die gewünschten Rechte für Eigentümer, Gruppe und Andere an, oder geben Sie einen Oktalmodus wie 644 oder einen symbolischen wie rw-r--r-- ein. Sie können auch eine ganze Spalte aus ls -l einfügen, etwa drwxr-sr-x.
  2. 2Wählen Sie Datei oder Verzeichnis: Lesen, Schreiben und Ausführen bedeuten jeweils etwas anderes, und die Erklärung passt sich an.
  3. 3Fügen Sie bei Bedarf das Setuid-, Setgid- oder Sticky-Bit hinzu, oder starten Sie mit einer gängigen Vorgabe wie 755 oder 600.
  4. 4Geben Sie den Pfad ein, aktivieren Sie Rekursiv, wenn es für einen ganzen Verzeichnisbaum gelten soll, und kopieren Sie den chmod-Befehl.

So funktionieren oktale Rechte

Jede Datei hat drei Sätze von Rechten: einen für ihren Eigentümer (u), einen für ihre Gruppe (g) und einen für andere (o), also alle Übrigen. Jeder Satz besteht aus drei Bits — Lesen, Schreiben und Ausführen — und eine Oktalziffer ist einfach ihre Summe: Lesen ist 4, Schreiben 2 und Ausführen 1. 7 ist also rwx (4+2+1), 6 ist rw- (4+2), 5 ist r-x (4+1) und 4 ist r-- allein.

Drei Ziffern bilden den ganzen Modus, in der Reihenfolge Eigentümer, Gruppe, andere. chmod 755 gibt dem Eigentümer also rwx und allen anderen r-x, geschrieben rwxr-xr-x, während chmod 644 dem Eigentümer rw- und allen anderen r-- gibt, geschrieben rw-r--r--. Eine vierte Ziffer davor enthält die Sonderbits: 4 für Setuid, 2 für Setgid und 1 für Sticky, wie in chmod 1777.

Gängige chmod-Werte

644 (rw-r--r--)
Standard für normale Dateien: Der Eigentümer darf bearbeiten, alle dürfen lesen. Richtig für HTML, Bilder und die meisten Konfigurationen.
755 (rwxr-xr-x)
Standard für Verzeichnisse, Skripte und Programme: Alle dürfen lesen und ausführen, nur der Eigentümer darf ändern.
600 (rw-------)
Private Dateien, die nur der Eigentümer lesen kann: private SSH-Schlüssel, .env-Dateien, Zugangsdaten. ssh verweigert einen privaten Schlüssel, den andere lesen können.
700 (rwx------)
Ein privates Verzeichnis wie ~/.ssh, das nur sein Eigentümer betreten kann.
664 / 775
Wie 644 und 755, aber auch die Gruppe darf schreiben: für gemeinsame Projektordner, in denen Kollegen eine Gruppe teilen.
777 (rwxrwxrwx)
Jeder darf lesen, ändern und ausführen. Fast nie die richtige Lösung für einen Berechtigungsfehler und auf einem Webserver ein Sicherheitsrisiko.
1777 (rwxrwxrwt)
Für alle beschreibbar mit Sticky Bit, wie /tmp: Jeder kann Dateien anlegen, aber nur der Eigentümer einer Datei kann sie löschen.

Rechte auf Verzeichnissen

Bei einem Verzeichnis bedeuten die drei Buchstaben etwas anderes. Lesen erlaubt, die Namen darin aufzulisten; Schreiben erlaubt, Einträge darin anzulegen, umzubenennen und zu löschen; Ausführen (oft Suchen genannt) erlaubt, es mit cd zu betreten und Dateien darin über ihren Namen zu erreichen. Lesen und Schreiben nützen ohne Ausführen wenig, deshalb haben Verzeichnisse fast immer x, wo sie r haben — 755 statt 644.

Eine Datei zu löschen ist eine Änderung an ihrem Verzeichnis, nicht an der Datei. Wer Schreib- und Ausführrecht auf ein Verzeichnis hat, kann jede Datei darin löschen, sogar eine schreibgeschützte, die ihm nicht gehört — es sei denn, das Verzeichnis hat das Sticky Bit.

Setuid, Setgid und das Sticky Bit

In der symbolischen Form ersetzen die Sonderbits den Buchstaben für Ausführen: s, wenn Ausführen ebenfalls gesetzt ist, und S, wenn nicht, sowie t oder T für das Sticky Bit. Ein Großbuchstabe weist meist auf einen Fehler hin, denn ein Setuid-Programm, das niemand ausführen kann, bewirkt nichts.

Eine Eigenheit von GNU coreutils: chmod 755 auf ein Verzeichnis behält ein vorhandenes Setuid- oder Setgid-Bit bei. Um sie mit einer Zahl zu entfernen, schreiben Sie fünf Ziffern — chmod 00755 — oder verwenden Sie chmod g-s.

Setuid (4000, u+s)
Ein Programm läuft mit den Rechten seines Eigentümers statt mit denen des Aufrufers. passwd nutzt das, um /etc/shadow als root zu schreiben. Linux ignoriert es bei Skripten und Verzeichnissen.
Setgid (2000, g+s)
Ein Programm läuft mit den Rechten seiner Gruppe. Bei einem Verzeichnis erben neue Dateien darin die Gruppe des Verzeichnisses statt der primären Gruppe ihres Erstellers — die übliche Einrichtung für gemeinsame Teamordner (2775).
Sticky Bit (1000, +t)
Bei einem Verzeichnis können nur der Eigentümer einer Datei, der Eigentümer des Verzeichnisses oder root die Dateien darin löschen oder umbenennen. Modernes Linux ignoriert es bei Dateien.

chmod numerisch oder symbolisch?

Ein numerischer Modus wie chmod 644 file setzt alle Bits auf einmal, genau richtig, wenn Sie den Endzustand kennen. Die symbolische Form ist flexibler: chmod u=rw,g=r,o=r file setzt dasselbe, während chmod g+w file oder chmod o-rwx file nur die genannten Bits ändern und den Rest unverändert lassen.

Vorsicht mit chmod -R: Ein einziger Modus für alle Dateien und Verzeichnisse eines Baums gibt Dateien meist Ausführbits, die sie nicht haben sollten. Nutzen Sie find . -type d -exec chmod 755 {} + und find . -type f -exec chmod 644 {} +, um sie getrennt zu behandeln, oder das große X in chmod -R u=rwX,go=rX, das Ausführen nur Verzeichnissen und Dateien gibt, die es schon hatten. Neue Dateien erhalten ihre Anfangsrechte aus der umask: Eine umask von 022 ergibt Dateien mit 644 und Verzeichnisse mit 755. Um Dateinamen in Shell-Skripten abzugleichen, probieren Sie den Regex-Tester.

Häufige Fragen

Was bedeutet chmod 755?
755 gibt dem Eigentümer Lesen, Schreiben und Ausführen (7) und der Gruppe sowie allen anderen Lesen und Ausführen (5 und 5), geschrieben rwxr-xr-x. Das ist der übliche Modus für Verzeichnisse, Skripte und Programme.
Was bedeutet chmod 644?
644 gibt dem Eigentümer Lesen und Schreiben (6) und allen anderen nur Lesen (4 und 4), geschrieben rw-r--r--. Das ist der übliche Modus für normale Dateien wie Webseiten, Bilder und Konfigurationsdateien.
Was ist der Unterschied zwischen 755 und 644?
755 fügt Ausführen für alle hinzu. Bei einer Datei lässt sie sich damit als Programm starten, bei einem Verzeichnis kann man es betreten. Verwenden Sie 644 für Dateien, die nur gelesen werden, und 755 für Verzeichnisse und ausführbare Dateien.
Ist chmod 777 sicher?
Selten. 777 erlaubt jedem Benutzer des Systems, die Datei zu ändern oder zu ersetzen, und auf einem Webserver kann ein Angreifer, der über eine Website eindringt, andere verändern. Korrigieren Sie stattdessen den Eigentümer mit chown oder geben Sie der Gruppe Zugriff (775 oder 664).
Welche Rechte sollte ein privater SSH-Schlüssel haben?
600 (rw-------) oder 400 für nur lesbar, wobei ~/.ssh selbst auf 700 steht. OpenSSH verweigert einen privaten Schlüssel, den andere Benutzer lesen können, und meldet "UNPROTECTED PRIVATE KEY FILE".
Was bedeutet das s oder t in rwsr-xr-x?
Ein s an der Stelle von Eigentümer oder Gruppe ist das Setuid- bzw. Setgid-Bit bei gesetztem Ausführrecht; ein t an der Stelle der anderen ist das Sticky Bit. Ein großes S oder T bedeutet, dass das Sonderbit ohne das darunterliegende Ausführrecht gesetzt ist.
Wie wandle ich rwxr-xr-x in eine Zahl um?
Teilen Sie es in drei Gruppen — rwx, r-x, r-x — und addieren Sie in jeder r=4, w=2 und x=1: 7, 5, 5, also 755. Geben Sie es oben ins symbolische Feld ein, um es sofort umzurechnen.
Ändert dieses Tool Dateien?
Nein. Es berechnet nur den Modus und den Befehl; ausführen müssen Sie den Befehl selbst. Alles passiert in Ihrem Browser.