(8 réponses)
Fermé il y a 3 ans.
Supposons que je suis connecté avec l'utilisateur takpar
:
[email protected]:/$
En tant que root, j'ai ajouté takpar
en tant que membre du groupe webdev
en utilisant :
# usermod -a -G webdev takpar
Mais il semble que cela n'ait pas été appliqué, car par exemple je ne peux pas entrer dans un webdev
le répertoire de qui a l'autorisation de lecture pour le groupe :
400169 drwxr-x--- 3 webdev webdev 4.0K 2011-08-15 22:34 public_html
[email protected]:/home/webdev/$ cd public_html/
bash: cd: public_html/: Permission denied
Mais après un redémarrage, j'ai accès comme je m'y attendais. Comme ce type de changement de groupe fait partie de ma routine, existe-t-il un moyen d'appliquer les changements sans avoir besoin de redémarrer ?
Répondre
Il semble qu'il n'y ait aucun moyen de faire connaître le nouveau groupe à la session en cours, par exemple le gestionnaire de fichiers ne fonctionnera pas avec les nouvelles modifications. Mais une nouvelle connexion fera l'affaire.
Le su
La commande est également appropriée pour les commandes temporaires dans la session en cours.
Réponse acceptée :
Solution locale :utilisez su yourself
pour vous reconnecter. Dans la nouvelle session, vous serez considéré comme un membre du groupe.
Pages de manuel pour newgrp
et sg
il peut également être intéressant de modifier votre identifiant de groupe actuel (et de vous connecter à un nouveau groupe) :
-
Pour utiliser
webdev
l'identifiant de groupe (et les privilèges) de votre shell actuel :newgrp webdev
-
Pour démarrer une commande avec un identifiant de groupe (et conserver les privilèges actuels dans votre shell), utilisez :
sg webdev -c "command"
(
sg
est commesu
mais pour les groupes, et cela devrait fonctionner sans le mot de passe du groupe si vous êtes répertorié comme membre du groupe dans les données du système)