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 {} \; \)