Linux-Dateirechte und chmod sicher verstehen
Linux-Dateiberechtigungen mit chmod sicher ändern: 755 und 644 lesen, Dateien und Verzeichnisse trennen sowie umask und ACLs prüfen.
Dedizierte Server, Colocation und Betriebsrisiken
Er bewertet Dedicated Server, Colocation, Speicher, Netzwerkqualität und technische Hilfe unter realen Betriebsbedingungen.
Linux-Dateiberechtigungen ändern Sie mit chmod, nachdem Sie Eigentümer, Gruppe, andere Benutzer und den Objekttyp geprüft haben. Verwenden Sie symbolische Modi für gezielte Änderungen, lesen Sie oktale Werte als drei getrennte Rechteblöcke und behandeln Sie Verzeichnisse, ACLs, umask sowie rekursive Eingriffe als eigene Fälle statt als Varianten desselben Rezepts.
Vor chmod den Istzustand lesen
Ein Fehler mit Berechtigungen ist zuerst eine Identitätsfrage. Welcher Benutzer greift zu, zu welchen Gruppen gehört er, wem gehört das Objekt und gibt es zusätzliche ACL-Einträge? Ein korrekt berechneter Modus hilft nicht, wenn der Dienst unter einem anderen Konto läuft oder eine ACL-Maske den wirksamen Zugriff begrenzt.
Die Reihenfolge bleibt nüchtern: erst das Risiko benennen, dann den Prüfpunkt festlegen, danach entscheiden. Wer direkt mit chmod beginnt, verändert den Befund, bevor er ihn verstanden hat.
Prüfen Sie mindestens diese Punkte:
- Identität: id zeigt die aktuelle Benutzer- und Gruppenmitgliedschaft.
- Objekt: ls und stat zeigen Typ, Modus, Eigentümer und Gruppe.
- Pfad: Jedes Elternverzeichnis muss für den zugreifenden Benutzer durchquerbar sein.
- ACL: getfacl zeigt benannte Benutzer, Gruppen und deren wirksame Maske.
id
ls -ld -- /PATH
stat -c '%A %a %U %G %n' -- /PATH
getfacl -p -- /PATH
PATH ist ein Platzhalter. Ersetzen Sie ihn durch den exakten Datei- oder Verzeichnispfad. Das doppelte Bindestrichpaar beendet bei diesen Werkzeugen die Optionen, damit ein Name mit führendem Minus nicht als Schalter gelesen wird. Prüfen Sie die lokale Handbuchseite, wenn eine andere Implementierung als GNU Coreutils installiert ist.
Das Grundmodell: Eigentümer, Gruppe und Andere
Klassische Linux-Modusbits bilden drei Benutzerklassen ab. u steht für den Eigentümer, g für die zugeordnete Gruppe und o für alle übrigen Benutzer. a fasst alle drei Klassen zusammen. Die Gruppenklasse meint nicht jeden Benutzer mit irgendeiner Gruppe, sondern Prozesse, deren wirksame oder ergänzende Gruppe zum Objekt passt.
Innerhalb jeder Klasse gibt es drei Bits:
| Bit | Oktalwert | Bei einer Datei | Bei einem Verzeichnis |
|---|---|---|---|
| r | 4 | Inhalt lesen | Namen im Verzeichnis auflisten |
| w | 2 | Inhalt verändern | Einträge anlegen oder entfernen |
| x | 1 | Datei ausführen | Pfad durchqueren und Einträge adressieren |
Verzeichnisrechte wirken als Kombination. Schreibrecht allein garantiert nicht, dass ein Benutzer einen Eintrag sinnvoll anlegen oder entfernen kann; dafür ist normalerweise auch das Durchquerungsrecht nötig. Umgekehrt kann x ohne r den Zugriff auf einen bekannten Namen erlauben, obwohl eine Verzeichnisliste nicht gelesen werden kann.
Noch wichtiger: Das Löschen einer Datei hängt von den Rechten am Elternverzeichnis ab. Das Schreibbit der Datei schützt ihren Namen nicht vor einem Benutzer, der im Verzeichnis Einträge verändern darf. Das ist einer der Gründe, warum eine reine Betrachtung der Datei regelmäßig in die falsche Richtung führt.

Die Ziffern beantworten nur, welche Bits gesetzt sind. Ob sie sinnvoll sind, hängt vom Objekt, Eigentümer, Gruppenmodell, ACLs und Dienstkonto ab.
Symbolische Modi ändern eine Absicht
Der symbolische Modus besteht aus Klasse, Operation und Rechten. Plus fügt Bits hinzu, Minus entfernt sie, Gleich setzt die genannten Rechte für die gewählte Klasse neu. Symbolische Änderungen sind leichter zu prüfen, wenn nur eine konkrete Eigenschaft geändert werden soll.
chmod u+x -- /PATH/SCRIPT
chmod go-w -- /PATH/FILE
Die erste Zeile ist nur für eine Datei gedacht, die tatsächlich ein ausführbares Skript oder Programm sein soll. Die zweite entfernt Schreibrecht bei Gruppe und Anderen, lässt alle übrigen Bits aber bestehen. Lassen Sie die Klasse nicht weg: Ihre umask kann beeinflussen, welche Klassen ein symbolischer Modus ohne Klassenangabe anspricht.
Wenn ein exakter Endzustand gefordert ist, schreiben Sie alle drei Klassen aus. Das folgende Beispiel passt nur zu einer normalen Datei, die der Eigentümer ändern, die Gruppe lesen und Andere nicht lesen dürfen:
chmod u=rw,g=r,o= -- /PATH/FILE
stat -c '%A %a %U %G %n' -- /PATH/FILE
Für ein gemeinsam lesbares Verzeichnis könnte die Richtlinie anders aussehen, weil Durchqueren erforderlich ist:
chmod u=rwx,g=rx,o= -- /PATH/DIRECTORY
stat -c '%A %a %U %G %n' -- /PATH/DIRECTORY
Diese Beispiele sind keine Standardwerte für jeden Webserver. Sie zeigen, wie eine vorher festgelegte Richtlinie ausgedrückt und anschließend kontrolliert wird. Ein Rechteproblem wird nicht besser, nur weil die Zahl vertraut aussieht. Wenn das gewünschte Ergebnis nicht in einem Satz beschrieben werden kann, ist der Befehl noch nicht reif für die Ausführung.
Oktale Modi setzen einen Endzustand
Oktale Modi verdichten r, w und x zu einer Ziffer pro Benutzerklasse. Lesen zählt 4, Schreiben 2 und Ausführen beziehungsweise Durchqueren 1. Die erste Stelle gehört dem Eigentümer, die zweite der Gruppe, die dritte den Anderen.
| Modus | Eigentümer | Gruppe | Andere | Was daraus folgt |
|---|---|---|---|---|
| 755 | rwx | r-x | r-x | Kann für ein durchquerbares Verzeichnis oder bewusst ausführbares Programm passen. |
| 644 | rw- | r– | r– | Kann für öffentlich lesbare, nicht ausführbare Dateien passen. |
755 und 644 sind Zerlegungen, keine Empfehlungen. Eine Konfigurationsdatei mit Geheimnissen darf nicht allein deshalb für Gruppe und Andere lesbar werden, weil 644 häufig in Anleitungen steht. Ein Upload-Verzeichnis braucht möglicherweise ein Gruppenmodell, das mit einer pauschalen 755-Vorgabe nicht funktioniert.
Numerische Modi setzen die gewöhnlichen Bits normalerweise absolut. Damit sind sie kompakt, überschreiben aber auch Unterschiede, die vorher absichtlich bestanden. Symbolische Modi sind oft geeigneter, wenn nur ein einzelnes Recht korrigiert werden soll.
chmod ändert keine Eigentümer
chmod verändert Modusbits. Eigentümer und Gruppe bleiben unverändert. Wenn ein Dienst wegen eines falschen Besitzers nicht schreiben kann, macht ein breiterer Modus das Symptom vielleicht unsichtbar, aber die Zuständigkeit bleibt falsch.
id USER
stat -c '%U %G %A %n' -- /PATH/FILE
Nur wenn der gewünschte Eigentümer und die gewünschte Gruppe fachlich geklärt sind, gehört ein Eigentümerwechsel in den Plan:
chown USER:GROUP -- /PATH/FILE
USER und GROUP sind Platzhalter. Ein fehlgeschlagenes chmod ist kein Anlass, chown mit erhöhten Rechten auszuprobieren. Prüfen Sie zuerst, welches Dienstkonto den Pfad benötigt, welche Gruppe den gemeinsamen Zugriff abbildet und ob ein Paket oder ein Deployment den Eigentümer absichtlich gesetzt hat.
umask gilt bei der Erzeugung, nicht rückwirkend
umask ist die Erzeugungsmaske des Shell-Prozesses. Sie entfernt Rechte aus dem Modus, den ein Programm für ein neues Objekt anfordert. Eine geänderte umask repariert keine vorhandene Datei. Kindprozesse erben die Maske, weshalb ein Dienst eine andere Erzeugungswirkung haben kann als Ihre interaktive Shell.
umask
umask -S
Eine typische Ausgabe wie 022 bedeutet, dass Schreibrechte für Gruppe und Andere bei neu erzeugten Objekten entfernt werden. 077 ist strenger und entfernt bei der Erzeugung alle Gruppen- und Anderenrechte. Das sind Beschreibungen der Maske, keine Aufforderung, sie systemweit zu setzen.
Hat das Elternverzeichnis eine Default-ACL, wird die Erzeugung stattdessen aus dieser ACL und dem vom Programm angeforderten Modus abgeleitet. Wer nur die umask betrachtet, kann deshalb trotz korrekter Rechnung ein anderes Ergebnis erhalten.
ACLs erklären Rechte, die ls nicht vollständig zeigt
ACLs ergänzen Eigentümer, Gruppe und Andere um benannte Benutzer und Gruppen. getfacl zeigt außerdem eine Maske. Diese Maske begrenzt die wirksamen Rechte benannter Benutzer und Gruppen sowie der Gruppenklasse. Ein ACL-Eintrag kann daher mehr Buchstaben tragen, als im Kommentar effective tatsächlich wirksam sind.
getfacl -p -- /PATH
setfacl --test -m u:USER:r-X -- /PATH
Der zweite Befehl läuft im Testmodus und zeigt den erwarteten ACL-Zustand, ohne ihn zu schreiben. Das große X setzt das Ausführungsrecht nur bei Verzeichnissen oder bei Dateien, die bereits für eine Klasse ausführbar sind. Prüfen Sie vor einer echten Änderung auch die ACL-Maske; setfacl kann sie neu berechnen.
chmod und ACLs beeinflussen einander. Die klassischen Gruppenbits können einer ACL-Maske entsprechen. Eine chmod-Änderung kann dadurch den wirksamen Zugriff benannter ACL-Einträge verändern. Wenn ls hinter dem Modus ein Zusatzzeichen zeigt, gehört getfacl zwingend zur Diagnose.
Rekursion und Symlinks brauchen einen Rückweg
Rekursive Änderungen mischen meist Dateien und Verzeichnisse, obwohl x für beide etwas anderes bedeutet. Ein pauschaler rekursiver Modus kann normale Dateien ausführbar machen, Verzeichnisse undurchquerbar setzen oder absichtlich unterschiedliche Rechte vereinheitlichen. Wenn dadurch ein Dienst ausfällt, zählt Reaktionszeit in Minuten.
Ermitteln Sie zuerst getrennt, was betroffen wäre:
find /PATH -type d -print
find /PATH -type f -print
Diese Befehle ändern nichts. Prüfen Sie Mountgrenzen, Symlinks, Dateitypen und die Zahl der Treffer. GNU chmod behandelt einen Symlink als direktes Argument anders als Links während einer rekursiven Traversierung. Optionen, die Links bei Rekursion verfolgen, vergrößern die Angriffs- und Fehlerfläche.
Sichern Sie vor einer Massenänderung Modus, Eigentümer, Gruppe und ACLs in eine geschützte neue Datei:
getfacl -R -p -- /PATH > /SAFE/permissions.acl
setfacl --test --restore=/SAFE/permissions.acl
Die Umleitung mit größer-als legt die Zieldatei neu an oder kürzt sie. Verwenden Sie einen neuen, geschützten Pfad außerhalb des zu ändernden Baums. Lesen und testen Sie die Sicherung. Erst danach kann eine Wiederherstellung mit setfacl geplant werden; dafür sind passende Rechte und Unterstützung durch Dateisystem sowie Werkzeuge nötig.
Eine kontrollierte Änderung in fünf Schritten
- Lesen Sie Identität, Objekttyp, Modus, Eigentümer, Gruppe und ACL.
- Formulieren Sie den gewünschten Zugriff getrennt für Eigentümer, Gruppe und Andere.
- Wählen Sie symbolisch für eine gezielte Änderung oder oktal für einen geprüften Endzustand.
- Ändern Sie zunächst genau ein Objekt und kontrollieren Sie Modus sowie Zugriff.
- Planen Sie Rekursion erst mit Trefferliste, Sicherung und getesteter Wiederherstellung.
Prüfliste
- Identität prüfen: Benutzer, Gruppen und Dienstkonto abgleichen; ein falsches Konto darf nicht durch breitere Rechte kaschiert werden.
- Objekt prüfen: Datei, Verzeichnis und Elternpfad getrennt bewerten; x hat je nach Objekttyp eine andere Wirkung.
- Zusatzregeln prüfen: ACL-Maske und Default-ACL lesen; sichtbare Modusbits können den wirksamen Zugriff unvollständig erklären.
- Änderung begrenzen: Ein Objekt vor einem Baum ändern; Rekursion ohne Trefferliste und Sicherung ist ein Stoppsignal.
- Rückweg prüfen: ACL-Sicherung und Testwiederherstellung kontrollieren; eine ungeprüfte Sicherungsdatei ist kein Wiederherstellungsplan.
Häufige Fragen
Was bedeutet chmod 755?
Was bedeutet chmod 644?
Warum funktioniert chmod trotz richtiger Zahl nicht?
Soll ich chmod rekursiv auf einen Webordner anwenden?
Fazit
chmod ist der letzte Schritt einer Rechtekorrektur, nicht der erste. Lesen Sie zunächst Identität, Eigentümer, Gruppe, Objekttyp und ACL. Formulieren Sie danach den gewünschten Zugriff und ändern Sie den kleinsten Pfad. Wer bei Rekursion keinen belastbaren Rückweg hat, hat noch keinen ausführbaren Plan.
Vorbereitet von
Dedizierte Server, Colocation und Betriebsrisiken
Er bewertet Dedicated Server, Colocation, Speicher, Netzwerkqualität und technische Hilfe unter realen Betriebsbedingungen.
Geprüfte Fakten
HostScout editorialVerwandte Artikel
Server-Linux: Die passende Distribution wählen
Die beste Linux-Distribution für Server nach Support, Sicherheit, Paketstand, Hardware, Ökosystem und Upgradeweg auswählen.
Cronjobs einrichten: sicher planen und betreiben
Cronjobs einrichten, Cron-Syntax korrekt lesen und typische Ausfälle durch PATH, Zeitzonen, Überlappung, Rechte und fehlende Protokolle vermeiden.
rsync: Dateien sicher synchronisieren und sichern
rsync synchronisiert Dateien effizient, ist aber noch kein Backup. So prüfen Sie Pfade, Löschungen, SSH, Metadaten und die Wiederherstellung sicher.
Wichtige Linux-Befehle für den Server
Linux-Befehle für Orientierung, Dateien, Prozesse, Dienste, Netzwerk, Rechte und SSH – mit sicheren Beispielen für die Serverpraxis.
Dedicated Server mieten: Vergleich und Auswahl
Dedicated Server mieten: Vergleichen Sie Root-Zugriff, Standort, Hardware, Verwaltung und echte Betriebskosten vor der Auswahl.
Was ist Webhosting und wie funktioniert es?
Was ist Webhosting? Eine klare Erklärung zu Servern, Domains, E-Mail, Backups und der Wahl zwischen Shared Hosting, VPS und Cloud.