Acabei de encontrar isto: chmod a=rX
, que resolve o meu problema. Do homem: (X) execute/search only if the file is a directory or already has execute permission for some user
.
Eu tenho um diretório muito grande e profundo. Eu gostaria de fazer tudo isso apenas para leitura. O problema é que eu tenho que distinguir entre arquivos (que irão receber a=r
) e diretórios (que irão receber a=rx
).
Como posso fazer isso?
chmod
aceita o modo X
, que define apenas x
nos diretórios. a=X
Você também pode apenas remover a permissão de gravação: a-w
As sugestões acima não funcionaram para mim, todas as pastas foram definidas como somente leitura.
Um colega me deu isso, o que funciona:
find . -type f -exec chmod a-w {} \;
find somepath \( -type f -exec chmod a=r {} \; \) -o \( -type d -exec chmod a=rx {} \; \)