web-dev-qa-db-fra.com

Un redémarrage est-il requis pour rafraîchir les autorisations après avoir ajouté un utilisateur à un nouveau groupe?

Sur Ubuntu Server, j'ai remarqué plus d'une fois que, après avoir ajouté un utilisateur à un groupe que l'utilisateur n'a pas d'autorisations de groupe tant que je ne redémarre pas le système. Par exemple:

L'utilisateur 'Hudson' a besoin de la permission de lire la racine de répertoire: Shadow/etc/Shadow 'Alors j'ajoute Hudson au groupe d'ombre. Hudson ne peut toujours pas lire. Donc, je 'sudo shutdown -h -r maintenant' et lorsque le système revient à nouveau, Hudson peut lire.

Un redémarrage requis ou y a-t-il un meilleur moyen d'obtenir des autorisations appliquées après avoir ajouté l'utilisateur au groupe?

26
Michael Prescott

Je cherchais une solution, je suis tombé sur ce poteau, puis plus tard trouvé un!

Je pensais que je pourrais offrir une solution afin que d'autres puissent en bénéficier. Se connecter et sortir est tellement 1995.

Pris à partir de:

https://arkaizj.wordpress.com/2010/03/08/linux-add-user-a-a-group-without-logout/

Donc, si vous aviez besoin d'obtenir des autorisations pour le groupe cdrom, vous venez d'ajouter votre utilisateur à:

newgrp cdrom 

par exemple

Donc, les étapes seraient:

#adduser my_user cdrom

puis

$newgrp cdrom

J'ai confirmé que cela fonctionne.

Un simple $groups Vérification de la CLI montre que l'utilisateur est dans le groupe. Et une exécution rapide avec les privilèges nécessaires de ce groupe travaille.

Pas besoin de tuer vos fenêtres et votre connexion et votre déconnexion! J'espère que cela aide les autres!

Informations supplémentaires (Basé sur le commentaire utile de Jytou): "[Cette solution ne fonctionnera que pour le shell ouvert actuel. Si vous avez une autre coquille ouverte, vous "Il faut utiliser la même commande pour prendre en compte les modifications apportées."

25
TryTryAgain

Lors de l'ajout d'un utilisateur à un nouveau groupe, l'utilisateur doit se déconnecter et se connecter pour qu'il fasse affecter. Bien qu'un redémarrage accomplira cela, cela ne devrait pas être nécessaire.

19
Scott Pack

L'ajout d'un utilisateur à un groupe n'effectue pas actuellement les utilisateurs connectés.

Dans le cas d'un démon, vous devez le redémarrer pour que de nouveaux groupes soient appliqués.

En outre, le redémarrage du démon en utilisant une option dans le démon lui-même ne fonctionnera pas comme cela héritera de l'environnement actuel.

Le moyen le plus simple de le faire fonctionner est d'arrêter complètement le démon et de le recommencer, comme dans ..

/etc/init.d/foo stop ; /etc/init.d/foo start
8
Justin

Il y a un mode de défaillance différent qui devrait également être adressé ici.

Si l'administrateur mis à jour /etc/group mais n'a pas réussi à mettre à jour /etc/gshadow (sur les systèmes qui ont cette configuration), déconnecter et revenir ne vous attribueront pas vraiment au nouveau groupe.

Conforellement, groups _ vous montrera la situation réelle et actuelle, alors que id _ imprimer de manière incorrecte la sortie qui indique que vous sont correctement un membre du groupe.

tripleee@vbvntv$ groups
tripleee

tripleee@vbvntv$ id
uid=1234(tripleee) gid=1234(tripleee) groups=1234(tripleee),4(adm)

tripleee@vbvntv$ ls -l /var/log/mail.log
-rw-r----- 1 root adm 15728 May 26 14:26 /var/log/mail.log

tripleee@vbvntv$ tail /var/log/mail.log
tail: cannot open `/var/log/mail.log' for reading: Permission denied

Je ne peux pas utiliser newgrp parce qu'il demande un mot de passe, et je n'ai pas de mot de passe, seule l'authentification clé publique SSH.

La solution serait pour l'administrateur de rétablir la modification manuelle de /etc/groups Et puis le refaire avec Sudo gpasswd -a tripleee adm; ou alternativement, utiliser grpconv pour fusionner les modifications (que j'ai ramassées à partir de https://serverfault.com/a/389719/983 )

1
tripleee