chmod-Rechner: Linux-Dateirechte oktal und symbolisch berechnen und setzen
Rechte aus ls -l übersetzen, Sonderrechte wie setgid verstehen und fertige chmod-, find- und umask-Befehle erzeugen: So nutzen Sie den chmod-Rechner auf s-edv.com sicher im Admin-Alltag.
WerbelinksMit * markierte Links sind Werbelinks: Bei einem Kauf erhalten wir eine Provision, der Preis bleibt gleich. Als Amazon-Partner verdiene ich an qualifizierten Verkäufen. Mehr dazu

„Permission denied“ beim Webserver, ein SSH-Schlüssel, den der Client mit „UNPROTECTED PRIVATE KEY FILE“ ablehnt, ein Team-Ordner, in dem neue Dateien plötzlich der falschen Gruppe gehören: Linux-Dateirechte sind eine der häufigsten Ursachen für Störungen auf Servern und NAS-Systemen. Der chmod-Rechner auf s-edv.com übersetzt zwischen oktaler Schreibweise (755), symbolischer Schreibweise (rwxr-xr-x) und der Ausgabe von ls -l, erklärt Sonderrechte und erzeugt fertige Befehle für chmod, find und die passende umask. Diese Anleitung zeigt Admins und Entwicklern in kleinen Unternehmen, wie Sie das Tool bedienen und die Ergebnisse auf dem Server sicher anwenden.
Voraussetzungen
- Ein aktueller Browser mit JavaScript. Laut Seite laufen alle Berechnungen lokal, es ist keine Anmeldung nötig.
- Für die Umsetzung ein Terminal mit Zugriff auf den Linux-Server, das NAS per SSH oder eine lokale Linux- bzw. macOS-Shell.
- Schreibrecht auf die betroffenen Dateien oder Root-Rechte über
sudo, denn Rechte darf nur der Besitzer oder root ändern. - Grundwissen: Sie sollten wissen, unter welchem Benutzer Ihr Dienst läuft, etwa
www-databeim Webserver oder eine UID wie 1000 im Docker-Container.
Für eigene Übungen genügt eine Testmaschine oder ein kleiner Linux-Server mit 2 Kernen und 4 GB RAM. Probieren Sie neue Rechte immer zuerst an einer Kopie oder einem Testordner aus.
Schritt 1: Das Rechtemodell verstehen und das Tool öffnen
Jede Datei und jeder Ordner unter Linux hat drei Rechte-Gruppen: Besitzer (u), Gruppe (g) und andere (o). Jede Gruppe kann lesen (r, Wert 4), schreiben (w, Wert 2) und ausführen (x, Wert 1). Die Summe ergibt je eine Ziffer: rwx ist 7, r-x ist 5, rw- ist 6. Aus rwxr-xr-x wird so 755. Eine optionale vierte, vorangestellte Ziffer setzt Sonderrechte: setuid (4), setgid (2) und das Sticky-Bit (1).
Öffnen Sie den chmod-Rechner. Oben unter „Rechte eingeben“ wählen Sie zwischen „Datei“ und „Ordner“, darunter liegt das Eingabefeld „Oktal, symbolisch oder aus ls -l“ mit dem Beispielhinweis „z. B. 755 · 0640 · rwxr-x--- · -rw-r--r--“. Es folgen Vorlagen mit Einsatzzweck: „644 Dateien“, „755 Ordner & Skripte“, „600 SSH-Schlüssel“, „700 ~/.ssh“, „640 Konfiguration“, „775 Team-Ordner“, „2775 setgid-Ordner“, „1777 /tmp“ und „440 sudoers“. Darunter finden Sie die Tabelle „Per Klick setzen“, den Bereich „Ergebnis“ und „Befehle“ mit dem Feld „Pfad“.
Verifizieren: Beim Öffnen steht 755 im Feld. Unter „Ergebnis“ sehen Sie „OKTAL 755“, „SYMBOLISCH rwxr-xr-x“ und „LS -L -rwxr-xr-x“, darunter für den Besitzer „lesen, ändern, ausführen“ und für Gruppe und andere „lesen, ausführen“. Auf dem Server prüfen Sie das so:
touch test.txt
chmod 755 test.txt
stat -c '%a %A' test.txt
# 755 -rwxr-xr-x
Schritt 2: Rechte eingeben oder aus ls -l übernehmen
Das Eingabefeld versteht mehrere Formate. Im Test akzeptierte es dreistellige und vierstellige Oktalwerte (640, 0640, 2775), neun Zeichen symbolisch (rwxr-x---) und komplette Zeilenanfänge aus ls -l wie -rw-r--r-- oder drwxrwsr-x. Bei einem führenden d schaltet das Tool automatisch auf „Ordner“ um. Auch ein angehängtes . (SELinux-Kontext) oder @ (erweiterte Attribute unter macOS) stört nicht. Leerzeichen am Anfang und Ende werden ignoriert.
Das ist im Alltag die schnellste Methode: Sie kopieren den Anfang einer Zeile aus ls -l auf dem Server, fügen ihn ein und sehen sofort Oktalwert und Bedeutung. Umgekehrt klicken Sie eine Vorlage an, wenn Sie wissen, was Sie erreichen wollen, und übernehmen den Befehl.
Alternativ setzen Sie die Rechte in der Tabelle „Per Klick setzen“. Sie hat die Spalten „LESEN r · 4“, „SCHREIBEN w · 2“ und „AUSFÜHREN x · 1“ für „Besitzer (u)“, „Gruppe (g)“ und „Andere (o)“ sowie eine Zeile „Sonderrechte“ mit „setuid 4“, „setgid 2“ und „Sticky 1“. Jede Änderung aktualisiert das Eingabefeld sofort. Im Test machte ein Klick auf „Gruppe: lesen“ aus 600 den Wert 640.
Verifizieren: Kopieren Sie eine Zeile aus ls -l und vergleichen Sie den angezeigten Oktalwert mit stat:
ls -l /etc/passwd
stat -c '%a %A %n' /etc/passwd
# 644 -rw-r--r-- /etc/passwd
Schritt 3: Ergebnis und Hinweise richtig lesen
Der Bereich „Ergebnis“ zeigt neben Oktal, Symbolik und der ls -l-Form eine Erklärung je Gruppe. Im Modus „Ordner“ ändert sich die Beschreibung, denn bei Ordnern bedeuten die Rechte etwas anderes: r erlaubt das Auflisten der Dateinamen, w das Anlegen, Umbenennen und Löschen von Dateien, auch fremder, und x das Betreten des Ordners. Ein Ordner ohne x ist praktisch gesperrt. Bei 640 auf einem Ordner meldet das Tool entsprechend „Der Besitzer sieht die Dateinamen, kann den Ordner aber nicht betreten (x fehlt).“
Sonderrechte erscheinen in ls -l an der Stelle des x. Ein kleines s oder t bedeutet „Sonderrecht und Ausführrecht“, ein großes S oder T „Sonderrecht ohne Ausführrecht“, was meist ein Fehler ist. Das Tool setzt das korrekt um: 4755 wird zu rwsr-xr-x, 4644 zu rwSr--r--, 1777 zu rwxrwxrwt. Dazu gibt es Hinweise, die wir im Test gesehen haben:
- bei setuid oder setgid auf Dateien die Warnung, dass das Programm mit den Rechten des Besitzers bzw. der Gruppe läuft und Linux das Bit bei Skripten ignoriert,
- bei setuid auf Ordnern „setuid hat auf Ordnern unter Linux keine Wirkung.“,
- bei setgid auf Ordnern die Erklärung, dass neue Dateien und Unterordner die Gruppe des Ordners erben,
- beim Sticky-Bit auf Dateien „Das Sticky-Bit hat auf Dateien unter Linux keine Wirkung. Es ist für Ordner gedacht.“,
- bei 777 die Warnung, dass jeder Benutzer alles darf und meist Besitzer oder Gruppe nicht passen.
Besonders wertvoll ist ein Hinweis für Ordner: „Auf Ordnern entfernt chmod 640 ein vorhandenes setuid/setgid nicht (GNU coreutils). Zum Entfernen chmod 00640 oder chmod g-s verwenden.“ Das haben wir nachgeprüft, es stimmt.
Verifizieren: Testen Sie das setgid-Verhalten an einem Testordner:
mkdir testordner
chmod 2775 testordner
chmod 640 testordner; stat -c '%a %A' testordner # 2640 drw-r-S---
chmod 00640 testordner; stat -c '%a %A' testordner # 640 drw-r-----
Schritt 4: Befehle für Datei, Ordner und rekursive Änderungen erzeugen
Tragen Sie unter „Befehle“ im Feld „Pfad“ den Zielpfad ein, etwa /srv/www/projekt. Das Tool erzeugt dann „Oktal“ (chmod 755 /srv/www/projekt) und „Symbolisch“ (chmod u=rwx,g=rx,o=rx /srv/www/projekt), jeweils mit Kopierschaltfläche.
Im Modus „Ordner“ kommen zwei weitere Befehle hinzu: „Nur Ordner“ und „Nur Dateien“. Hintergrund: chmod -R 755 macht auch jede Datei ausführbar. Besser ist es, Ordner und Dateien getrennt zu behandeln. Das Tool leitet den Dateiwert automatisch ab, indem es das Ausführrecht streicht:
find /srv/www/projekt -type d -exec chmod 755 {} +
find /srv/www/projekt -type f -exec chmod 644 {} +
Bei 750 wurden daraus im Test 750 und 640, bei 2775 entsprechend 2775 und 664, bei 700 die Werte 700 und 600. Ein typisches Praxisbeispiel ist ein Webprojekt, das der Webserver nur lesen soll, während das Deploy-Konto schreibt: Ordner 750 und Dateien 640, Besitzer das Deploy-Konto, Gruppe www-data.
Verifizieren: Kontrollieren Sie nach dem Lauf, ob noch Dateien mit Ausführrecht oder Ordner ohne x übrig sind:
find /srv/www/projekt -type f -perm /111 | head
find /srv/www/projekt -type d ! -perm -u+x | head
# keine Ausgabe = alles wie gewünscht
Schritt 5: Passende umask ermitteln
Die umask legt fest, welche Rechte neue Dateien und Ordner nicht bekommen. Bei der üblichen umask 022 entstehen Ordner mit 755 und Dateien mit 644. Wenn Sie im Ordnermodus Rechte ohne Sonderbits wählen, zeigt das Tool unter „Passende umask“ den Wert und die Wirkung, im Test zum Beispiel „umask 0027“ mit „neue Ordner 750, neue Dateien 640“ und „umask 0077“ mit „neue Ordner 700, neue Dateien 600“. Für Werte mit Sonderrechten wie 2775 zeigt das Tool keine umask an, weil sich Sonderbits darüber nicht setzen lassen.
Die umask setzen Sie dauerhaft dort, wo der Prozess startet: für Shells in ~/.profile, für systemd-Dienste mit UMask=0027 in der Unit-Datei, für SFTP-Benutzer über die Option -u des internal-sftp-Subsystems.
Verifizieren: Prüfen Sie die Wirkung in einer Subshell, ohne Ihre Sitzung zu verändern:
( umask 0027; mkdir neu; touch neu.txt; stat -c '%n %a' neu neu.txt )
# neu 750
# neu.txt 640
Typische Fehler
„Relative Angaben wie u+x hängen von den bisherigen Rechten ab.“
Das Feld nimmt keine chmod-Ausdrücke wie u+x an, weil das Ergebnis vom Ausgangszustand abhängt. Geben Sie das gewünschte Endergebnis ein, etwa 755. Im Test lehnte das Tool mit derselben Meldung auch absolute Angaben wie u=rwx,g=rx,o= ab. Wandeln Sie diese selbst in die neun Zeichen rwxr-x--- um.
„Oktal kennt nur die Ziffern 0 bis 7“ und „Oktale Rechte haben 3 oder 4 Ziffern“
Eine 8 oder 9 ist in der Oktalschreibweise nicht möglich, und ein einzelner Wert wie 7 reicht nicht. Fünf oder mehr Ziffern meldet das Tool als „Unbekanntes Format“. Achtung: Bei einer Fehleingabe bleibt im Ergebnisbereich der zuletzt gültige Wert stehen. Lesen Sie deshalb immer zuerst die Meldung unter dem Eingabefeld.
Rechte stimmen, Dienst kann trotzdem nicht schreiben
Dann passt fast immer der Besitzer nicht. Prüfen Sie mit ls -ln die numerischen IDs und korrigieren Sie mit chown. Bei Docker-Volumes läuft der Dienst im Container oft unter UID 1000 oder einer eigenen ID, die Rechte auf dem Host helfen dann nicht.
SSH lehnt den Schlüssel ab
Private Schlüssel brauchen 600 oder 400, der Ordner ~/.ssh 700 und authorized_keys 600. Die Vorlagen „600 SSH-Schlüssel“ und „700 ~/.ssh“ liefern genau diese Werte.
Symbolische Links zeigen immer 777
Eine Zeile wie lrwxrwxrwx übernimmt das Tool als 777 für eine Datei. Unter Linux sind die Rechte eines Symlinks jedoch bedeutungslos, maßgeblich sind die Rechte des Ziels. Prüfen Sie dieses mit stat -L.
Häufige Fragen
Warum ist chmod 777 gefährlich?
Mit 777 darf jeder Benutzer und jeder Dienst die Datei ändern oder im Ordner Dateien ablegen und löschen. Ein kompromittierter Webserver-Prozess kann so Schadcode einschleusen. Die Lösung ist fast immer ein korrekter Besitzer oder eine passende Gruppe.
Was ist der Unterschied zwischen chmod und chown?
chmod legt fest, was Besitzer, Gruppe und andere dürfen. chown legt fest, wem die Datei gehört, etwa chown www-data:www-data datei. Beide greifen ineinander.
Wann brauche ich setgid auf einem Ordner?
Immer dann, wenn mehrere Personen in einem gemeinsamen Ordner arbeiten. Mit 2775 gehören neue Dateien automatisch der Gruppe des Ordners, und alle Teammitglieder behalten Zugriff.
Welche Rechte gelten für sudoers-Dateien?
Dateien unter /etc/sudoers.d sollten 440 haben und root gehören. Bearbeiten Sie sie mit visudo -f, damit ein Syntaxfehler Sie nicht aussperrt.
Testumfang
Wir haben den Rechner am 1. Oktober 2026 mit allen Vorlagen, mit oktalen, symbolischen und aus ls -l kopierten Eingaben sowie mit Fehleingaben im Datei- und Ordnermodus geprüft. Die angezeigten Oktal- und Symbolwerte, die Sonderrechte, der setgid-Hinweis für Ordner und die umask-Vorschläge stimmten mit chmod, stat und umask auf einem Linux-System überein.
Fazit
Der chmod-Rechner nimmt die Rechenarbeit ab und erklärt dabei, was ein Wert für Dateien und Ordner tatsächlich bedeutet. Stärken sind die direkte Übernahme aus ls -l, die verständlichen Warnungen bei Sonderrechten und 777 sowie die getrennten find-Befehle, die das klassische chmod -R-Problem vermeiden. Prüfen Sie Änderungen trotzdem immer mit stat auf dem Zielsystem und denken Sie daran, dass Rechte ohne den richtigen Besitzer wenig nützen.


