DevToolPal
DE

Chmod-Rechner

Rechnet Unix-Dateirechte zwischen Checkboxen, Oktalschreibweise (755) und symbolischer Schreibweise (rwxr-xr-x) um, mit setuid, setgid und Sticky-Bit sowie fertigem chmod-Befehl.

Läuft lokal, wird nie hochgeladen

Optionen

Rechte

LesenSchreibenAusführenSpezial
Besitzer
Gruppe
Andere

Ergebnis

Das Ergebnis erscheint hier

Was das Tool macht

Der Chmod-Rechner rechnet Unix- und Linux-Dateirechte zwischen den drei üblichen Schreibweisen um: einem Raster aus Checkboxen für Lesen, Schreiben und Ausführen, einer Oktalzahl wie 755 und einer symbolischen Zeichenfolge wie rwxr-xr-x. Er erzeugt außerdem den passenden chmod-Befehl in oktaler und symbolischer Form, erklärt, wer was darf, und unterstützt die Spezialbits setuid, setgid und Sticky. Alles läuft in Ihrem Browser.

So funktioniert es

  1. Setzen Sie die Häkchen für Besitzer, Gruppe und andere, oder tippen Sie einen Modus in das Feld. Es akzeptiert Oktal (644, 0644, 4755), Zeichenfolgen im Stil von ls -l (rw-r--r-- oder -rw-r--r-- mit vorangestelltem Dateityp) und chmod-Ausdrücke wie u=rwx,g=rx,o= oder a+x.
  2. Checkboxen und Ergebnisse folgen Ihrer Eingabe, und ein Klick auf eine Checkbox schreibt den Modus in derselben Schreibweise neu.
  3. Legen Sie unter Optionen den Dateinamen fest und aktivieren Sie Rekursiv (-R), wenn der Modus für einen ganzen Verzeichnisbaum gelten soll. Kopieren Sie den fertigen Befehl mit einem Klick.

Gängige Modi

chmod 755 deploy.sh        # rwxr-xr-x
chmod 644 index.html       # rw-r--r--
chmod 600 ~/.ssh/id_ed25519  # rw-------
chmod 1777 /tmp            # rwxrwxrwt
  • 755 für Verzeichnisse, Skripte und Programme: Der Besitzer darf sie ändern, alle dürfen sie lesen und ausführen.
  • 644 für normale Dateien wie Webseiten und Bilder.
  • 600 für private Dateien wie SSH-Schlüssel und .env-Dateien: Nur der Besitzer darf sie lesen. SSH verweigert Schlüssel, die andere lesen können.
  • 700 für private Verzeichnisse und 775/664, wenn sich eine Gruppe von Benutzern ein Projekt teilt.

Wie die Zahlen funktionieren

Jede Benutzerklasse bekommt eine Oktalziffer aus der Summe von Lesen = 4, Schreiben = 2 und Ausführen = 1. Bei einem Verzeichnis bedeutet Lesen das Auflisten der Namen, Schreiben das Anlegen und Löschen von Dateien darin und Ausführen das Betreten des Verzeichnisses oder den Zugriff auf Dateien darin.

Eine optionale führende Ziffer enthält die Spezialbits: setuid = 4, setgid = 2, Sticky = 1. In der symbolischen Form ersetzen sie den Buchstaben für Ausführen: s für setuid und setgid, t für Sticky. Ein großes S oder T bedeutet, dass das Spezialbit gesetzt ist, das Ausführrecht aber nicht – fast immer ein Fehler.

Der Rechner zeigt außerdem die entsprechende umask, also die Bits, die eine Standard-umask von 777 abzieht, um den Modus zu erhalten. Eine umask von 022 ergibt Verzeichnisse mit 755 und Dateien mit 644.

FAQ

› Was bedeutet chmod 755?

Jede Ziffer steht für eine Benutzerklasse: Besitzer, Gruppe und andere. 7 = Lesen (4) + Schreiben (2) + Ausführen (1); 5 = Lesen + Ausführen. 755 erlaubt also dem Besitzer alles und allen anderen Lesen und Ausführen, geschrieben rwxr-xr-x. Das ist der übliche Modus für Skripte und Verzeichnisse.

› Was ist der Unterschied zwischen 644 und 755?

644 (rw-r--r--) hat kein Ausführbit und passt daher für normale Dateien wie HTML, Bilder und Konfiguration. 755 fügt das Ausführrecht für alle hinzu – Programme brauchen es zum Starten, Verzeichnisse, damit man sie betreten kann.

› Warum ist chmod 777 keine gute Idee?

777 erlaubt jedem Benutzer des Systems, die Datei zu ändern oder zu ersetzen. Auf einem Webserver kann dann jeder kompromittierte Prozess Ihren Code umschreiben. Korrigieren Sie stattdessen den Besitzer mit chown und verwenden Sie 755 für Verzeichnisse und 644 für Dateien.

› Was sind setuid, setgid und das Sticky-Bit?

Sie bilden eine vierte, vorangestellte Oktalziffer. setuid (4) lässt ein Programm als dessen Besitzer laufen, setgid (2) als dessen Gruppe oder lässt neue Dateien in einem Verzeichnis die Gruppe erben, und das Sticky-Bit (1) verhindert, dass Benutzer in einem gemeinsamen Verzeichnis wie /tmp fremde Dateien löschen. In der ls-Ausgabe erscheinen sie als s und t an der Stelle des Ausführrechts.