chmod -R по какой-то причине делает файлы в дочерних папках нечитаемыми

chmod -R по какой-то причине делает файлы в дочерних папках нечитаемыми

Я настраивал разрешения при настройке некоторых тем 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

Я не могу перейти ни в один из подкаталогов, и я также не могу удалить их. Я никогда не видел ничего подобного, кто-нибудь сталкивался с чем-то подобным?

решение1

Для доступа к содержимому (или, точнее, к метаданным файла, за исключением имени файла) каталога необходимо, чтобы для каталога был установлен бит выполнения.

Ваш рекурсивный chmod удалил это разрешение, поэтому вы потеряли этот доступ. Если вы используете опцию , -Rлучше chmodизбегать использования числовой версии разрешений и вместо этого запустить (используя желаемое состояние в качестве примера) chmod -R ug=rwX,o=rX. Заглавная буква X здесь означает установку бита X только для каталогов или файлов, которые имеют хотя бы один xнабор. Также вы можете использовать 644 ( u=rwX,go=rX), если вам действительно не нужны пользователи группы для записи.

решение2

ИзДокументация Wordpress:

Если у вас есть доступ к оболочке вашего сервера, вы можете рекурсивно изменить права доступа к файлам, используя следующие команды:

Для каталогов:

find /path/to/your/wordpress/install/ -type d -exec chmod 755 {} \;

Для файлов:

find /path/to/your/wordpress/install/ -type f -exec chmod 644 {} \;

Связанный контент