Alterar gid de um grupo específico

28

Gostaria de alterar o ID do grupo de um grupo específico. Há assim pode solução para alterar o gid de um arquivo ou diretórios. Mas não é isso que eu quero. Existe uma maneira de fazer isso?

    
por mibzer 09.03.2012 / 14:01

3 respostas

34

O GID é o identificador principal do grupo. No que diz respeito ao sistema, um GID diferente é um grupo diferente. Então, para mudar o GID, você terá que modificar todos os lugares onde esse GID é usado.

Você deve evitar tratar o GID como significativo e usar nomes de grupo; Você pode alterar o nome de um grupo com um único comando (no Linux: groupmod -n NEW_GROUP_NAME OLD_GROUP_NAME ).

No entanto, se você realmente quiser alterar o GID, é assim:

  • Primeiro, pode ser necessário desconectar usuários do grupo e eliminar processos que têm esse grupo como grupo efetivo, real ou salvo.
  • Altere a entrada no banco de dados do grupo. No Linux, execute groupmod -g NEWGID GROUPNAME . Em outros sistemas, use a ferramenta de administração desse sistema ou vigr , se disponível, ou edite /etc/group , conforme aplicável.
  • Altere o grupo de todos os arquivos no sistema que pertencem ao grupo antigo.

    find / -gid OLDGID ! -type l -exec chgrp NEWGID {} \;
    
  • o chgrp limpa os sinalizadores suid e sgid e os restaura.

  • Se você tiver algum arquivo que use o antigo GID, reconstrua-o.
  • Se você tiver algum arquivo de configuração ou script que faça referência ao antigo GID, atualize-o.
  • Reinicie todos os processos que devem usar o novo GID.
por 09.03.2012 / 22:20
26

A maneira mais fácil é usar groupmod -g <NEW_GID> <groupname>

Outra maneira é editar /etc/group diretamente. O terceiro campo em cada coluna é o gid.

Se o grupo alterado for o grupo principal de um usuário, /etc/passwd também precisará ser adaptado: usermod -g <NEW_GID> <username> . Consulte aqui para mais informações .

    
por 09.03.2012 / 14:09
0

find / path -group foo -print0 | xargs -0 barra de chgrp

    
por 09.03.2012 / 14:08

Tags