shell ou perl script para verificar o grupo tem privilégios de leitura

1
ls -l
drwx------   8 ws   web    1024 Apr 29  2013 abc
drwxr-xr-x   8 ws   web    1024 Oct 19  2011 def

Eu preciso de algum script para encontrar diretórios como abc que não tenha permissões de leitura / execução para o grupo web e conceda a eles permissões de leitura / execução.

    
por Vijay 12.06.2015 / 22:19

2 respostas

2

Você pode usar find para isso:

find / -type d -group web -exec chmod g+rx {} +

Isso é um pouco ineficiente, pois também definirá o grupo como rw para aqueles que já tiverem aqueles configurados. Você também pode ter find verificar alguns dos bits de permissão com -perm /mode e negar essa correspondência.

    
por 12.06.2015 / 22:21
0

Aqui está um forro que escrevi outro dia para um propósito muito similar. Supondo que você entenda chown/chmod , o So pode se adaptar aos seus propósitos. Nesse caso, algumas contas de usuário são aninhadas na conta userX. O problema era que os arquivos enviados por esses usuários ainda pertenciam a otheruser:otheruser , então o userX não poderia afetá-los. Esse script é executado a cada minuto para garantir que o userX tenha controle total sobre tudo carregado por contas aninhadas.

Exemplo de estrutura de diretório: / home / userX / otheruser

Onde / home / userX é o diretório inicial do userX e / home / userX / otheruser é o diretório inicial do otheruser.

#!/bin/bash

ls -l /home/userX | grep "^d" | awk '{print$9}' | while read i; 
    do 
        chown -R $i:userX /home/userX/$i/*; 
        chmod -R 775  /home/userX/$i/*; 
    done
    
por 12.06.2015 / 22:30