Comment ajouter un utilisateur existant à un groupe existant?


669

Je veux ajouter l'utilisateur Apache ( www-data) au audiogroupe. J'ai lu la page de manuel pour useradd, mais je n'ai aucune chance. Je suis sous xubuntu 11.10. Voici ce que je fais:

$ sudo useradd -G audio www-data
useradd: user 'www-data' already exists

Si je laisse de côté l' -Goption bash, affiche les informations d'aide pour useradd:

$ sudo useradd  audio www-data
Usage: useradd [options] LOGIN
Options: -b, --base-dir BASE_DIR       base directory for the home directory...

La page de manuel ne me permet pas de savoir quelles options utiliser pour que cela fonctionne.

Réponses:


1040

La useraddcommande va essayer d'ajouter un nouvel utilisateur. Puisque votre utilisateur existe déjà, ce n'est pas ce que vous voulez.

Au lieu de cela: Pour modifier un utilisateur existant, par exemple pour l'ajouter à un nouveau groupe, utilisez la usermodcommande.

Essaye ça:

sudo usermod -a -G groupName userName

L'utilisateur devra se déconnecter et se reconnecter pour voir son nouveau groupe ajouté.

  • Le -acommutateur (append) est essentiel. Sinon, l'utilisateur sera supprimé de tous les groupes, pas dans la liste.

  • Le -Gcommutateur prend une liste (séparée par des virgules) de groupes supplémentaires à affecter à l'utilisateur.


71
sudo usermod -a -G [group-name] [user-name]: Juste un coup rapide pour ceux qui jettent un coup d'œil à la réponse après avoir lu le titre
Programster

36
Je pense que la manière préférée est maintenant sudo adduser user group. C'est une syntaxe plus simple et plus propre. Voir la réponse de @Bai.
ctbrown

3
@wilhil:: man usermod" -a, --append - Ajoute l'utilisateur au (x) groupe (s) supplémentaire (s). À utiliser uniquement avec l'option -G .; -G, --groups GROUP1 [, GROUP2, ... [, GROUPN] ]] [...] Si l'utilisateur est actuellement membre d'un groupe non répertorié, il sera supprimé du groupe. Ce comportement peut être modifié via l'option -a, qui l'ajoute au groupe supplémentaire actuel. liste de groupe. "
Adam Michalik

18
Existe-t-il un moyen de contourner la partie "déconnexion et retour"? Un type de commande update-groups, peut-être?
Con-f-use

14
@ con-f-use, si vous pouvez exécuter sudo login -f YOURUSERNAME, il va démarrer une nouvelle session shell. Utilisez la idcommande pour vérifier que la nouvelle session appartient au bon ensemble de groupes. Cependant, ce n'est pas "global" - cela ne s'applique pas aux terminaux déjà ouverts. Alors, vraiment, se déconnecter est la meilleure option, si possible
Aaron McDaid Le

222

Ajouter un utilisateur à un groupe:

sudo adduser user group

Supprimer un utilisateur d'un groupe:

sudo deluser user group

3
pas exactement ce que cette question est posée
Tejendra

11
Le commentaire de @ Tejendra semble présupposer que l'utilisation de useradd est souhaitable / obligatoire pour répondre à la question de OP; Peut-être que cette réponse manque simplement de mots pour indiquer que adduser / deluser est une meilleure alternative.
Sage

12
Pour moi, une interface plus simple est meilleure, c'est pourquoi j'aime celle-ci.
Betlista

4
C'est exactement la question posée. @knocte, oui, je pense que c'est spécifique à Debian
Auspex

3
@Auspex, je peux confirmer que cela ne fonctionne pas sur Red Hat.
Stibu

54

Après avoir ajouté à un utilisateur existant:

usermod -a -G group user  

Vous devrez peut-être vous déconnecter et vous connecter pour obtenir les autorisations des groupes /etc/group.


21
Veuillez en faire la partie "nécessité de se déconnecter et de se connecter" en gras.
Jin Kwon

FYI: Je pense que la idcommande devrait indiquer que vous avez été ajouté au groupe sans avoir besoin de quitter. id myuser
jeudi

5
La déconnexion et le retour étaient nécessaires pour moi sur Ubuntu 14.10.
A.Danischewski

26

J'utilise normalement

sudo gpasswd -a myuser mygroup

3
usermod n'était pas disponible sur mon système Ubuntu 14.04. Cela a très bien fonctionné!
Drew

Cela fonctionnait également très bien sur Debian Stretch, où il usermodn’était pas installé.
Josh Habdas

8

Je poste ceci comme réponse parce que je n'ai pas assez de réputation pour commenter. Comme @ dpendolino l'a mentionné, pour que les effets de cette commande persistent:

sudo usermod -a -G groupName userName

... vous devez vous déconnecter / vous connecter à nouveau.

Cependant, si vous avez besoin d'un raccourci pour commencer à utiliser immédiatement votre nouvelle appartenance à un groupe (et que vous ayez les privilèges sudo appropriés ), j'ai trouvé cette solution:

$ sudo su -
# su [userName]
$ groups

Explication:

  • sudo su - va vous donner un shell racine
  • su [userName] vous renvoie à un shell avec votre utilisateur
  • groupslorsqu’il est exécuté, le groupe que vous avez ajouté avec la usermod -aGcommande

Dans mon cas, j'essayais d'ajouter le groupe "docker" à mon utilisateur

Avant:

$ groups
userName adm cdrom sudo dip plugdev lpadmin sambashare wireshark lxd

Après:

$ groups
userName adm cdrom sudo dip plugdev lpadmin sambashare wireshark lxd docker

5

Sous Ubuntu, la connexion en tant que rootn'étant pas activée , les utilisateurs du sudogroupe peuvent élever les privilèges de certaines commandes restreintes. Toute commande restreinte doit être précédée sudode privilèges élevés.

sudo usermod -a -G group user

ajoutera l'utilisateur existant userà un groupe supplémentaire nommé group. Le groupe principal de l'utilisateur restera inchangé.


1
sudo usermod -a -G groupName userName

fonctionnera très bien, mais je devais redémarrer entièrement, déconnectez-vous et connectez-vous à nouveau n'a pas fait le travail ...

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.