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

Versionen

  • WordPress jedenfalls 4.7 und/bis 5.0.3

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 www-data www-data   4096 Oct 7 14:07 .
113377557  4 drwxrwxr-x  3 user     user       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-Installation 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

This site uses Akismet to reduce spam. Learn how your comment data is processed.