WordPress Dateirechte

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


Diese Seite ist nur ein Entwurf und erhebt keinen Anspruch auf Vollständigkeit oder Richtigkeit! Letztes Upadate 17. Jänner 2024.

Dateirechte im Filesystem am Server

Versionen

  • WordPress jedenfalls bis 6.4.2.

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 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 user     user       4096 Oct 7 11:41 wp-admin
230706554 drwxrwxr-x 2 www-data www-data 4096    Oct 7 18:57 includes
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 user     user       3130 Oct 7 12:27 wp-config.php
113377650  4 -rw-rw-r--  1 user     user       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 user     user      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 user     user      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 user     user      13920 Oct 7 11:35 wp-settings.php
113377937 32 -rw-rw-r--  1 user      user     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.

Der Update-Prozess meckert sofort, wenn etwas nicht passt, meist mit einer FTP-Abfrage.

wp-admin/includes muss www-data gehören, damit man Plugins im Backend updaten kann. Das ist nicht unbedingt logisch, aber unumgänglich.

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.