Arquivos Chmod para dar recursivamente ao grupo as mesmas permissões que o usuário


15

Existe um comando unix para conceder ao grupo as mesmas permissões que o usuário atualmente possui arquivo a arquivo recursivamente para uma árvore de diretórios? Ou seja, se um arquivo é gravável pelo usuário, ele deve se tornar gravável em grupo, caso contrário, não deve ser gravável em grupo e assim por diante.

chmod 

Respostas:


24

Parabéns ao jamessan por nos mostrar g = u. No meu sistema, isso parece funcionar:

chmod -R g=u dir

1
Isso também altera as permissões dos diretórios. A pergunta original especificou os arquivos.
jamessan

@jamessan, quais diretórios são.
Mike Graham

@ Mike, apenas porque * nix permite tratar praticamente tudo como um arquivo, não significa que os diretórios sejam realmente arquivos. Mesmo se alguém admitir que é o mesmo, há uma diferença funcional distinta entre alterar as permissões de todos os arquivos em uma árvore de diretórios e alterar as permissões de todos os arquivos e diretórios em uma árvore de diretórios.
jamessan

Mais uma vez, existe uma solução direta para o meu problema. Por que não estou surpreso?
rzetterberg


0

Não consigo pensar em uma maneira fácil de fazer isso com os comandos existentes. Talvez um script como este ajude:

#!/bin/bash

DIR="$1"

find "$DIR" -ls | while read a b perm c d e f g h i file; do
   uperm=${perm:1:3}
   uperm=$(echo "$uperm" | tr -d '-')
   chmod g=$uperm "$file"
done

Além disso, mantenha em mente que alguns perms para usuários podem não se aplicar a grupos, e vice-versa.


0

Não sei se esse comando existe, mas usando o find e invocando-o algumas vezes, você pode conseguir
o que está tentando fazer, por exemplo

Por exemplo:
% find . -type f -perm -u+w -and ! -perm -g+w -exec chmod g+w {} \;

O comando acima percorre o diretório atual ".", Localiza todos os arquivos que têm permissão de gravação para
o usuário, mas nenhuma permissão de gravação para o grupo e altera a permissão para que seja gravável em grupo.

Da mesma forma, você usa a variante acima da chamada para alterar as permissões de arquivo para o modo de leitura e execução do grupo.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.