Skip to main content
CheckTown
Dev-Tools

chmod-Rechner: Unix-Dateiberechtigungen mit Beispielen erklärt

Veröffentlicht 6 Min. Lesezeit
In diesem Artikel

Was ist chmod?

chmod (change mode) ist ein Unix- und Linux-Befehl, der die Berechtigungen von Dateien und Verzeichnissen setzt. Jede Datei auf einem Unix-System hat drei Berechtigungskategorien: owner (der Benutzer, der die Datei erstellt hat), group (Benutzer in derselben Gruppe) und others (alle anderen). Jeder Kategorie können unabhängig Lese-, Schreib- und Ausführungsrechte gewährt werden.

chmod zu verstehen ist unverzichtbar für die Systemadministration, die Konfiguration von Webservern und die sichere Dateiverwaltung. Falsche Berechtigungen zählen zu den häufigsten Ursachen für Sicherheitslücken und Anwendungsfehler auf Linux-Servern.

Wie chmod-Berechtigungen funktionieren

Berechtigungen lassen sich in zwei Notationen ausdrücken: numerisch (oktal) und symbolisch. Die numerische Notation verwendet drei Ziffern (z. B. 755), wobei jede Ziffer die Berechtigungen für owner, group bzw. others repräsentiert.

  • Read (r = 4) – Dateiinhalte anzeigen oder Verzeichniseinträge auflisten
  • Write (w = 2) – Dateiinhalte ändern oder Dateien in einem Verzeichnis hinzufügen/entfernen
  • Execute (x = 1) – eine Datei als Programm ausführen oder ein Verzeichnis mit cd betreten

Jede Ziffer ist die Summe ihrer Berechtigungen: 7 = read + write + execute (4+2+1), 6 = read + write (4+2), 5 = read + execute (4+1), 4 = nur read. Die symbolische Notation verwendet Buchstaben: u (user/owner), g (group), o (others), mit +/- zum Hinzufügen oder Entfernen von Berechtigungen (z. B. chmod u+x file).

Kostenlos testen – keine Registrierung erforderlich

chmod-Berechtigungen berechnen →

Häufige Berechtigungswerte

Dies sind die am häufigsten verwendeten chmod-Werte und ihre typischen Anwendungen.

  • 755 (rwxr-xr-x) – Standard für ausführbare Dateien und Verzeichnisse; der Owner hat vollen Zugriff, alle anderen können lesen und ausführen
  • 644 (rw-r--r--) – Standard für normale Dateien; der Owner kann lesen und schreiben, alle anderen nur lesen
  • 700 (rwx------) – privates Verzeichnis oder Skript; nur der Owner hat überhaupt Zugriff
  • 600 (rw-------) – private Datei wie SSH-Schlüssel oder Konfigurationsdateien mit Geheimnissen; nur der Owner kann lesen und schreiben
  • 777 (rwxrwxrwx) – voller Zugriff für alle; fast nie angemessen und auf Produktivsystemen ein Sicherheitsrisiko

Sicherheitsaspekte

Das Prinzip der geringsten Rechte gilt unmittelbar für Dateiberechtigungen: Gewähre nur die minimalen Berechtigungen, die eine Datei oder ein Verzeichnis zum korrekten Funktionieren benötigt. Für alle Benutzer beschreibbare Dateien (Berechtigungen, die für others auf 7 oder 6 enden) sind ein häufiger Angriffsvektor, weil jeder Benutzer auf dem System sie verändern kann.

Spezielle Berechtigungs-Bits fügen eine weitere Ebene hinzu: SUID (Set User ID) lässt ein Programm als Datei-Owner laufen, SGID (Set Group ID) lässt es als Dateigruppe laufen, und das Sticky Bit auf Verzeichnissen verhindert, dass Benutzer Dateien löschen, die ihnen nicht gehören. Falsch konfigurierte SUID-Bits auf ausführbaren Dateien können zu Schwachstellen durch Privilegien-Eskalation führen.

Tipps und Best Practices

Befolge diese Richtlinien, um sichere und funktionsfähige Dateiberechtigungen auf deinen Systemen zu gewährleisten.

  • Verzeichnisse benötigen Ausführungsrechte – ohne sie können Benutzer nicht mit cd in das Verzeichnis wechseln oder auf die darin enthaltenen Dateien zugreifen, selbst wenn die Dateien selbst lesbar sind
  • Verwende rekursives chmod mit Bedacht – chmod -R 755 auf einem Verzeichnis setzt alle Dateien auf ausführbar, was selten korrekt ist; nutze find mit -type f und -type d, um Dateien und Verzeichnisse getrennt zu setzen
  • Setze umask-Standardwerte – der Befehl umask steuert die Standardberechtigungen für neu erstellte Dateien; eine umask von 022 erzeugt Dateien als 644 und Verzeichnisse als 755, was für die meisten Serverumgebungen angemessen ist

Häufig gestellte Fragen

Was ist der Unterschied zwischen 755 und 777?

Bei 755 hat der Owner die volle Kontrolle (lesen, schreiben, ausführen), während group und others nur lesen und ausführen können. Bei 777 hat jeder die volle Kontrolle, einschließlich der Möglichkeit, die Datei zu ändern oder zu löschen. 777 zu verwenden ist fast nie nötig und stellt ein erhebliches Sicherheitsrisiko dar – es bedeutet, dass jeder Benutzer auf dem System deine Dateien verändern kann.

Warum benötigen Verzeichnisse Ausführungsrechte?

Das Execute-Bit auf einem Verzeichnis steuert die Möglichkeit, es zu durchlaufen. Ohne Ausführungsrecht kann ein Benutzer nicht mit cd in das Verzeichnis wechseln, seinen Inhalt vollständig auflisten oder auf irgendeine Datei darin zugreifen – selbst wenn die Dateien selbst Leserechte haben. Deshalb haben Verzeichnisse typischerweise 755, während Dateien 644 haben.

Was sind die Standardberechtigungen für neue Dateien?

Die Standardberechtigungen hängen von der umask-Einstellung ab. Bei der üblichen umask von 022 werden neue Dateien mit 644 (rw-r--r--) und neue Verzeichnisse mit 755 (rwxr-xr-x) erstellt. Die umask zieht Berechtigungen vom Systemmaximum von 666 für Dateien und 777 für Verzeichnisse ab.

Verwandte Tools