chmod -R macht Dateien in untergeordneten Ordnern aus irgendeinem Grund unlesbar

chmod -R macht Dateien in untergeordneten Ordnern aus irgendeinem Grund unlesbar

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.

-RIhr rekursiver chmod hat diese Berechtigung entfernt, sodass Sie diesen Zugriff verloren haben. Wenn Sie die Option verwenden, chmodist 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 xSet haben. Sie können auch 644 () verwenden, u=rwX,go=rXes 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 {} \;

verwandte Informationen