Como faço para chmodar arquivos da seguinte maneira?

1

Eu tenho um diretório com muitos subdiretórios e arquivos, e gostaria de alterar as permissões dos arquivos das seguintes maneiras. Basicamente, eu quero proteger melhor os diretórios.

Primeiro, todos os DIRETÓRIOS devem ser apenas chmod a 750 de forma recursiva, mas apenas diretórios.

Para arquivos: se um arquivo tiver + x para o usuário principal, ele deve ser alterado para 750, caso contrário, deve ser alterado para 640 (ou seja, sem + x, r / w para o usuário principal, r para o grupo , sem permissões para o mundo).

Isso deve ser aplicado a todos os arquivos em todos os diretórios.

Existe uma maneira de fazer isso?

    
por linuxUser 14.02.2017 / 23:49

2 respostas

3

O caractere do modo X (capital X) em chmod faz o bit difícil: ele permite adicionar permissão de execução somente se já estiver presente para algum usuário.

chmod -R g+rX-w,o= /path/to/directory

(Adicione permissões de usuário, se desejar.)

    
por 15.02.2017 / 00:48
0

Por "usuário principal", suponho que você esteja falando do proprietário do arquivo? Encontrar provavelmente funcionaria para você. Assumindo / dir é o diretório que você está fazendo em:

# find /dir -type d -exec chmod 750 {} \;
# find /dir -type f -perm -u-x -exec chmod 640 {} \;
# find /dir -type f -perm -u+x -exec chmod 750 {} \;

O primeiro altera todos os diretórios para 750. O segundo altera os arquivos sem permissão executável do proprietário para 640. O terceiro altera os arquivos com + x para o usuário para 750. Esses provavelmente poderiam ser combinados em um único comando de localização, mas isso levaria um pouco mais de tempo para trabalhar do que eu tenho que gastar agora.

    
por 14.02.2017 / 23:58