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
Я не могу подключиться к любому из подкаталогов, и я также не могу их удалить. Я никогда не видел ничего подобного, кто-нибудь сталкивался с чем-то подобным?
2 ответа
Доступ к содержимому (или, более конкретно, метаданных файла, за исключением имени файла) каталога требует, чтобы в каталоге был установлен бит выполнения.
Рекурсивный 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 {} \;