Ich habe hier nachgesehen, aber keine Details zu den besten Dateiberechtigungen gefunden. Ich habe mir auch hier einige Fragen zu WordPress-Formularen angesehen, aber jeder, der 777 vorschlägt, braucht offensichtlich eine kleine Lektion in Sicherheit.
Kurz gesagt, meine Frage ist dies. Welche Berechtigungen sollte ich für Folgendes haben:
- Stammordner, in dem der gesamte WordPress-Inhalt gespeichert ist
- wp-admin
- wp-Inhalt
- wp-enthält
und dann alle Dateien in jedem dieser Ordner?
Antworten:
Wenn Sie WP einrichten, benötigen Sie (der Webserver) möglicherweise Schreibzugriff auf die Dateien. Daher müssen die Zugriffsrechte möglicherweise lose sein.
Nach dem Setup sollten Sie die Zugriffsrechte verschärfen . Laut Hardening WordPress sollten alle Dateien außer wp-content nur von Ihrem Benutzerkonto beschreibbar sein. wp-content muss auch von www-data beschreibbar sein.
Vielleicht möchten Sie den Inhalt in wp-content später ändern. In diesem Fall könnten Sie
su
,Stellen Sie auf jeden Fall sicher, dass die Dateien über RW-Berechtigungen für WWW -Daten verfügen .
quelle
www-data
??? Das klingt wirklich überhaupt nicht sicher.Es
www-data
kann gefährlich sein , dem Benutzer (in diesem Fall dem Webserver-Benutzer) den vollständigen Zugriff auf alle WP-Dateien zu gewähren . Also mach das lieber NICHT :Dies kann jedoch in dem Moment nützlich sein, in dem Sie WordPress und seine Plug-Ins installieren oder aktualisieren. Aber wenn Sie fertig sind, ist es keine gute Idee mehr, wp-Dateien im Besitz des Webservers zu behalten.
Grundsätzlich kann der Webserver jede Datei auf Ihrer Website einfügen oder überschreiben. Dies bedeutet, dass die Möglichkeit besteht, Ihre Website zu übernehmen, wenn es jemandem gelingt, den Webserver (oder eine Sicherheitslücke in einem .php-Skript) zum Einfügen einiger Dateien in Ihre Website zu verwenden.
Um Ihre Site vor einem solchen Angriff zu schützen, sollten Sie Folgendes tun:
Quelle und zusätzliche Informationen: http://codex.wordpress.org/Hardening_WordPress
quelle
Für diejenigen, die ihren WordPress-Stammordner unter ihrem Basisordner haben:
** Ubuntu / Apache
KREDIT Erteilen von Schreibberechtigungen für die www-Datengruppe
Sie möchten
usermod
Ihren Benutzer anrufen . Das wäre also:** Angenommen, eine
www-data
Gruppe existiertÜberprüfen Sie, ob Ihr Benutzer in einer
www-data
Gruppe ist:groups yourUserName
Sie sollten etwas bekommen wie:
** youUserGroupName ähnelt normalerweise Ihrem Benutzernamen
Ändern Sie rekursiv den Gruppenbesitz des Ordners wp-content, wobei Sie den Besitz Ihres Benutzers beibehalten
chown yourUserName:www-data -R youWebSiteFolder/wp-content/*
Wechseln Sie in das Verzeichnis youWebSiteFolder / wp-content /
cd youWebSiteFolder/wp-content
Ändern Sie rekursiv die Gruppenberechtigungen der Ordner und Unterordner, um Schreibberechtigungen zu aktivieren:
find . -type d -exec chmod -R 775 {} \;
** Der Modus von `/ home / yourUserName / youWebSiteFolder / wp-content / 'wurde von 0755 (rwxr-xr-x) auf 0775 (rwxrwxr-x) geändert.
Ändern Sie die Gruppenberechtigungen der Dateien und Unterdateien rekursiv, um Schreibberechtigungen zu aktivieren:
find . -type f -exec chmod -R 664 {} \;
Das Ergebnis sollte ungefähr so aussehen:
Gleichwertig:
chmod -R ug + rw Ordnername
Die Berechtigungen betragen 664 für Dateien oder 775 für Verzeichnisse.
Ps Wenn jemand
'could not create directory'
beim Aktualisieren eines Plugins auf einen Fehler stößt , gehenserver@user:~/domainame.com$ sudo chown username:www-data -R wp-content
Sie wie folgt vor: Wenn Sie sich im Stammverzeichnis Ihrer Domain befinden.
Angenommen: Verfügt
wp-config.php
überFTP-Anmeldeinformationen für LocalHost
define('FS_METHOD','direct');
quelle
Lesen Sie am besten die WordPress-Dokumentation unter https://wordpress.org/support/article/changing-file-permissions/.
quelle
Ich setze Berechtigungen auf:
In meinem Fall habe ich einen bestimmten Benutzer für WordPress erstellt, der sich vom Apache-Standardbenutzer unterscheidet und den Zugriff aus dem Web auf die Dateien dieses Benutzers verhindert.
Anschließend erhält der Apache-Benutzer die Berechtigung, den Upload-Ordner zu verwalten und schließlich ausreichend sichere Datei- und Ordnerberechtigungen festzulegen.
BEARBEITET
Wenn Sie W3C Total Cache verwenden, sollten Sie auch Folgendes ausführen:
Dann wird es funktionieren!
BEARBEITET
Nach einer Weile der Entwicklung von WordPress-Sites würde ich unterschiedliche Dateiberechtigungen pro Umgebung empfehlen:
In der Produktion würde ich Benutzern keinen Zugriff gewähren, um das Dateisystem zu ändern. Ich werde ihnen nur erlauben, Ressourcen hochzuladen und Zugriff auf einige Plugins-spezifische Ordner zu gewähren, um Backups usw. durchzuführen. Aber Projekte unter Git verwalten und Bereitstellungsschlüssel auf dem verwenden Server, es sind keine guten Update-Plugins für Staging oder Produktion. Ich lasse hier das Setup der Produktionsdatei:
www-data: www-data = Apache- oder Nginx-Benutzer und -Gruppe
Staging hat dieselben Produktionsberechtigungen wie ein Klon.
Schließlich hat die Entwicklungsumgebung Zugriff auf Update-Plugins, Übersetzungen, alles ...
www-data: www-data = Apache- oder Nginx-Benutzer und Gruppe your-user: root-group = Ihr aktueller Benutzer und die Root-Gruppe
Mit diesen Berechtigungen erhalten Sie Zugriff auf die Entwicklung unter
themes
undyour-plugin
Ordner, ohne um Erlaubnis zu bitten. Der Rest des Inhalts gehört dem Apache- oder Nginx-Benutzer, damit WP das Dateisystem verwalten kann.Führen Sie vor dem Erstellen eines Git-Repos zunächst die folgenden Befehle aus:
quelle
Die korrekten Berechtigungen für die Datei sind 644. Die korrekten Berechtigungen für den Ordner sind 755
Verwenden Sie zum Ändern der Berechtigungen das Terminal und die folgenden Befehle.
755 für Ordner und 644 für Dateien.
quelle
Ich denke, die folgenden Regeln werden für eine Standard-WordPress-Site empfohlen:
Legen Sie für Ordner in wp-content 0755-Berechtigungen fest:
chmod -R 0755 Plugins
chmod -R 0755 Uploads
chmod -R 0755 Upgrade
Lassen Sie den Apache-Benutzer der Eigentümer der oben genannten Verzeichnisse von wp-content sein:
Chown Apache Uploads
Chown Apache Upgrade
Chown Apache Plugins
quelle
Dies hängt tatsächlich von den Plugins ab, die Sie verwenden möchten, da einige Plugins das Stammdokument von WordPress ändern. Aber im Allgemeinen empfehle ich so etwas für das WordPress-Verzeichnis.
Dadurch wird das "root" (oder was auch immer der Benutzer, den Sie verwenden) als Benutzer in jeder einzelnen Datei / jedem einzelnen Ordner zugewiesen. R bedeutet rekursiv, sodass es nicht beim "html" -Ordner endet. Wenn Sie R nicht verwendet haben, gilt dies nur für das Verzeichnis "html".
Dadurch wird der Eigentümer / die Gruppe von "wp-content" auf "www-data" gesetzt, sodass der Webserver die Plugins über das Admin-Panel installieren kann.
Dadurch wird die Berechtigung jeder einzelnen Datei im Ordner "html" (einschließlich Dateien in Unterverzeichnissen) auf 644 festgelegt, sodass externe Personen keine Datei ausführen, keine Datei ändern können, keine Gruppe eine Datei ausführen kann, keine Datei ändern kann und nur Der Benutzer darf Dateien ändern / lesen, aber selbst der Benutzer kann keine Datei ausführen. Dies ist wichtig, da es jede Art von Ausführung im "HTML" -Ordner verhindert, auch da der Besitzer des HTML-Ordners und alle anderen Ordner außer dem Ordner "wp-content" "root" (oder Ihr Benutzer) sind, können die www-Daten ' t Ändern Sie keine Dateien außerhalb des Ordners wp-content. Selbst wenn auf dem Webserver eine Sicherheitsanfälligkeit vorliegt und jemand unbefugt auf die Site zugreift, kann er die Haupt-Site nur mit den Plugins löschen.
Dies beschränkt die Berechtigung zum Zugriff auf "wp-config.php" auf Benutzer / Gruppen mit rw-r ----- diesen Berechtigungen.
Wenn sich ein Plugin oder Update beschwert, dass es nicht aktualisiert werden kann, greifen Sie auf SSH zu und verwenden Sie diesen Befehl. Erteilen Sie "www-data" (Webserver) die temporäre Berechtigung zum Aktualisieren / Installieren über das Admin-Panel und kehren Sie dann zurück zurück zum "root" oder Ihrem Benutzer, sobald es abgeschlossen ist.
Und in Nginx (dasselbe Verfahren für den Apache), um den Ordner wp-admin vor unbefugtem Zugriff und Prüfen zu schützen. apache2-utils ist erforderlich, um das Kennwort zu verschlüsseln, auch wenn Sie nginx installiert haben. Lassen Sie c weg, wenn Sie weitere Benutzer zur gleichen Datei hinzufügen möchten.
Besuchen Sie jetzt diesen Ort
Verwenden Sie diese Codes, um den Ordner "wp-admin" mit einem Kennwort zu schützen. Jetzt werden Sie nach dem Kennwort / Benutzernamen gefragt, ob Sie versucht haben, auf den Ordner "wp-admin" zuzugreifen. Beachten Sie, dass Sie hier die Datei ".htpasswd" verwenden, die das verschlüsselte Passwort enthält.
Starten Sie nun den Nginx neu.
quelle
Befehle:
Wobei ftp-user der Benutzer ist, mit dem Sie die Dateien hochladen
quelle
$(whoami)
anstelle von verwendenftp-user
. Standardmäßig ist Ihr aktueller Benutzer ( nicht root ) Ihr FTP-Benutzer, wenn Sie Ihren eigenen Server (lokal, vps usw.) verwendenVerwenden Sie ein Sicherheits-Plugin wie das folgende, um sicherzustellen, dass Ihre Website sicher ist und Sie die richtigen Berechtigungen für Ihre Ordner verwenden:
https://en-ca.wordpress.org/plugins/all-in-one-wp-security-and-firewall/
https://en-ca.wordpress.org/plugins/wordfence/
Diese Plugins scannen Ihre Wordpress-Installation und benachrichtigen Sie über mögliche Probleme. Diese warnen Sie auch vor unsicheren Ordnerberechtigungen. Darüber hinaus empfehlen Ihnen diese Plugins, welche Berechtigungen den Ordnern zugewiesen werden sollen.
quelle
quelle
Ich kann Ihnen nicht sagen, ob dies korrekt ist oder nicht, aber ich verwende ein Bitnami-Bild über Google Compute App Engine. Ich habe Probleme mit Plugins und Migration, und nachdem ich die Dinge durch chmod'ing-Berechtigungen weiter durcheinander gebracht habe, habe ich diese drei Zeilen gefunden, die alle meine Probleme gelöst haben. Ich bin mir nicht sicher, ob es der richtige Weg ist, habe aber für mich funktioniert.
quelle
Verwenden Sie für OS X diesen Befehl:
quelle
In der Datei wp_config definieren.
chown - Ändert den Besitz von Dateien / Verzeichnissen. Dh. Der Eigentümer der Datei / des Verzeichnisses ändert sich in das angegebene, ändert jedoch nicht die Berechtigungen.
quelle
Basierend auf all dem Lesen und Qualen auf meinen eigenen Websites und nachdem ich gehackt wurde, habe ich die obige Liste erstellt, die Berechtigungen für ein Sicherheits-Plugin für Wordpress namens Wordfence enthält. (Nicht damit verbunden)
In unserem Beispiel lautet der Stamm des WordPress-Dokuments /var/www/html/example.com/public_html
Öffnen Sie die Berechtigungen, damit www-data wie folgt in das Dokumentstammverzeichnis schreiben kann:
Jetzt können Sie über das Dashboard auf Ihrer Website als Administrator Aktualisierungen durchführen.
Sichern Sie die Site nach Abschluss der Updates wie folgt:
Der obige Befehl ändert die Berechtigungen für alles in der WordPress-Installation für den WordPress-FTP-Benutzer.
Der obige Befehl stellt sicher, dass das Sicherheits-Plugin Wordfence Zugriff auf seine Protokolle hat. Das Upload-Verzeichnis kann auch von www-data geschrieben werden.
Der obige Befehl stellt außerdem sicher, dass das Sicherheits-Plugin für seine ordnungsgemäße Funktion Lese- und Schreibzugriff benötigt.
Verzeichnis- und Dateiberechtigungen
Setzen Sie die Berechtigungen für wp-config.php auf 640, damit nur wp-user diese Datei lesen kann und sonst niemand. Berechtigungen von 440 haben bei mir mit dem oben genannten Dateibesitz nicht funktioniert.
Automatische Wordpress-Updates mit SSH funktionierten einwandfrei 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 finden, wie ich die richtige Version installieren und zum Laufen bringen konnte. Glücklicherweise ermöglicht ein sehr zuverlässiges Plugin namens ssh-sftp-updater-support (kostenlos) automatische Updates mit SFTP, ohne dass libssh2 erforderlich ist. Daher müssen die oben genannten Berechtigungen nur in seltenen Fällen nach Bedarf gelöst werden.
quelle