Comment ajouter des utilisateurs à un autre groupe d'utilisateurs?

9

J'ai un utilisateur John et un utilisateur Keith sur le serveur Ubuntu

J'ai ajouté ces utilisateurs en utilisant

sudo adduser John 
sudo adduser Keith

Comment puis-je ajouter john au groupe de Keith?

J'ai essayé:

sudo usermod -aG Keith john

Mais je reçois:

usermod: group 'Keith' does not exist

Que dois-je faire pour résoudre ce problème?

Natasha Thapa
la source

Réponses:

17

Vous pouvez utiliser: usermod -a -G grouptoadd username

Comme il est beaucoup moins évident que je ne le pensais pourquoi -a -G est correct alors que -aG ne l'est pas, je vais essayer de l'expliquer:

L'option -G prend une valeur ou une liste de valeurs. Dans le cas d'une valeur, la valeur peut être donnée comme: -GVALUE car il n'y a aucune exigence d'avoir un espace entre l'option et la valeur. Ce n'est qu'une pratique courante.

Si vous avez un groupe appelé a sur votre système, l'appel de -Ga devient ambigu. Voulez-vous que l'utilisateur ait un seul groupe a? Appelez-vous -a et -G? Alors, "a" est-il une valeur pour -G? Où est le reste de la valeur (en -G)? Il est également courant que toute option à lettre unique puisse précéder toute autre option à lettre unique. donc tat -xy == -yz. Mais cela est ambigu lorsque l'une des options peut prendre une seule valeur comme VALUE ou plusieurs valeurs comme VAL1, Val2, val4, etc.

Donc, pour rendre la commande FAILSAFE et fonctionner correctement pour toutes les entrées, vous devez séparer -a de -G

De man usermod:

Nom

usermod - modifier un compte utilisateur

Synopsis

usermod [options] CONNEXION

La description

La commande usermod modifie les fichiers de compte système pour refléter les modifications spécifiées sur la ligne de commande.

Les options

Les options qui s'appliquent à la commande usermod sont:

  • -a, --append

    Ajoutez l'utilisateur au (x) groupe (s) supplémentaire (s). À utiliser uniquement avec l' option -G .

  • ...

  • -G, --groupes GROUP1 [, GROUP2, ... [, GROUPN]]]

    Une liste de groupes supplémentaires dont l'utilisateur est également membre. Chaque groupe est séparé du suivant par une virgule, sans espace intermédiaire. Les groupes sont soumis aux mêmes restrictions que le groupe donné avec l' option -g .

    Si l'utilisateur est actuellement membre d'un groupe qui n'est pas répertorié, l'utilisateur sera supprimé du groupe. Ce comportement peut être modifié via l' option -a , qui ajoute l'utilisateur à la liste de groupes supplémentaires actuelle.

  • ...

Ярослав Рахматуллин
la source
Cela pourrait aider à expliquer pourquoi le fractionnement des options fonctionnerait et quelles sont les options.
Journeyman Geek
@JourneymanGeek: Terminé! s'exécute ...
Tamara Wijsman
les super-utilisateurs devraient savoir comment man, à mon humble avis ...
Ярослав Рахматуллин
@ ЯрославРахматуллин, les superutilisateurs devraient en effet. Cependant, la plupart des questions sont posées par des "non-super-utilisateurs" et répondues par des "super-utilisateurs". Quelqu'un qui est nouveau sur Linux n'a aucune raison de connaître la commande man. En tout cas, la commande que vous avez donnée est la même que celle exécutée par le PO, votre réponse n'explique pas pourquoi cela n'a pas fonctionné pour elle. Sur mon système au moins, le fractionnement des options ne fait aucune différence.
terdon
Eh bien, tout d'abord, vous ne pouvez pas exécuter sudo adduser name sudo adduser name2 car il s'agit d'une syntaxe non valide pour useradd . useradd prend un argument de nom d'utilisateur. Pour ajouter deux utilisateurs, vous devez exécuter la commande deux fois. IE useradd arne; useradd kari. Ensuite, vous pouvez ajouter des kari au groupe arnes et vice versa. Je deviendrai plus patient après avoir regardé quelques-unes de ces questions et y répondre correctement. promettre!
Ярослав Рахматуллин
0

Si vous avez exécuté les commandes exactement comme vous l'avez montré dans votre question, vous n'avez pas créé l'utilisateur Keith, mais uniquement l'utilisateur John. Pour exécuter des commandes les unes après les autres sur la ligne de commande, vous devez les séparer à l'aide de ;ou &&. Sinon, seule la première commande sera exécutée:

sudo adduser John sudo adduser Keith
adduser: Only one or two names allowed.

Si vous avez fait les exécuter correctement, faites attention lettres majuscules. Dans votre question, vous mentionnez à la fois "John" et "john". Cela devrait fonctionner:

sudo adduser keith
sudo adduser john
sudo usermod -aG keith john
terdon
la source
0

Vous pouvez également modifier les fichiers de configuration manuellement:

sudo nano /etc/password
sudo nano /etc/group

Attribuez l'ID et d'autres champs.

KakashiSan
la source