Chmod-Rechner — Linux-Dateirechte (oktal ⇄ rwx)
Setze Häkchen für Lesen, Schreiben und Ausführen und erhalte den Oktalmodus und den chmod-Befehl – oder entschlüssle 755, 644 und rwxr-xr-x.
| Wer | Lesen | Schreiben | Ausführen | Ziffer |
|---|---|---|---|---|
| Besitzer (user) | 7 | |||
| Gruppe | 5 | |||
| Andere | 5 |
chmod 755 deploy.sh
chmod u=rwx,g=rx,o=rx deploy.sh
- Besitzer (7): lesen, schreiben, ausführen
- Gruppe (5): lesen, ausführen
- Andere (5): lesen, ausführen
Sieh, was chmod u+x,go-w mit einem bestehenden Modus macht. Unterstützt u/g/o/a, + - =, r w x X s t und Kopien wie g=u. Für X gilt die Verzeichnis-Einstellung oben.
644 (rw-r--r--) → 744 (rwxr--r--)Läuft komplett in deinem Browser. Nichts, was du eingibst, wird irgendwohin gesendet. Alle kostenlosen Tools ansehen.
Ein Problem gefunden oder etwas, das besser sein könnte? Wir lesen jede Nachricht und beheben Fehler schnell.
Dieser chmod-Rechner rechnet Unix- und Linux-Dateirechte zwischen einem Checkbox-Raster, der Oktalzahl, die chmod verwendet (755, 644, 2775), und der Zeichenfolge rwxr-xr-x um, die ls -l ausgibt. Änderst du eines davon, ziehen die anderen mit – samt einem einfügefertigen chmod-Befehl und einer verständlichen Erklärung, wer was darf. Er beherrscht setuid-, setgid- und Sticky-Bit und erklärt, warum dieselben Bits bei einem Verzeichnis etwas anderes bedeuten.
Außerdem wertet er symbolische chmod-Ausdrücke wie u+x,go-w oder a=rX gegen einen Ausgangsmodus aus, nach denselben Regeln wie GNU chmod. So kannst du prüfen, was ein Befehl bewirkt, bevor du ihn auf einem Server ausführst. Ein Unterschied: Wenn du den Buchstaben u/g/o weglässt, wendet das echte chmod deine umask an, während dieses Tool es als „a“ behandelt (wie bei einer umask von 000). Deine Dateien werden nicht angefasst; es ist ein Rechner.
So funktioniert’s
- Setze die Häkchen für Lesen, Schreiben und Ausführen für Besitzer, Gruppe und andere, gib einen Oktalmodus wie 750 ein oder füge eine Zeichenfolge wie -rw-r--r-- aus ls -l ein.
- Setze das Häkchen bei „Es ist ein Verzeichnis“, wenn du Rechte für einen Ordner setzt; die Erklärung ändert sich, weil x bei einem Verzeichnis „darf betreten“ bedeutet.
- Gib den Dateinamen ein, setze bei Bedarf das Häkchen bei „Rekursiv“ und kopiere den chmod-Befehl.
- Um eine relative Änderung zu prüfen, gib den aktuellen Modus und einen Ausdruck wie u+x,go-w in das Ausdrucksfeld ein und lies das Ergebnis ab.
- Nimm eine Vorlage, wenn du nur die übliche Antwort brauchst: 644 für Dateien, 755 für Verzeichnisse und Skripte, 600 für private Schlüssel.
Häufige Fragen
Was bedeutet chmod 755?
Jede Ziffer ist eine Summe aus Lesen (4), Schreiben (2) und Ausführen (1), in der Reihenfolge Besitzer, Gruppe und andere. 7 = 4+2+1, der Besitzer darf also lesen, schreiben und ausführen; 5 = 4+1, Gruppe und andere dürfen lesen und ausführen, aber nicht schreiben. Als Zeichenfolge ist das rwxr-xr-x. Es ist der Standardmodus für Verzeichnisse und für Skripte oder Programme, die jeder ausführen können soll.
Was ist der Unterschied zwischen 644 und 755?
Nur das Ausführungsbit. 644 (rw-r--r--) lässt den Besitzer lesen und schreiben und alle anderen lesen; das ist der normale Modus für Dokumente, Webseiten, Bilder und Konfiguration. 755 fügt für alle das Ausführen hinzu, das ein Verzeichnis zum Betreten und ein Skript zum Ausführen braucht. 755 für normale Dateien ist harmlos, aber unordentlich; 644 für ein Verzeichnis macht es für andere unbenutzbar.
Warum ist chmod 777 eine schlechte Idee?
777 erlaubt jedem Benutzer auf dem System, die Datei zu ändern oder zu ersetzen bzw. im Verzeichnis Dateien anzulegen und zu löschen. Auf einem Webserver heißt das: Jeder kompromittierte Prozess, etwa ein verwundbares Plugin, das unter einem anderen Benutzer läuft, kann deinen Code umschreiben. Die eigentliche Lösung für einen „Permission denied“-Fehler ist meist, den Besitzer zu ändern (chown) oder den Webserver-Benutzer zur Gruppe der Datei hinzuzufügen und dann 755/644 oder 775/664 zu verwenden.
Was sind setuid, setgid und das Sticky-Bit?
Sie bilden die optionale vierte (vorangestellte) Oktalziffer. setuid (4) lässt ein Programm mit den Rechten seines Besitzers laufen – so kann passwd /etc/shadow bearbeiten. setgid (2) lässt ein Programm mit der Gruppe der Datei laufen; bei einem Verzeichnis erben neue Dateien die Gruppe des Verzeichnisses, was für gemeinsame Teamordner nützlich ist (2775). Das Sticky-Bit (1) bei einem Verzeichnis erlaubt nur dem Besitzer einer Datei, sie zu löschen, wie bei /tmp (1777).
Welche Rechte sollten SSH-Schlüssel haben?
OpenSSH verweigert private Schlüssel, die andere lesen können. Verwende 600 (oder 400) für private Schlüssel wie ~/.ssh/id_ed25519, 644 für öffentliche Schlüssel (.pub), 600 für ~/.ssh/authorized_keys und ~/.ssh/config und 700 für das Verzeichnis ~/.ssh selbst. AWS und andere Cloud-Anbieter sagen dir aus demselben Grund, die .pem-Datei, die du von ihnen bekommst, mit chmod 400 zu versehen.
Was bedeutet ein großes S oder T in ls -l?
Ein kleines s oder t bedeutet, dass das Spezialbit gesetzt ist und das Ausführungsbit darunter ebenfalls. Ein großes S oder T bedeutet, dass das Spezialbit gesetzt ist, das Ausführungsbit aber nicht – meist ein Fehler: setuid auf einer Datei, die niemand ausführen kann, bewirkt nichts, und rwSr--r-- ist typischerweise ein Zeichen dafür, dass jemand chmod u+s auf die falsche Datei angewendet hat.
Rechte-Bits bei Dateien und Verzeichnissen
• r bei einer Datei: ihren Inhalt lesen. Bei einem Verzeichnis: die Namen darin auflisten (ls).
• w bei einer Datei: ihren Inhalt ändern. Bei einem Verzeichnis: Einträge darin anlegen, löschen und umbenennen, aber nur zusammen mit x. Eine Datei zu löschen ist ein Schreibzugriff auf ihr Verzeichnis, nicht auf die Datei.
• x bei einer Datei: sie als Programm oder Skript ausführen. Bei einem Verzeichnis: es betreten (cd) und auf Dateien darin per Namen zugreifen. Ein Verzeichnis mit r, aber ohne x lässt dich Namen auflisten, aber nichts öffnen.
Rechte werden gegen die erste Klasse geprüft, die auf dich zutrifft: Bist du der Besitzer, gelten nur die Besitzer-Bits, selbst wenn die Bits für Gruppe oder andere großzügiger sind.
Symbolische chmod-Syntax
Ein symbolischer Modus besteht aus einer oder mehreren kommagetrennten Klauseln der Form [wer][Operator][Rechte]. Wer ist u (Besitzer), g (Gruppe), o (andere) oder a (alle). Der Operator ist + zum Hinzufügen, - zum Entfernen oder = zum exakten Setzen. Rechte sind r, w, x, X (Ausführen nur, wenn es ein Verzeichnis ist oder bereits für jemanden ausführbar), s (setuid/setgid) und t (sticky) oder ein einzelnes u, g oder o, um die aktuellen Bits einer anderen Klasse zu übernehmen.
Beispiele: chmod u+x deploy.sh macht ein Skript für seinen Besitzer ausführbar. chmod go-w file entzieht allen außer dem Besitzer das Schreibrecht. chmod -R a=rX public/ macht einen Baum für alle lesbar, wobei Verzeichnisse betretbar und Dateien nicht ausführbar sind. chmod g=u shared/ gibt der Gruppe dieselben Rechte wie dem Besitzer.
Sichere Standards je nach Anwendungsfall
• Dateien im Web-Root: 644, Verzeichnisse 755, Besitzer ist dein Deploy-Benutzer; Upload-Verzeichnis im Besitz des Webserver-Benutzers, 755.
• Geheimnisse (.env, private Schlüssel, Zugangsdaten): 600, im Besitz des Dienstbenutzers, der sie liest.
• Shell-Skripte in einem Repository: 755. Git speichert nur das Ausführungsbit, als Dateimodus 100755 oder 100644; unter Windows setzt du es mit git update-index --chmod=+x.
• Gemeinsames Teamverzeichnis: 2775 mit einer gemeinsamen Gruppe, damit neue Dateien die Gruppe erben.
• Deine umask bestimmt den Ausgangspunkt: Mit der üblichen 022 bekommen neue Dateien 644 und Verzeichnisse 755; mit 077 sind es 600 und 700.
Ähnliche kostenlose Tools
- Subnetzrechner — Netzwerk-, Broadcast-Adresse, Hostbereich und Maske für jeden CIDR; Netze per VLSM aufteilen, IPv6 ausschreiben und überlappende Bereiche finden.
- .gitignore-Generator — Kombiniere .gitignore-Vorlagen für Sprachen, Frameworks, Editoren und Betriebssysteme zu einer sauberen Datei.
- Cron-Generator — Erstelle einen Cron-Zeitplan per Dropdown oder füge einen ein, lies ihn in Klartext und sieh die nächsten 10 Ausführungen in deiner Zeitzone und in UTC. Kostenlos, im Browser.
- Docker Run ⇄ Compose — Mach aus einem docker-run-Befehl einen Service in einer docker-compose.yml – oder aus einem Compose-Service wieder docker run.