Alterar gid de um grupo específico

34

Gostaria de alterar a identificação do grupo de um grupo específico. Portanto, existem soluções para alterar o gid de um arquivo ou diretórios. Mas não é isso que eu quero. Existe uma maneira de fazer isso?

mibzer
fonte

Respostas:

42

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

Você deve evitar tratar o GID como significativo e usar nomes de grupos; 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 deseja alterar o GID, é assim:

  • Primeiro, pode ser necessário desconectar usuários do grupo e interromper os processos que possuem esse grupo como seu 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 vigrse disponível, ou edite /etc/groupconforme aplicável.
  • Altere o grupo de todos os arquivos em seu sistema que pertencem ao grupo antigo.

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

  • Se você tiver algum arquivo que use o GID antigo, reconstrua-o.
  • Se você tiver algum arquivo ou script de configuração que faça referência ao GID antigo, atualize-o.
  • Reinicie todos os processos que devem usar o novo GID.
Gilles 'SO- parar de ser mau'
fonte
2
Sugira usando em chgrp -h ...vez de chgrp .... Sem -h, o destino de qualquer link simbólico relevante terá seu grupo alterado.
Mark Plotnick
3
groupmodtake é um nome como o principal argumento para mim ...groupmod -g NEWGID GROUPNAME
Matt
29

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

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

Se o grupo modificado é o principal grupo de um utilizador, /etc/passwdtêm de ser adaptados, também: usermod -g <NEW_GID> <username>.

jofel
fonte
Isso também afetará o gid dos arquivos também? Quero dizer, o gid do arquivo e o gid do grupo mudarão ao mesmo tempo?
Mibzer # 9/12
11
Não. Isso mudará apenas o ID do grupo. Arquivos / Diretórios mantém seu (agora sem nome) gid e precisam ser alterados separadamente.
Jofel
Ok obrigado. Portanto, se eu gostaria de alterar o gid (files) para new gid, tenho que executar outro comando. Isso esta certo ? Seria melhor se houvesse maneira de alterar o gid do arquivo froup e o gid dos arquivos relacionados ao mesmo tempo.
Mibzer # 9/12
Eu adicionei o outro comando à minha resposta. Não é um problema se for usado um gid temporário que não esteja no / etc / group. Todo usuário do grupo precisa fazer login novamente para obter o novo gid.
Jofel
0

find / path -group foo -print0 | xargs -0 chgrp bar

jirib
fonte
como eu disse isso vai mudar o gid dos arquivos. Mas não é isso que eu quero dizer. Quero alterar o gid de um grupo e não um arquivo.
Mibzer # 9/12
ok, eu estava confuso, então 'vi / etc / group' :) #
314 jirib