Ich habe beim Einrichten einiger WordPress-Themes die Berechtigungen angepasst und Folgendes ausgeführt: chmod 664 -R theme-dir/*
Es hat bei den Dateien im Stammverzeichnis problemlos funktioniert, aber alle Dateien in den Unterverzeichnissen sehen jetzt folgendermaßen aus, wenn ich ls -l
:
?--------- ? ? ? ? ? core_functions.php
?--------- ? ? ? ? ? css
?--------- ? ? ? ? ? custom_functions.php
?--------- ? ? ? ? ? images
?--------- ? ? ? ? ? import_settings.php
?--------- ? ? ? ? ? js
?--------- ? ? ? ? ? options_trim.php
?--------- ? ? ? ? ? page_templates
?--------- ? ? ? ? ? post_thumbnails_trim.php
?---------+ ? ? ? ? ? shortcodes
Ich kann nicht in eines der Unterverzeichnisse wechseln und sie auch nicht löschen. So etwas habe ich noch nie erlebt. Ist jemandem schon mal etwas Ähnliches passiert?
Antwort1
Für den Zugriff auf den Inhalt (oder genauer gesagt auf die Dateimetadaten mit Ausnahme des Dateinamens) eines Verzeichnisses muss das Ausführungsbit für das Verzeichnis gesetzt sein.
-R
Ihr rekursiver chmod hat diese Berechtigung entfernt, sodass Sie diesen Zugriff verloren haben. Wenn Sie die Option verwenden, chmod
ist es besser, die numerische Version der Berechtigungen zu vermeiden und stattdessen (mit Ihrem gewünschten Status als Beispiel) auszuführen chmod -R ug=rwX,o=rX
. Das große X bedeutet hier, dass das X-Bit nur bei Verzeichnissen oder Dateien gesetzt wird, die mindestens ein x
Set haben. Sie können auch 644 () verwenden, u=rwX,go=rX
es sei denn, Sie benötigen wirklich Gruppenbenutzer zum Schreiben.
Antwort2
Von demWordpress-Dokumentation:
Wenn Sie Shell-Zugriff auf Ihren Server haben, können Sie die Dateiberechtigungen rekursiv mit den folgenden Befehlen ändern:
Für Verzeichnisse:
find /path/to/your/wordpress/install/ -type d -exec chmod 755 {} \;
Für Dateien:
find /path/to/your/wordpress/install/ -type f -exec chmod 644 {} \;