Eu quero chmod
muitos arquivos e diretórios. Como x
indica a lista de diretórios e a execução de arquivos regulares que eu gostaria de aplicar rw
para arquivos e rwx
diretórios. É possível usar apenas o chmod
comando?
Caso contrário, qual é a maneira mais conveniente?
Fazer uma chmod -R 770
não é uma possibilidade, pois não quero que os arquivos regulares se tornem executáveis.
linux
permissions
file-management
Excluído
fonte
fonte
Respostas:
Eu faço isso ocasionalmente usando um único
find
comando. Feio, mas eficaz.fonte
find . -type d -exec chmod -vc 755 "{}" \;
(incluindo-vc
alguns comentários). (E talvez, só para esclarecer, adicione os dois comandos independentes para a resposta bem?)Use a permissão X, na página de manual:
Faça o seguinte:
Isso remove o bit de execução de todos os arquivos e diretórios, seguido pela adição de privilégios de leitura e gravação a tudo e executa privilégios apenas aos diretórios. (Nenhum arquivo regular possui o bit de execução mais desde o primeiro passo.)
fonte
chmod -R a-x [directory]
seguido porchmod -R a+rwX [directory]
?a-x
, o diretório não está acessível. De fato, o chmod falha com a permissão negada e não remove o bit executável dos arquivos dentro do diretório. Existe uma maneira de fazer isso sem ser raiz?Você também pode usar
find
junto comxargs
:onde
-type
especifica de d irectory ou f ile.fonte
xargs
é inteligente o suficiente para quebrar longas linhas de comando em várias execuções. Consulte sua página de manual do xargs e verifiquexargs --show-limits
.