Comment autoriser l'exécution de su instantanément après avoir ajouté l'utilisateur au groupe approprié

8

J'ai l' suexécutable avec les autorisations suivantes:

bash-4.2# ls -la /bin/su
-rws--s--- 1 root wheel 59930 Sep 14  2012 ./su

Lorsque je suis connecté en tant qu'utilisateur, pas dans le wheelgroupe et que j'essaie de courir su, j'obtiens une erreur, qui est correcte:

bash-4.2$ su
bash: /bin/su: Permission denied

Après cela, j'ajoute cet utilisateur au wheelgroupe à partir de root:

bash-4.2# usermod -a -G wheel user

Mais pour la même session de terminal, je ne peux toujours pas exécuter su:

bash-4.2$ su
bash: /bin/su: Permission denied

Pour les nouvelles sessions, je peux exécuter su. Comment permettre de s'exécuter suinstantanément après avoir ajouté l'utilisateur au groupe approprié?

user4035
la source
1
La newgrpréponse de Joseph est correcte - mais elle s'applique UNIQUEMENT au shell dans lequel vous l'exécutez, donc si vous avez plusieurs shells en cours d'exécution, il est facile d'oublier celui que vous avez exécuté newgrpet celui que vous n'avez pas. Il peut être plus simple / plus facile de simplement vous déconnecter et vous reconnecter.
cas

Réponses:

8

Faites simplement exécuter l'utilisateur

newgrp wheel

Cela va démarrer un nouveau shell avec l'ID de groupe changé en celui de wheel. Si vous voulez démarrer un nouveau shell et tuer le précédent, utilisez

exec newgrp wheel

au lieu.

En effet, le noyau a toujours le groupe précédent associé aux processus en cours d'exécution.

Joseph R.
la source
Comment puis-je exécuter dans l'émulateur de terminal graphique? Lorsque je cours en newgrp wheeltant qu'utilisateur, il demande un mot de passe. Même lorsque je tape le mot de passe root, il dit: Mot de passe invalide
user4035
@ user4035 Parlons-nous par hasard d'un environnement en réseau avec un mécanisme d'authentification comme NIS / LDAP? Si tel est le cas, il se peut que les nouvelles associations de groupes n'aient pas encore été correctement propagées aux machines clientes.
Joseph R.
Non, c'est ma machine locale. Je me connecte en tant qu'utilisateur, puis exécute X Session, puis démarre un terminal et suy exécute pour basculer vers root. J'ai essayé de lancer "newgrp wheel", mais il demande un mot de passe: bash-4.2$ newgrp wheel Password: le mot de passe root ne fonctionne pas
user4035
@ user4035 Selon la page de manuel, ce sera le mot de passe de l'utilisateur - pas le mot de passe pour root. C'est logique, car c'est essentiellement la même chose qu'une nouvelle connexion.
Nils
2
Notez que cette réponse est inexacte, car l'effet de newgrp wheelne pas laisser "ajouter l'utilisateur au groupe de roues" pour prendre effet, l'effet est que le GID principal de l'utilisateur a changé, ce qui est fondamentalement différent - par exemple, les fichiers nouvellement créés auront le nouveau GID.
Jakub Klinkovský