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?
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."
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.
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
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 )