Basierend auf all dem Lesen und Grübeln über meine eigenen Websites und nachdem ich gehackt worden bin, bin ich auf die obige Liste gekommen, die Berechtigungen für ein Sicherheits-Plugin für Wordpress namens Wordfence enthält. (Nicht damit verbunden)
In unserem Beispiel ist der Wordpress-Dokumentstamm /var/www/html/example.com/public_html
Öffnen Sie die Berechtigungen, damit www-data wie folgt in den Dokumentstamm schreiben kann:
cd /var/www/html/example.com
sudo chown -R www-data:www-data public_html/
Jetzt können Sie als Administrator von Ihrem Dashboard aus Aktualisierungen durchführen.
Sichern Sie die Website nach Abschluss der Updates, indem Sie die folgenden Schritte ausführen:
sudo chown -R wp-user:wp-user public_html/
Der obige Befehl ändert die Berechtigungen von allem in der Wordpress-Installation auf den Wordpress-FTP-Benutzer.
cd public_html/wp-content
sudo chown -R www-data:wp-user wflogs
sudo chown -R www-data:wp-user uploads
Der obige Befehl stellt sicher, dass das Sicherheits-Plugin Wordfence auf seine Protokolle zugreifen kann. Das Upload-Verzeichnis ist auch beschreibbar von www-data.
cd plugins
sudo chown -R www-data:wp-user wordfence/
Der obige Befehl stellt auch sicher, dass das Sicherheits-Plugin über die erforderlichen Lese- und Schreibberechtigungen für seine ordnungsgemäße Funktion verfügt.
Verzeichnis- und Dateiberechtigungen
# Alle Verzeichnisberechtigungen auf 755 setzen
find . -type d -exec chmod 755 {} \;
# Alle Dateiberechtigungen auf 644 setzen
find . -type f -exec chmod 644 {} \;
Setzen Sie die Berechtigungen für wp-config.php auf 640, damit nur wp-user diese Datei lesen kann und niemand anders. Berechtigungen von 440 haben bei mir nicht mit oben genanntem Dateibesitz funktioniert.
sudo chmod 640 wp-config.php
Automatische Wordpress-Updates mit SSH funktionierten gut mit PHP5, brachen jedoch mit PHP7.0 aufgrund von Problemen mit php7.0-ssh2, das mit Ubuntu 16.04 gebündelt war, und ich konnte nicht herausfinden, wie ich die richtige Version installiere und zum Laufen bringe. Glücklicherweise macht ein sehr zuverlässiges Plugin namens ssh-sftp-updater-support (kostenlos) automatische Updates über SFTP möglich, ohne dass libssh2 benötigt wird. Daher müssen die oben genannten Berechtigungen nur in seltenen Fällen gelockert werden, wenn dies erforderlich ist.