Como posso alterar o grupo padrão de um usuário no Linux?

41

Sendo novo na administração do Linux, estou um pouco confuso com os seguintes comandos:

useradd
usermod
groupadd
groupmod

Acabei de ler o livro de administração de usuários no manual do administrador do Linux / Unix, mas algumas coisas ainda estão um pouco nebulosas.

Basicamente, useraddparece bastante direto:

useradd -c "David Hilbert" -d /home/math/hilbert -g faculty -G famous -m -s /bin/sh hilbert

Eu posso adicionar "David Hilbert" com o nome de usuário hilbert, definindo seu diretório, shell e grupos padrão. E acho que esse -gé o seu grupo primário / padrão e -Gos outros grupos dele.

Então, essas são minhas próximas perguntas:

  1. Esse comando ainda funcionaria se os grupos facultye famousnão existissem? Seria apenas criá-los?
  2. Caso contrário, que comando eu uso para criar novos grupos?
  3. Se eu remover o usuário hilberte não houver outros usuários nesses grupos, eles ainda existirão? Devo removê-los?
  4. Depois de executar o useraddcomando acima, como faço para remover David do famousgrupo e redesignar seu grupo principal ao hilbertqual ainda não existe?
cwd
fonte

Respostas:

27

O usermodcomando permitirá alterar o grupo principal de um usuário, o grupo suplementar ou vários outros atributos. A -gopção controla o grupo principal.

Para suas outras perguntas ...

  1. Se você especificar um grupo, groupnameque não existe durante o useraddestágio, você receberá um erro - useradd: unknown group groupname

  2. O groupaddcomando cria novos grupos.

  3. O grupo permanecerá se você remover todos os usuários contidos nele. Você não precisa necessariamente remover o grupo vazio.

  4. Crie o hilbertgrupo via groupadd hilbert. Em seguida, mova o grupo principal de David usando usermod -g hilbert hilbert. (Observe que o primeiro hilberté o nome do grupo e o segundo hilberté o nome de usuário. Isso é importante nos casos em que você está movendo um usuário para um grupo com um nome diferente)

Você pode estar complicando um pouco as coisas aqui, no entanto. Em muitas distribuições Linux, um simples useradd hilbertcriará o usuário hilberte um grupo com o mesmo nome que o primário. Eu adicionaria grupos suplementares especificados juntos usando a -Gopção

ewwhite
fonte
1
obrigado. se eu fizer usermod -g hilbert hilbertisso removerá os outros grupos de hilbert? Se sim, como eu manteria esses outros grupos? Se não, uau, eu o removeria de seus outros grupos?
Cwd
Teste e veja o seu ambiente específico.
ewwhite
@ Resposta de Mick tem o meu upvote porque ele assinala que você precisa usar -a com -G (caso contrário, qualquer grupo que você deixar de fora serão removidos )
Jeff
9

Você precisa ler o man usermodque explica o que acontece com as várias opções:

usermod -g hilder hilder

substituirá seu grupo de login de 'faculdade' para 'hilder', desde que o grupo 'hilder' exista. Se não existir, primeiro você precisará criá-lo com groupadd.

Ao usar a -Gopção, você também deve -aanexar novos grupos à lista atual de grupos suplementares aos quais o usuário 'hilder' pertence. Sem a -aopção, você substituirá os grupos suplementares atuais por um novo conjunto de grupos. Portanto, use isso com cautela.

Mick
fonte
5

Para alterar o grupo principal de um usuário no Linux:

  • usermod -g new_group user_name
  • encerra todas as sessões ativas de user_name

Para testar suas alterações, execute ide observe o valor degid=

Se o comando for executado sem erros, mas o gid não for alterado, você perdeu a parte em negrito da etapa 2.

ndemou
fonte
1

a resposta nº 1 é boa, mas você também pode optar por emitir o seguinte para adicionar um novo grupo:

# nano /etc/group

A desvantagem da edição /etc/groupdireta é que você precisará criar um GID (número de identificação do grupo) não utilizado.

A seguir, você poderá alterar o grupo principal de um usuário. # nano /etc/passwd

Você localiza a linha do usuário e altera o GID (número do grupo, procure /etc/group), lembre-se de que a sintaxe é a seguinte:

 <name>:*:<UID>:<GID>:<comment>:<directory>:<shell>

Não há desvantagem em relação a essa abordagem (desde que você conheça o GID), é o que eu frequentemente uso para usuários locais, principalmente porque eu uso muitos sistemas UNIX diferentes usermod, com opções diferentes de comando addusere useradd.

É um pouco mais manual, porém faz o trabalho. Observe que você pode usar o viiso nanopara editar os arquivos, se souber vi.

Nikolai Alexandrov Georgiev
fonte
0

Para alterar permanentemente o grupo principal do usuário, execute o:

  • comando usermod -g groupname nome de usuário

Ou você pode usar newgrppara ambiente pequeno e situação temporária.

Crie um novo usuário bob e um novo grupo dodo.

useradd bob

Assim, no RedHat / Centos, temos UID = (ID_number) bob; GID = (ID_number) bob como grupo principal por padrão

groupadd dodo

Adicione o usuário bob ao dodogrupo:

usermod -aG dodo bob -make sure to use "a"

Próximo uso newgrppara alterar a propriedade:

newgrp dodo

Tenha cuidado com sua conta para ter uma senha e para ser membro do futuro grupo primário. E o newgrp abre um novo shell; enquanto o usuário permanecer nesse shell, o grupo principal não será alterado. Para voltar ao grupo primário para o original, você pode deixar o novo shell executando o comando exit.

Dragos Alexe
fonte