Я настраивал разрешения при настройке некоторых тем WordPress и запустил chmod 664 -R theme-dir/*
Он отлично работал с файлами в корне каталога, но все файлы в подкаталогах теперь читаются так, когда я ls -l
:
?--------- ? ? ? ? ? core_functions.php
?--------- ? ? ? ? ? css
?--------- ? ? ? ? ? custom_functions.php
?--------- ? ? ? ? ? images
?--------- ? ? ? ? ? import_settings.php
?--------- ? ? ? ? ? js
?--------- ? ? ? ? ? options_trim.php
?--------- ? ? ? ? ? page_templates
?--------- ? ? ? ? ? post_thumbnails_trim.php
?---------+ ? ? ? ? ? shortcodes
Я не могу перейти ни в один из подкаталогов, и я также не могу их удалить. Я никогда не видел ничего подобного, кто-нибудь сталкивался с чем-то подобным?
Для доступа к содержимому (или, более конкретно, к метаданным файла, за исключением имени файла) каталога требуется, чтобы в каталоге был установлен бит выполнения.
Ваш рекурсивный chmod удалил это разрешение, поэтому вы потеряли этот доступ. Если вы используете -R
вариант chmod
Лучше избегать использования числовой версии разрешений и вместо этого запускать (используя желаемое состояние в качестве примера) chmod -R ug=rwX,o=rX
. Заглавная буква X означает, что бит X устанавливается только для каталогов или файлов, в которых есть хотя бы один x
устанавливать. Также вы можете использовать 644 (u=rwX,go=rX
), если вам действительно не нужна группа пользователей для записи.
Если у вас есть доступ к серверу через оболочку, вы можете рекурсивно изменять права доступа к файлам, используя следующие команды:
Для справочников:
find /path/to/your/wordpress/install/ -type d -exec chmod 755 {} \;
Для файлов:
find /path/to/your/wordpress/install/ -type f -exec chmod 644 {} \;