Actualiser les adhésions à un groupe supplémentaire sans vous reconnecter?

12

D'après ma compréhension, une session Linux met en cache ses appartenances de groupe à la connexion. Ensuite, si une nouvelle appartenance à un groupe est ajoutée (par exemple avec adduser someuser somegroup), l'utilisateur doit se déconnecter et se reconnecter pour pouvoir profiter de la nouvelle appartenance.

Ma question est: existe-t-il un moyen d'actualiser les appartenances aux groupes en cours, sans vous reconnecter, quitter le processus en cours ou démarrer un nouveau processus?

Avdi
la source

Réponses:

9

Vous pouvez démarrer une nouvelle connexion depuis votre session

$ su - your_login

Cela n'affecte pas votre processus en cours. Si vous utilisez Xserver, vous pouvez démarrer xterm et taper cette commande (n'affecter que cette session de terminal) La seule façon de la rendre persistante est de terminer votre session et de la redémarrer

sumar
la source
Si vous autorisez uniquement l'authentification par clé publique sur votre serveur, vous devez importer la clé secrète?
Cyril Duchon-Doris
5

Je ne pense pas. Mais vous pouvez utiliser la newgrpcommande pour générer un nouveau shell avec le nouveau groupe. Ce n'est pas permanent.

newgrp superawesomegroupname

Vous devrez vous déconnecter puis vous reconnecter.

Joseph Kern
la source
1
+1 fonctionne sans mot de passe / authentification contrairement àsu
Cyril Duchon-Doris
2

D'autres ont mentionné " su - $USER" et " newgrp", et j'ai pensé que je devrais mentionner que vous devriez également regarder " sg".

Teddy
la source
1

Vous pouvez utiliser gpasswdpour un changement immédiat:

gpasswd -a someuser somegroup

Il n'est pas nécessaire de créer un nouveau shell ou de se reconnecter. Vérifiez ensuite l'appartenance au groupe en utilisant getent:

getent group somegroup
Tombart
la source
Vous créez le groupe, puis vous recherchez ce groupe. Cela n'a rien à voir avec la question discutée - le changement n'est pas effectif dans votre session actuelle.
Str.
1

Tu peux faire:

exec su -l $USER

Cela rafraîchit implicitement la liste des groupes sans avoir à quitter le terminal.

Arjen P. De Vries
la source
0

Qu'en est-il (bien que cela ne réponde qu'à l'exigence selon laquelle vous n'auriez pas à vous reconnecter)

exec /bin/bash -l

L'indicateur -l supposerait un nouveau shell de connexion et l'exec remplacerait le shell actuel par celui-ci. BTW, ne saisissez pas mal le nom du shell :-)

Un problème avec l'utilisation de newgrp et su comme suggéré précédemment est qu'un nouveau sous-shell serait créé. Oui, vous pouvez également les précéder d'une commande exec.

mdpc
la source