WordPress Dateirechte

Thema: Ubuntu – MariaDB – WordPress – Apache – CleanBlogg Theme.


Diese Seite ist nur ein Entwurf und erhebt keinen Anspruch auf Vollständigkeit oder Richtigkeit!

Dateirechte im Filesystem am Server

Beim Installieren braucht man unter Umständen offenere Rechte als im Normalbetrieb. Nach dem Installieren sollten die Rechte in den einzelnen WordPress-Ordnern strenger gesetzt sein:

root@server/home/user/www/newblog.domain.tdl/wordpress # ls -lias
total 196
114167974  4 drwxr-xr-x  5 user     user      4096 Oct  7 14:07 .
113377557  4 drwxrwxr-x  3 www-data www-data  4096 Oct  7 12:23 ..
113377566  4 -rw-rw-r--  1 user     user       418 Oct  7 11:35 index.php
113377567 20 -rw-rw-r--  1 user     user     19935 Oct  7 11:35 license.txt
113377600  8 -rw-rw-r--  1 user     user      7344 Oct  7 11:35 readme.html
113377602  8 -rw-rw-r--  1 user     user      5456 Oct  7 11:35 wp-activate.php
113523171  4 drwxr-xr-x  9 www-data www-data  4096 Oct  7 11:41 wp-admin
113377606  4 -rw-rw-r--  1 user     user       364 Oct  7 11:35 wp-blog-header.php
113377612  4 -rw-rw-r--  1 user     user      1477 Oct  7 11:35 wp-comments-post.php
114167977  4 -rw-rw-rw-  1 www-data www-data  3130 Oct  7 12:27 wp-config.php
113377650  4 -rw-rw-r--  1 www-data www-data  2853 Oct  7 11:35 wp-config-sample.php
113785980  4 drwxr-xr-x  7 www-data www-data  4096 Oct  7 14:44 wp-content
113377654  4 -rw-rw-r--  1 user     user      3286 Oct  7 11:35 wp-cron.php
113378267 12 drwxr-xr-x 17 www-data www-data 12288 Oct  7 11:37 wp-includes
113377722  4 -rw-rw-r--  1 user     user      2382 Oct  7 11:35 wp-links-opml.php
113377740  4 -rw-rw-r--  1 user     user      3353 Oct  7 11:35 wp-load.php
113377852 36 -rw-rw-r--  1 www-data www-data 34057 Oct  7 11:35 wp-login.php
113377920  8 -rw-rw-r--  1 user     user      7786 Oct  7 11:35 wp-mail.php
113377925 16 -rw-rw-r--  1 www-data www-data 13920 Oct  7 11:35 wp-settings.php
113377937 32 -rw-rw-r--  1 www-data www-data 29890 Oct  7 11:35 wp-signup.php
113377942  4 -rw-rw-r--  1 user     user      4035 Oct  7 11:35 wp-trackback.php
113377969  4 -rw-rw-r--  1 user     user      3064 Oct  7 11:35 xmlrpc.php

Für den Normalbetrieb ohne Updates im Backend reicht es, wenn wenn wp-content dem User www-data  gehört. Alle anderen sollten einem System-User zugeordnet sein, so dass dort für Webzugriffe keine Schreibrechte bestehen. Die betroffenen Zeilen sind oben grün markiert. Sie waren nötig beim Update auf 4.8 und 4.8.3. Je nach Art des Updates  im Backend (für WordPress selber, die Plugins, Themen), braucht es auch in weiteren Ordnern/Dateien Schreibrechte.

Der Update-Prozess meckert sofort, wenn etwas nicht passt:

  • Es kommt ein Listing der Ordner/Dateien, die schreibberechtigt sein müssen. In diesem Fall sind diese Berechtigungen zu adaptieren.
  • Es folgt gar eine Abfrage des FTP-Logins. Dies passiert, wenn für Updates zuerst gezippte Dateien in den Basisordner geladen werden, ggf. muss auch dieser dem User  www-data gehören. Hier aber nur der Ordner und nicht der gesamte Inhalt!

Man kann unter wp-content/ noch differenzieren, aber solange man Themen oder Plugins installiert ist es besser wenn alle Daten www-data gehören.

Zusätzliche Sicherungschritte zb. hier:
https://www.drweb.de/magazin/eine-wordpress-installation-korrekt-absichern/.

Error 403 Forbidden

Es handelt sich beim Serverfehler 403 um ein klassisches Ärgernis. Sehr oft hängt es mit den Dateirechten (oben) zusammen, oft mit den sog. RewriteRules, die in der Apache-Konfiguration oder in einer .htaccess-Datei im Dateisystem bei der WordPress-Installatin liegt. Diese RewriteRules werden gebraucht, um „schöne“ URLs zu haben, die unter „Einstellungen/Permalinks“ definiert werden können.

Bei Virtual Hosts (ein Webserver für mehrere Domains) kann eine Basiskonfiguartion des Servers zu streng sein, dass der inhalt der standardmässigen .htaccess-Datei ausreicht. Oder wie bei mir letzthin, dass sich gewisse Anweisungen auf unterschiedlichen Ebenen widersprechen. In dem Fall hilft ein blick in die Apache-Server-Logs (oft unter /var/log/apache2/sub.domain.tld-error.log).

Das kann dann so aussehen:

[rewrite:error] ...  Options FollowSymLinks and SymLinksIfOwnerMatch are both off, so the RewriteRule directive is also forbidden due to its similar ability to circumvent directory restrictions ...

Mit zusätzlichen Optionen kann man die  RewriteRules wieder aktivieren. Hier unten ein Beispiel. Grün die Standard-Regeln die WordPress für eine .htaccess-Datei mitliefert. Blau die Ergänzung um gesperrte RewriteRules im gegebenen Bereich zu ermöglichen. Rot die Bereichsdefinition falls man dieses Regelwerk direkt in der Apache-Konfiguration verwaltet.

 <IfModule mod_rewrite.c>
   <Directory /home/user/sites/sub.domain.tld/wordpress>
     Options +FollowSymLinks
     RewriteEngine On
     RewriteBase /
     RewriteRule ^index\.php$ - [L]
     RewriteCond %{REQUEST_FILENAME} !-f
     RewriteCond %{REQUEST_FILENAME} !-d
     RewriteRule . /index.php [L]
   </Directory>
 </IfModule>

Avec ce cadran an inox et sa pointe au centre on pourrait viser et identifier les montagnes, si on les voyait mieux (forte pluie).

Panoramatafel aus Edelstahl im Regen

No Comments

Leave a Comment