Korrekte Linux chmod Rechte für WordPress-Aktualisierungen

Korrekte Linux chmod Rechte für WordPress-Aktualisierungen

WordPress sowie deren Plugins erhalten regelmäßig Aktualisierungen. Häufig werden dabei Sicherheitslücken geschlossen. Es empfiehlt sich daher, diese Updates unbedingt so schnell wie möglich einzuspielen. Ansonsten ist die WordPress-Installation verwundbar für Angreifer, mit verheerenden Folgen für den Seitenbetreiber sowie deren Besucher: Beispielsweise könnte die Seite unbemerkt zur Verbreitung von Schadsoftware verwendet werden. Glücklicherweise bietet WordPress von Haus aus ein Update-System an, das den Kern sogar selbstständig aktualisieren kann. Dieser Artikel zeigt, welche Rechte dabei auf dem Server gesetzt werden müssen. Wir gehen hierbei von einem Linux-Server aus. Dort werden die meisten PHP-Seiten und somit auch WordPress-Installationen gehostet, da es dort effektiv am besten läuft.

Prüfen der Rechte

Da WordPress eine Fallback-Lösung via FTP eingebaut hat, lässt sich bereits über das Admin-Backend sehr einfach überprüfen, ob die notwendigen Rechte vorhanden sind. Zumindest sofern bereits ausstehende Updates existieren. In diesem Fall navigiert man links zu Dashboard > Aktualisierungen und versucht beispielsweise ein Plugin-Update durchzuführen. Erscheint dabei die oben zu sehende Maske in der man Zugangsdaten eines FTP-Servers eingeben soll, sind die Rechte unvollständig oder gar nicht gesetzt worden. In diesem Fall müsst ihr die folgenden zwei Schritte durchführen.

 

Setzen des Eigentümer-Benutzers und Gruppe

Unter Linux gehört jede Datei und jedes Verzeichnis einem Benutzer bzw. einer Gruppe. Für eine WordPress-Installation sollte das gesamte Root-Verzeichnis der Nutzer und Gruppe gehören, unter der PHP läuft. Mit PHP-FPM können diese beiden in der Konfigurationsdatei der jeweiligen Seite wie folgt hinterlegt werden:

user = www-data
group = www-data

Dieses Beispiel zeigt die Standardwerte. Je nach Konfiguration können hier aber auch andere Nutzer angegeben werden. Der Besitzer-Nutzer sowie die Gruppe werden wie folgt gesetzt:

chown www-data:www-data -R /var/www/example.com/pub_html/* 

Damit gehört das gesamte Verzeichnis /var/www/example.com/pub_html/ inklusive allen Dateien und Unterverzeichnissen dem Nutzer www-data sowie der gleichnamigen Gruppe. Je nach Konfiguration muss der Pfad sowie ggf. auch die Namen von Nutzer und Gruppe angepasst werden.

Zuweisung der korrekten Verzeichnis-Rechte mittels chmod

Nun müssen wir noch konkret definieren, was der inhabende Nutzer und die Gruppe dürfen. Dafür nutzen wir das Werkzeug chmod:

find . -type d -exec chmod 755 {} \;

Was passiert hier? Zunächst suchen wir alle Ordner (-type d steht für Directory) und führen auf diese unseren chmod-Befehl aus. Ein kleiner Crashkurs zur Rechtevergabe mittels chmod: Die erste Zahl steht für den inhabenden Nutzer und die zweite für die Gruppe – in unserem Beispiel jeweils www-data genannt. Mit der letzten Zahl wird festgelegt, was alle anderen Benutzer dürfen. Die Zahlen stehen für die Rechte: 4 = Read (Dateien lesen), 2 = Write (Dateien schreiben oder verändern) und 1 steht für Execute (beispielsweise für das Ausführen von Scripten benötigt). Durch addieren lassen sich die Rechte wie in einer Bitmaske kombinieren. Im Falle von 755 darf der inhabende Benutzer (7) also alles: 4 + 2 + 1 = 7. Die inhabende Gruppe sowie alle anderen Nutzer können dagegen lediglich lesen und ausführen ( 4 + 1 = 5).

Dasselbe machen wir nun mit den Dateien:

find . -type f -exec chmod 644 {} \;

Wie man sieht ist der Aufruf sehr ähnlich. Allerdings suchen wir in diesem Fall nach Dateien (File) und vergeben etwas weniger Rechte. WordPress hat nun die Möglichkeit, neue Dateien herunterzuladen sowie die vorhandenen zu modifizieren. Letzteres ist beispielsweise dann nötig, wenn eine Datei verändert wurde und WordPress die alte Datei mit der aktualisierten Version ersetzen muss.

Leave a Reply