chmod-Rechner

Kreuzen Sie an, wer eine Datei lesen, schreiben und ausführen darf, oder tippen Sie eine Zahl wie 755 ein. Sie erhalten die oktale und die symbolische Schreibweise und den Befehl zum Ausführen, dazu wofür die gängigen Werte gedacht sind.

Wer was darf
LesenSchreibenAusführen
Besitzer 7
Gruppe 5
Andere 5
Spezielle Bits
chmod-Zahl 755 rwxr-xr-x
Buchstaben
rwxr-xr-x
ls -l, Datei
-rwxr-xr-x
ls -l, Ordner
drwxr-xr-x
Mit der Zahl
chmod 755 file
Mit Buchstaben
chmod u=rwx,g=rx,o=rx file

Auf einem VPS legen Sie die Rechte selbst fest: Sie haben Root-Zugriff und können jeder Website einen eigenen Linux-Benutzer geben. Heute ab 3,02 € im Monat (Auswahl: 2.226 Server).

Gängige Rechte

ModusBuchstabenVerwendung
rwxr-xr-xOrdner, Skripte und Programme: Der Besitzer ändert sie, alle dürfen sie lesen und ausführen.
rw-r--r--Normale Dateien einer Website: Der Besitzer schreibt, alle lesen.
rwxr-x---Wie 755, aber Benutzer außerhalb der Gruppe haben keinen Zugriff.
rw-r-----Konfigurationsdateien, die die Gruppe des Webservers lesen muss, etwa wp-config.php.
rwx------Private Ordner und Skripte, etwa ~/.ssh.
rw-------Geheimnisse, die nur der Besitzer liest und schreibt: private SSH-Schlüssel, .env-Dateien.
r--------Nur lesbar für den Besitzer, etwa bei einem Schlüssel, der sich nie ändern soll.
rwxrwxrwxJeder darf lesen, schreiben und ausführen. Vermeiden Sie das: Jeder Benutzer oder jedes gehackte Skript auf dem Server kann die Datei ändern.

Rechte für eine Website

Ordner 755 und Dateien 644 passen für die meisten Websites: Der Benutzer, der deployt, schreibt, der Webserver liest. Führen Sie diese Befehle im Ordner der Website aus und setzen Sie dann Geheimnisse wie wp-config.php oder .env auf 640 oder 600.

bash
find /var/www/example.com -type d -exec chmod 755 {} +
find /var/www/example.com -type f -exec chmod 644 {} +
chmod 640 /var/www/example.com/wp-config.php

Läuft in Ihrem Browser: Nichts, was Sie eingeben, wird irgendwohin gesendet.

So wird gerechnet

Jede Datei hat drei Rechtegruppen: für ihren Besitzer, für ihre Gruppe und für alle anderen. Jede Gruppe hat drei Bits, Lesen (4), Schreiben (2) und Ausführen (1), und eine oktale Ziffer ist ihre Summe.

Ziffer = Lesen 4 + Schreiben 2 + Ausführen 1
Modus = Besitzer, Gruppe, Andere
755 = rwx (4+2+1) r-x (4+1) r-x (4+1)
644 = rw- (4+2) r-- (4) r-- (4)

Eine vierte Ziffer davor enthält die speziellen Bits: Setuid 4, Setgid 2 und Sticky 1. ls zeigt sie an den Stellen des Ausführungsrechts an, s für Setuid oder Setgid und t für Sticky, als Großbuchstabe, wenn das Ausführungsbit darunter nicht gesetzt ist. Bei einem Ordner bedeutet Ausführen das Recht, ihn zu betreten, daher brauchen Ordner ein x, wo einfache Dateien keins brauchen.

Beispiel

chmod 640 wp-config.php: Der Besitzer liest und schreibt (6 = 4 + 2), die Gruppe liest (4) und andere haben keinen Zugriff (0). ls -l zeigt dann -rw-r-----, und der Webserver kann die Datei nur lesen, wenn er in der Gruppe der Datei ist.

Fragen

Was bedeutet chmod 755?

Der Besitzer darf lesen, schreiben und ausführen (7), die Gruppe und alle anderen dürfen lesen und ausführen (je 5). ls -l zeigt es als rwxr-xr-x. Es ist der übliche Modus für Ordner sowie für Skripte und Programme, die andere ausführen müssen.

Was ist der Unterschied zwischen 644 und 755?

Nur das Ausführungsbit. 644 (rw-r--r--) lässt den Besitzer schreiben und alle lesen; 755 lässt zusätzlich alle ausführen. Einfache Dateien wie HTML, Bilder und PHP-Dateien brauchen 644, Ordner und Skripte, die selbst laufen, brauchen 755.

Warum sollte ich chmod 777 nicht verwenden?

777 erlaubt jedem Benutzer und Prozess auf dem Server, die Datei zu ändern. Wird eine Website oder ein Plugin gehackt, kann der Angreifer alles überschreiben, was 777 hat. Einen Rechtefehler behebt man besser, indem man die Datei mit chown dem richtigen Benutzer zuweist oder den Webserver zur Gruppe der Datei hinzufügt.

Wie ändere ich die Rechte aller Dateien in einem Ordner?

chmod -R 755 folder ändert alles darin, Dateien eingeschlossen, und macht damit jede Datei ausführbar. Um Ordner und Dateien zu trennen, nutzen Sie find: find folder -type d -exec chmod 755 {} + für Ordner und find folder -type f -exec chmod 644 {} + für Dateien.