WordPress Dateirechte

Upload Fehler WordPress

Darauf stößt der ambitionierte WordPress-Neuling meist sehr früh in seiner Karriere. „Ist das übergeordnete Verzeichnis durch den Server beschreibbar?“ Anscheinend nicht 😉 Dafür sind auf jedem Server Dateirechte verantwortlich. Diese bestimmen, was ein „User“ mit den Dateien anstellen darf und was nicht. „User“ sind z.B. du, der FTP-User oder der Webserver-User.

Die Dateirechte (file permissions) kannst du mit jedem FTP-Programm ändern, den Dateibesitz kannst du meistens über die Bedienoberfläche bei deinem Hoster ändern.

Too long?

  • Der Besitzer der Dateien sollte der Server-User oder dein FTP-User Account sein
  • Dein Server und dein Account sollten der gleichen User-Gruppe angehören.
  • alle Dateien sollten auf 664 stehen
  • alle Ordner sollten auf 755 stehen
  • die wp-config.php sollte auf 660 stehen

User & Gruppen

Auf einem „normalen“ Shared Hosting, wie es die meisten von uns benutzen sind viele FTP-User, die sich einen Server teilen. Auf dem Server liegen z.B. 299 Webseiten und deine. Jeder der FTP-User hat also Zugriff auf den Server mit bestimmten Rechten. Zum Beispiel kannst du ja nur in dein Verzeichnis mit deiner Webseite reingucken, aber nicht bei den anderen.

Neben all den Usern gibt es noch den Server selbst als User. Der Server-User gehört im einfachsten Fall zu einer Gruppe mit dir, dem FTP-User.

Besitzrechte

Wenn wir eine Datei als FTP-User hochladen, sind wir normalerweise gleich die Besitzer dieser Datei auf dem Server. Wir können jeder Datei, die wir besitzen über unser FTP-Programm Dateirechte geben. Wir können jetzt also sagen was wir als Besitzer, was die Gruppe (du und der Server-User), und was „Andere“ mit den Dateien veranstalten dürfen. „Andere“ sind alle, jeder, die Weltbürger mit Internetanschluss. „Andere“ sollten auf keinen Fall Dateien ändern dürfen (write permission). Dann kann nämlich wirklich jeder alles, irgendetwas, z.B. Spam-verschickenden Code in deine Dateien einfügen und deine Webseite hacken.

Was sagen uns die Zahlen?

Dateirechte sehen irgendwie so aus: 755. Lesen ist 4, Schreiben ist 2, Ausführen ist 1. Wenn der Besitzer also Lesen, Schreiben und Ausführen darf ist die erste Zahl der Dateirechte die Summe aus 4+2+1=7. Mit „0“ darf man gar nix, kommt deshalb auch in der Liste nicht vor.

Berechtigungen4: Lesen2: Ändern1: AusführenSumme
Besitzer✔ Lesen✔ Ändern✔ Ausführen7
Gruppe✔ LesenÄndern✔ Ausführen5
Andere✔ LesenÄndern✔ Ausführen5
755

(Auf dem Handy die Tabelle nach links wischen)

Wie brauchen wir das für WordPress?

  • alle Dateien sollten auf 664 stehen
  • alle Ordner sollten auf 755 stehen
  • die wp-config.php sollte auf 660 stehen (bitte beachte, dass das bei einigen Webservern zum Crash führen kann, probiere es dann mit 664)

Was erreichen wir damit?

  • Unser FTP-User darf Dateien lesen und ändern.
  • WordPress (der Webserver-User) darf die Dateien lesen und ändern
  • WordPress darf Dateien und Ordner erstellen, ändern und löschen
  • Andere dürfen auf keinen Fall unsere Datenbankzugangsdaten in der wp-config.php lesen oder ändern

Ein Beispielproblem

Bei all-inkl.com besteht das Problem, dass der Webserver-User nicht in einer Gruppe ist mit dir. Die Dateien gehören erstmal komplett dem FTP-User, also dir. WordPress benutzt aber den Webserver-User. Der darf dann aber keine Dateien und Ordner anlegen, weil er nicht in einer Gruppe ist mit dir, dem FTP-User.

Daher muss man bei all-inkl über das WEBFTP die Dateibesitzrechte anpassen. Der Webserver-User heißt bei all-inkl „PHP-User“. Aber Vorsicht! Wenn du jetzt eine Datei mit deinem FTP-Programm überschreiben willst geht das nicht mehr, denn du als FTP-User bist nicht mehr der Besitzer. Wenn du eine neue Datei mit deinem FTP-Programm hochlädst bist du natürlich auch der Besitzer.

all-inkl-dateirechte

Quelle: https://www.smashingmagazine.com/2014/05/proper-wordpress-filesystem-permissions-ownerships/

Danke an Marc Nilius für die berechtigten Korrekturen: https://www.wp-sicherheit.info/