Dando permissão recursiva somente para diretórios ou arquivos

Bash

No Linux é comum que administradores de servidores e programadores utilizem o comando chmod com o parâmetro -R para dar permissão recursiva para determinado diretório. Essa sintaxe faz todo conteúdo (arquivos e diretórios) receber as mesmas permissões de leitura, escrita e execução. Mas, às vezes, existe a necessidade de que os diretórios fiquem com determinada permissão e os arquivos com outras. Nesse caso, podemos utilizar alguns destes comandos:

Atualizado: 10/06/2021 

No primeiro exemplo, será setada a permissão 744 para todos os diretórios (d) abaixo de teste:

find /home/usuario/teste -type d -exec chmod 744 {} +

Agora, será setada a permissão 644 para todos os arquivos (f) abaixo do diretório teste:

find /home/usuario/teste -type f -exec chmod 644 {} +

As duas alternativas de comandos abaixo também fazem o mesmo (para diretórios e arquivos respectivamente), mas têm um melhor desempenho quando há milhares de itens abaixo de um diretório.

chmod 744 $(find /home/usuario/teste  -type d)
chmod 644 $(find /home/usuario/teste  -type f)

É isso. Espero ajudá-lo com essa dica simples. Se tiver alguma sugestão ou queira corrigir algo, não hesite em contactar-me.


Pedro Paulo

Pedro Paulo

Trabalha com informática desde o século passado e quando sobra tempo, tenta escrever algo neste site

Comentários

Para escrever um comentário, faça o Login.

Arquivos do Blog

Categorias do Blog

Sobre

Site que tem como o assunto principal: Tecnologia. Destacando assuntos relacionados ao Linux, a Internet e Software Livre.