Atualiza as associações de grupo suplementares sem efetuar login novamente?

9

Pelo que entendi, uma sessão do Linux armazena em cache suas associações ao grupo no login. Então, se uma nova associação ao grupo for adicionada (por exemplo, com adduser someuser somegroup ), o usuário deverá efetuar logout e login novamente para poder aproveitar a nova associação.

A minha pergunta é: existe qualquer forma de actualizar os membros do grupo em processo, sem iniciar sessão novamente, sair do processo actual ou iniciar um novo processo?

    
por Avdi 15.10.2009 / 21:03

6 respostas

8

Você pode iniciar um novo login em sua sessão

$ su - your_login

Isso não afeta seu processo de execução. Se você estiver usando o Xserver, você pode iniciar o xterm e digitar este comando (afeta somente esta sessão de terminal) A única maneira de torná-lo persistente é terminar sua sessão e iniciá-la novamente

    
por 16.10.2009 / 13:16
4

Eu não penso assim. Mas você pode usar o comando newgrp para gerar um novo shell com o novo grupo. Isso não é permanente.

newgrp superawesomegroupname

Você precisará fazer logoff de seus usuários.

    
por 16.10.2009 / 11:19
2

Outros mencionaram " su - $USER " e " newgrp ", e eu pensei que deveria mencionar que você também deve olhar para " sg ".

    
por 16.10.2009 / 13:25
1

Você pode usar gpasswd para alterações imediatas:

gpasswd -a someuser somegroup

Não há necessidade de criar novo shell ou novo login. Depois, verifique a associação ao grupo usando getent :

getent group somegroup
    
por 18.11.2016 / 14:19
1

Você pode fazer:

exec su -l $USER

Isso implicitamente atualiza a lista de grupos sem precisar sair do terminal.

    
por 07.11.2017 / 10:59
0

E quanto a isso (embora ele atenda apenas ao requisito de que você não precisaria relogar)

exec /bin/bash -l

O flag -l assumiria um novo shell de login e o exec substituiria o shell atual por aquele novo. BTW, não digite o nome do shell :-)

Um problema com o uso de newgrp e su como sugerido anteriormente é que um novo sub-shell seria criado. Sim, você poderia precedê-los com um comando exec também.

    
por 16.10.2009 / 21:27