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 -R
opçã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 x
conjunto. 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
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 {} \;