Existe uma maneira no Linux de atualizar as propriedades do usuário / grupo sem precisar fazer login novamente?


24

Depois de editar o arquivo / etc / group e adicionar um usuário a grupos aos quais não pertencia, o usuário não poderá usar os privilégios recém-adquiridos, a menos que inicie uma nova sessão.

Existe um comando para atualizar as propriedades do usuário / grupo em uma sessão em andamento?


1
Existe um motivo para você editar o arquivo manualmente, em vez de usá-lo useradd -G groupname username?
Bobby

4
@ Bobby: isso não faria diferença.
NiXar

Você pode procurar esta resposta .
Pablo A

Respostas:


16

No nível do kernel, a associação ao grupo é uma propriedade de cada processo. A menos que tenha a capacidade apropriada (CAP_SETGID, se não me engano), ou seja, privilégios de root para todos os efeitos, um processo não pode pertencer a um novo grupo.

Um usuário não existe como um objeto no nível do kernel; somente processos (e arquivos) fazem. Um processo possui um uid (eficaz e outros enfeites) e uma lista de IDs de grupo.

Quando você adiciona um usuário a um grupo, o kernel não faz ideia do que isso significa. Ele sabe, indiretamente, que na próxima vez em que / bin / login ou / usr / bin / newgrp for executado, um processo com esse ID de usuário terá um novo ID de grupo em sua lista.

Portanto, para responder sua pergunta, se você estiver falando de uma sessão do Gnome ou do KDE, precisará reiniciá-la. Ou se você se importa apenas com o resultado de um comando no que diz respeito a esse novo grupo, você pode usar o newgrp que acabei de mencionar. Ele iniciará um novo shell com o grupo recém-adicionado.


5

Eu li antes que o comando newgrp faz isso, mas apenas para o shell atual. Não parece haver uma alternativa melhor do que fazer logoff e logon novamente.


3
O que o newgrp faz é realmente iniciar um novo shell. Então, se você quiser voltar ao seu antigo shell. Normalmente eu simplesmente
executo
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.