Você pode copiar permissões:
chmod -R g=u /usr/local
Isso copiará as permissões do usuário para as permissões do grupo.
Alguém errou as permissões / usr / local /, para que ninguém mais possa acessá-lo. Agora gostaria de duplicar as permissões do usuário para agrupar as permissões, pois chmod g + rx -R / usr / local não é seguro. Como isso deve ser feito?
Usando o linux (Ubuntu 10.04).
cd /usr/local
chmod -R g-rwx .
find . -perm -u+r -exec chmod g+r {} \;
find . -perm -u+w -exec chmod g+w {} \;
find . -perm -u+x -exec chmod g+x {} \;
Isso primeiro limpa as permissões do grupo de todos os arquivos. Em seguida, ele deve pesquisar para baixo, examinando cada arquivo para cada um dos três bits de permissão do usuário, por sua vez (r, w, x). Para cada permissão, quando encontrar um arquivo que tenha esse bit definido (desconsiderando seus outros bits de permissão do usuário), ele define o bit de grupo equivalente para esse arquivo.
Eu strongmente aconselho você a testar isso em um subdiretório aleatório primeiro, de preferência com alguns arquivos que você mesmo faz. Mas funciona nos meus testes comparáveis.
eu encontrei esta solução baseada em perl na net também.
find . | perl -ne 'chomp; $a = (stat $_)[2] & 07777; $a = ($a & 07707) | (($a >> 3) & 070); chmod($a, $_)'
mas o
chmod g=u
mencionado em outro lugar é melhor eu acho
Tags linux file-permissions