So funktionieren Dateirechte
Jede Datei hat drei Gruppen von Rechten: für den Besitzer (u), die Gruppe (g) und andere (o). Jede Gruppe kennt Lesen (r = 4), Schreiben (w = 2) und Ausführen (x = 1). Die Werte werden addiert: rwx = 7, r-x = 5, r-- = 4. So wird aus rwxr-xr-x die Zahl 755.
Bei Verzeichnissen bedeuten die Rechte etwas anderes: r erlaubt, die Namen aufzulisten, x erlaubt, hineinzuwechseln und auf Einträge zuzugreifen, w (zusammen mit x) erlaubt, Einträge anzulegen, umzubenennen und zu löschen. Ein Verzeichnis ohne x ist deshalb praktisch unbrauchbar.
Die vierte, führende Ziffer steht für Sonderrechte: setuid (4) und setgid (2) lassen ein Programm mit den Rechten des Besitzers bzw. der Gruppe laufen; bei einem Verzeichnis sorgt setgid unter Linux dafür, dass neue Dateien die Gruppe des Verzeichnisses erben. Das Sticky-Bit (1) erlaubt in einem Verzeichnis nur dem Besitzer der Datei, dem Besitzer des Verzeichnisses und root, Einträge zu löschen oder umzubenennen — so wie bei /tmp (1777).
Typische Werte für Server und Nextcloud
- 644 für normale Dateien, 755 für Verzeichnisse und Skripte — der übliche Stand für Webinhalte.
- 600 für private Schlüssel und Dateien mit Zugangsdaten, 700 für
~/.ssh. OpenSSH weigert sich, einen privaten Schlüssel zu verwenden, der für andere lesbar ist. - Nextcloud: Das Datenverzeichnis liegt üblicherweise bei 750,
config/config.phpbei 640 (enthält Datenbank-Passwort und Secrets), die übrigen Dateien im Webroot bei 644 und die Verzeichnisse bei 755. Entscheidend ist dabei der Besitzer: Datenverzeichnis und Konfiguration müssen dem Benutzer gehören, unter dem PHP läuft (häufigwww-data) oder dessen Gruppe zugeordnet sein. - 664 / 775 nur, wenn wirklich eine Gruppe gemeinsam schreiben soll — dann zusammen mit setgid auf dem Verzeichnis (
2775).
Häufige Fehler
chmod -R 777„löst“ jedes Rechteproblem, indem es alle Rechte für alle vergibt. Das ist ein Sicherheitsproblem; die Ursache ist fast immer ein falscher Besitzer — dann hilftchown, nicht ein offeneres chmod.chmod -R 755oder644auf einen ganzen Baum: Mit 755 werden auch normale Dateien ausführbar, mit 644 verlieren Verzeichnisse dasxund lassen sich nicht mehr betreten. Verzeichnisse und Dateien brauchen verschiedene Werte; das erledigt dasfind-Muster oben (Verzeichnisse mit-type d, Dateien mit-type f).- Fehlendes
xauf einem übergeordneten Verzeichnis: Die Datei selbst kann 644 haben und ist trotzdem unerreichbar, wenn ein Elternverzeichnis nicht durchsuchbar ist. - setuid/setgid auf Skripten: Unter Linux ignoriert der Kernel setuid bei Shell-Skripten; auf Programmen ist es ein Sicherheitsrisiko. Nur setzen, wenn Sie genau wissen, wozu.
- Ein großes S oder T in der symbolischen Schreibweise heißt: Das Sonderrecht ist gesetzt, aber das passende
xfehlt — meist unbeabsichtigt.
umask und Fragen
Neue Dateien starten mit 666, neue Verzeichnisse mit 777. Die umask nimmt davon Bits weg: Bei umask 022 entstehen Dateien mit 644 und Verzeichnisse mit 755, bei umask 077 600 und 700. Der Rechner oben zeigt es für jede umask.
Was bedeutet die führende 0 in 0755? Sie ist die Stelle für die Sonderrechte; 0755 und 755 sind dasselbe. Warum ist 777 gefährlich? Jeder Benutzer auf dem System kann die Datei ändern oder ersetzen — bei Skripten und Webinhalten kann das zur Codeausführung führen. Gilt das auch für Symlinks? Nein: Die Rechte eines symbolischen Links werden nicht ausgewertet, maßgeblich sind die des Ziels.
Datenschutz
Läuft vollständig in Ihrem Browser; nichts wird gesendet oder gespeichert.