quarta-feira, 21 de novembro de 2012

chmod "X"

A permissão de execução é necessária em diretórios (é a permissão para entrar neles), porém em arquivos geralmente não é necessária, nem recomendada por questões de segurança.

Então você tem aquela pasta atolada de subpastas e arquivos com uma bagunça nas permissões. Um

chmod -R <modo octal> /pasta

era o que usava. Como não é feita diferenciação entre pastas e arquivos, eu colocava a permissão para as pastas (com o bit de execução) e depois rodava novamente o chmod através do find para retirar o bit de execução dos arquivos:

find /pasta -type f -exec chmod a-x {} \;

(ou ao contrário, de acordo com o seu gosto)

Existe outro jeito, que não requer o find. O chmod tem, no modo literal, a permissão especial "X" (maiúsculo), que coloca o bit de execução apenas se o alvo for um diretório ou se o bit já estiver configurado no arquivo. Então, se você primeiro remover qualquer ocorrência do bit de execução (para cobrir a segunda possibilidade) e depois usar "X", terá o resultado esperado:

chmod -R a-x /pasta
chmod -R ug=rwX,o=rX /pasta

(664 para arquivos e 775 para diretórios)

Nenhum comentário:

Postar um comentário