chmod -R torna os arquivos em pastas filhas ilegíveis por algum motivo

chmod -R torna os arquivos em pastas filhas ilegíveis por algum motivo

Eu estava ajustando as permissões ao configurar alguns temas do WordPress e executei. chmod 664 -R theme-dir/*Funcionou bem nos arquivos na raiz do diretório, mas todos os arquivos nos subdiretórios agora são lidos assim quando eu ls -l:

?---------  ? ? ? ?            ? core_functions.php
?---------  ? ? ? ?            ? css
?---------  ? ? ? ?            ? custom_functions.php
?---------  ? ? ? ?            ? images
?---------  ? ? ? ?            ? import_settings.php
?---------  ? ? ? ?            ? js
?---------  ? ? ? ?            ? options_trim.php
?---------  ? ? ? ?            ? page_templates
?---------  ? ? ? ?            ? post_thumbnails_trim.php
?---------+ ? ? ? ?            ? shortcodes

Não consigo fazer cd para nenhum dos subdiretórios e também não consigo excluí-los. Nunca vi nada assim, alguém já passou por algo parecido?

Responder1

Acessar o conteúdo (ou mais especificamente os metadados do arquivo, exceto o nome do arquivo) de um diretório requer que o diretório tenha o bit de execução definido.

Seu chmod recursivo removeu essa permissão, então você perdeu esse acesso. Se você estiver usando a -Ropção, chmodé melhor evitar usar a versão numérica das permissões e, em vez disso, executar (usando o estado desejado como exemplo) chmod -R ug=rwX,o=rX. O X maiúsculo significa definir o bit X apenas em diretórios ou arquivos que possuem pelo menos um xconjunto. Além disso, você pode querer usar 644 ( u=rwX,go=rX), a menos que realmente precise que os usuários do grupo escrevam.

Responder2

DeDocumentação WordPress:

Se você tiver acesso shell ao seu servidor, poderá alterar as permissões de arquivo recursivamente usando os seguintes comandos:

Para diretórios:

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

Para arquivos:

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

informação relacionada