Es hängt tatsächlich von den Plugins ab, die du verwenden möchtest, da einige Plugins das Stammverzeichnis des WordPress ändern. Aber im Allgemeinen empfehle ich etwas Ähnliches wie dies für das WordPress-Verzeichnis.
Dies weist den "root" (oder den Benutzer, den du verwendest) als Benutzer in jeder einzelnen Datei/Ordner zu, R bedeutet rekursiv, so dass es nicht nur beim "html"-Ordner stoppt. Wenn du kein R verwendest, gilt es nur für das "html"-Verzeichnis.
sudo chown -R root:www-data /var/www/html
Dies setzt den Eigentümer/Gruppe von "wp-content" auf "www-data" und ermöglicht somit dem Webserver, die Plugins über das Administrationspanel zu installieren.
chown -R www-data:www-data /var/www/html/wp-content
Dies setzt die Berechtigung jeder einzelnen Datei im "html"-Ordner (einschließlich Dateien in Unterverzeichnissen) auf 644, damit Personen von außen keine Datei ausführen, ändern können, Gruppen keine Datei ausführen, ändern können und nur der Benutzer berechtigt ist, Dateien zu ändern/lesen, aber selbst der Benutzer kann keine Datei ausführen. Dies ist wichtig, weil jede Art von Ausführung im "html"-Ordner verhindert wird. Außerdem kann www-data außerhalb des wp-content-Ordners keine Datei ändern, sodass selbst bei einer Sicherheitslücke im Webserver und wenn jemand unbefugt auf die Website zugreift, sie die eigentliche Website nicht löschen können, außer die Plugins.
sudo find /var/www/html -type f -exec chmod 644 {} +
Dies beschränkt die Berechtigung zum Zugriff auf "wp-config.php" auf Benutzer/Gruppe mit rw-r----- diesen Berechtigungen.
chmod 640 /var/www/html/wp-config.php
Und wenn ein Plugin oder Update sich beschwert, dass es nicht aktualisieren kann, greife auf SSH zu und verwende diesen Befehl, und gewähre der temporären Berechtigung an "www-data" (Webserver), um über das Administrationspanel zu aktualisieren/installieren, und kehre dann zu "root" oder deinem Benutzer zurück, sobald es abgeschlossen ist.
chown -R www-data /var/www/html
Und bei Nginx (gleiches Verfahren für Apache), um den Zugriff auf den wp-admin-Ordner vor unbefugtem Zugriff und Sondierung zu schützen. Apache2-utils ist erforderlich, um das Passwort zu verschlüsseln, auch wenn du Nginx installiert hast, lass das c weg, wenn du planst, weitere Benutzer zur gleichen Datei hinzuzufügen.
sudo apt-get install apache2-utils
sudo htpasswd -c /etc/nginx/.htpasswd Benutzername
Gehe nun zu diesem Ort.
/etc/nginx/sites-available/
Verwende diese Codes, um den "wp-admin"-Ordner mit einem Passwort zu schützen, nun wird es nach dem Passwort/Username fragen, wenn du versuchst auf den "wp-admin"-Bereich zuzugreifen. Beachte, hier verwendest du die ".htpasswd"-Datei, die das verschlüsselte Passwort enthält.
location ^~ /wp-admin {
auth_basic "Restricted";
auth_basic_user_file /etc/nginx/.htpasswd;
index index.php index.html index.htm;
}
Starte nun Nginx neu.
sudo /etc/init.d/nginx restart