Antes de começar
Alterando para tudo
Usando o parâmetro -R do comando chmod é possível aplicar a mesma permissão recursivamente para todos os arquivos e pastas.
$ Shell
chmod -R 755 /caminho/para/dir/base
Para arquivos ou diretórios separadamente, veja adiante.
Diretórios
Para alterar a permissão de todos os subdiretórios recursivamente a partir de um diretório base:
$ Shell
# Permissão 755 (drwxr-xr-x) find /caminho/para/diretório/base -type d -exec chmod 755 {} + # Outra forma chmod 755 $(find /caminho/para/diretório/base -type d) # Para diretórios com muitos arquivos find /caminho/para/diretório/base -type d -print0 | xargs -0 chmod 755 # Usa o diretório atual como base find . -type d -exec chmod 755 {} +
Foram utilizadas as permissões 755 (drwxr-xr-x) que é mais comum para diretórios e é opção padrão na criação de nova pastas.
O ponto (.) representa o diretório atual e pode ser usado no lugar do caminho para o diretório base em qualquer um dos comandos acima.
Arquivos
Para alterar a permissão de todos os arquivos no diretório base definido no comando e em seus subdiretórios recursivamente:
$ Shell
# Permissão 644 (-rw-r--r--) find /caminho/para/diretório/base -type f -exec chmod 644 {} + # Outra forma chmod 644 $(find /caminho/para/diretório/base -type f) # Para diretórios com muitos arquivos find /caminho/para/diretório/base -type f -print0 | xargs -0 chmod 644 # Usa o diretório atual como base find . -type f -exec chmod 644 {} +
Foram usadas as permissões 644 (-rw-r--r--) que é o padrão utilizado na criação de arquivos no formato texto. Usar esta permissão em um script irá remover sua permissão de execução o que o fará perder suas funcionalidades.