783 votes

Comment ajouter un utilisateur existant à un groupe existant ?

Je veux ajouter l'utilisateur Apache ( www-data ) à la audio groupe. J'ai lu la page de manuel de useradd mais je n'ai pas de chance. J'utilise 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é le -G bash, imprime l'info d'aide de l'option 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 dit pas clairement quelles options je dois utiliser pour que cela fonctionne.

1213voto

Alex Points 1723

El useradd va essayer d'ajouter un nouvel utilisateur. Comme votre utilisateur existe déjà, ce n'est pas ce que vous voulez.

Au lieu de cela : Pour modifier un utilisateur existant, comme l'ajouter à un nouveau groupe, utilisez la fonction usermod commandement.

Essayez ça :

sudo usermod -a -G groupName userName
  • El -a (append) est essentiel . Sinon, l'utilisateur sera supprimé de tous les groupes qui ne figurent pas dans la liste.

  • El -G switch prend une liste (séparée par des virgules) de groupes supplémentaires auxquels affecter l'utilisateur.

En général (pour l'interface graphique, ou pour les processus déjà en cours d'exécution, etc. vous devrez vous déconnecter et vous reconnecter pour voir leur nouveau groupe ajouté. Pour la session courante de Shell, vous pouvez utiliser newgrp :

newgrp groupName
  • newgrp ajoute le groupe à la session Shell en cours.

79 votes

sudo usermod -a -G [group-name] [user-name] : Juste un petit clin d'œil pour ceux qui ne regardent la réponse qu'après avoir lu le titre.

2 votes

Que fait le -a ? Il semble qu'il soit déprécié / ne fonctionne pas avec lui mais la commande fonctionne lorsqu'il est supprimé. Je n'arrive pas à trouver de référence dans quelques versions de man... mais je l'ai vu dans tellement d'exemples - que fait-il ?

44 votes

Je pense que la méthode préférée aujourd'hui est la suivante sudo adduser user group . C'est une syntaxe plus simple et plus propre. Voir la réponse de @Bai.

241voto

Bai Points 7142

Ajout d'un utilisateur à un groupe :

sudo adduser user group

Suppression d'un utilisateur d'un groupe :

sudo deluser user group

5 votes

Ce n'est pas exactement ce qui est demandé dans cette question

15 votes

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

14 votes

Pour moi, une interface plus simple est préférable, c'est pourquoi j'aime celle-ci.

67voto

Amos Folarin Points 974

Après avoir ajouté à un utilisateur existant :

usermod -a -G group user  

Vous pouvez il faut se déconnecter et se connecter pour obtenir les permissions des groupes de /etc/group .

0 votes

Pour information : je pense que le id devrait indiquer que vous avez été ajouté au groupe sans qu'il soit nécessaire de le quitter. id myuser

5 votes

Il m'a fallu me déconnecter et me reconnecter sur Ubuntu 14.10.

33voto

enzotib Points 86709

J'utilise normalement

sudo gpasswd -a myuser mygroup

3 votes

Usermod n'était pas disponible sur mon système ubuntu 14.04. Cela a très bien fonctionné !

0 votes

Cela fonctionnait très bien sur Debian Stretch également, où usermod n'a pas été installé.

0 votes

N'oubliez pas de vous déconnecter et de vous reconnecter.

14voto

0x574F4F54 Points 361

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

sudo usermod -a -G groupName userName

...vous devez vous déconnecter/se reconnecter.

Cependant, si vous avez besoin d'un raccourci pour commencer à utiliser votre nouvelle appartenance à un groupe immédiatement (et vous avez le bon sudo privilèges) J'ai trouvé cette solution de contournement :

$ sudo su -
# su [userName]
$ groups

Explication :

  • sudo su - vous donnera une racine Shell
  • su [userName] vous renvoie vers un Shell avec votre utilisateur
  • groups lorsqu'il est exécuté maintenant, il affichera le groupe que vous avez ajouté avec l'option usermod -aG commande

Dans mon cas, j'ai essayé 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

0 votes

Une autre option pour appliquer l'appartenance à un groupe est sudo login -f <username> comme l'a indiqué Aaron McDaid dans une autre réponse.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X