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 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 o cd para nenhum dos subdiretórios e também não posso excluí-los. Eu nunca vi nada assim, alguém já encontrou algo parecido?
linux
permissions
chmod
Sal
fonte
fonte
chmod -R u+rwX,go+rX,go-w theme-dir/*
Respostas:
O acesso ao conteúdo (ou mais especificamente aos metadados do arquivo, exceto pelo 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 de,chmod
é melhor evitar usar a versão numérica das permissões e, em vez disso, execute (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 umx
conjunto. Além disso, convém usar o 644 (u=rwX,go=rX
), a menos que você realmente precise que os usuários do grupo escrevam.fonte
Na documentação do Wordpress :
Se você tiver acesso de shell ao seu servidor, poderá alterar as permissões de arquivo recursivamente usando os seguintes comandos:
Para diretórios:
Para arquivos:
fonte