Comment puis-je changer le groupe par défaut d'un utilisateur sous Linux?

41

Étant nouveau pour l'administration Linux, je suis un peu confus au sujet des commandes suivantes:

useradd
usermod
groupadd
groupmod

Je viens de terminer la lecture du manuel d'administration des utilisateurs dans le manuel de l'administrateur Linux / Unix, mais certaines choses sont encore un peu floues.

Fondamentalement, useraddsemble assez simple:

useradd -c "David Hilbert" -d /home/math/hilbert -g faculty -G famous -m -s /bin/sh hilbert

Je peux ajouter "David Hilbert" avec un nom d'utilisateur hilbert, en définissant son répertoire par défaut, son shell et ses groupes. Et je pense que -gc'est son groupe principal / par défaut et -Gses autres groupes.

Voici donc mes prochaines questions:

  1. Cette commande fonctionnerait-elle encore si les groupes facultyet famousn'existaient pas? Cela ne ferait-il que les créer?
  2. Sinon, quelle commande dois-je utiliser pour créer de nouveaux groupes?
  3. Si je supprime l'utilisateur hilbertet qu'il n'y a pas d'autres utilisateurs dans ces groupes, existeront-ils toujours? Devrais-je les enlever?
  4. Après avoir exécuté la useraddcommande ci-dessus, comment puis-je retirer David du famousgroupe et réaffecter son groupe principal dans hilbertlequel n'existe pas encore?
cwd
la source

Réponses:

27

La usermodcommande vous permettra de modifier le groupe principal d'un utilisateur, un groupe supplémentaire ou un certain nombre d'autres attributs. Le -gcommutateur contrôle le groupe principal.

Pour vos autres questions ...

  1. Si vous spécifiez un groupe groupnamequi n'existe pas au cours de l' useraddétape, vous recevrez une erreur - useradd: groupe inconnu nomgroupe

  2. La groupaddcommande crée de nouveaux groupes.

  3. Le groupe restera si vous supprimez tous les utilisateurs contenus dans. Vous n'êtes pas obligé de supprimer le groupe vide.

  4. Créez le hilbertgroupe via groupadd hilbert. Puis déplacez le groupe principal de David avec usermod -g hilbert hilbert. (Veuillez noter que le premier hilbertest le nom du groupe et le second hilbertest le nom d'utilisateur. Cela est important dans les cas où vous déplacez un utilisateur vers un groupe avec un nom différent)

Vous pouvez cependant compliquer un peu les choses ici. Dans beaucoup de distributions Linux, un simple useradd hilbertcréera l'utilisateur hilbertet un groupe du même nom que le principal. J'ajouterais des groupes supplémentaires spécifiés ensemble à l'aide du -Gcommutateur.

ewwhite
la source
1
Merci. si je fais cela usermod -g hilbert hilbertva - t-il supprimer les autres groupes de Hilbert? Si oui, comment pourrais-je conserver ces autres groupes? Sinon, wow le retirerais-je de ses autres groupes?
cwd
Testez-le et voyez pour votre environnement particulier.
ewwhite
La réponse de @Mick obtient mon vote positif, car il indique que vous devez utiliser -a avec -G (sinon, tout groupe que vous quittez sera supprimé )
Jeff
9

Vous devez lire le man usermodqui explique ce qui se passe avec les différentes options:

usermod -g hilder hilder

remplacera votre groupe de connexion de 'faculté' à 'hilder', tant que le groupe 'hilder' existe. S'il n'existe pas, vous devez d'abord le créer avec groupadd.

Lorsque vous utilisez l' -Goption, vous devez également utiliser l' -aoption pour ajouter de nouveaux groupes à la liste actuelle des groupes supplémentaires auxquels l'utilisateur "hilder" appartient. Sans cette -aoption, vous remplacerez les groupes supplémentaires actuels par un nouvel ensemble. Par conséquent, utilisez ceci avec prudence.

Mick
la source
5

Pour changer le groupe principal d'un utilisateur sous Linux:

  • usermod -g new_group user_name
  • mettre fin à toutes les sessions actives de nom_utilisateur

Pour tester vos modifications idet regarder la valeur degid=

Si la commande s'exécute sans erreur mais que le gid n'a pas changé, vous avez oublié la partie en gras de l'étape 2.

Ndemou
la source
1

La réponse n ° 1 est bonne, mais vous pouvez aussi choisir d’émettre ce qui suit pour ajouter un nouveau groupe:

# nano /etc/group

L'inconvénient de l'édition /etc/groupdirecte est que vous devrez trouver un GID non utilisé (numéro d'identification du groupe).

Ce qui suit vous permettra de changer le groupe principal d'un utilisateur. # nano /etc/passwd

Vous localisez la ligne de l'utilisateur et modifiez le GID (numéro de groupe, recherchez-le dans /etc/group), en gardant à l'esprit que la syntaxe est la suivante:

 <name>:*:<UID>:<GID>:<comment>:<directory>:<shell>

Il n'y a aucun inconvénient , je peux penser à cette approche ( à condition que vous connaissez le GID), il est ce que je l' utilise fréquemment pour les utilisateurs locaux, principalement parce que j'utilise de nombreux systèmes UNIX avec différentes usermod, adduseret les useraddoptions de commande.

C'est un peu plus manuel, mais fait le travail. Notez que vous pouvez utiliser viiso nanopour éditer les fichiers, si vous le savez vi.

Nikolai Alexandrov Georgiev
la source
0

Pour changer définitivement le groupe principal de l'utilisateur, exécutez la commande:

  • usermod -g nomgroupe nomutilisateur commande

Ou vous pouvez utiliser newgrppour petit environnement et situation temporaire.

Créez un nouvel utilisateur bob et un nouveau groupe dodo.

useradd bob

Donc, dans RedHat / Centos, nous avons UID = (ID_number) bob; GID = (ID_number) bob en tant que groupe principal par défaut

groupadd dodo

Ajoutez l'utilisateur bob au dodogroupe:

usermod -aG dodo bob -make sure to use "a"

Utilisez ensuite newgrppour changer de propriétaire:

newgrp dodo

Veillez à ce que votre compte ait un mot de passe et soit membre du futur groupe principal. Et le newgrp ouvre une nouvelle coquille; tant que l'utilisateur reste dans ce shell, le groupe principal ne changera pas. Pour remettre le groupe principal à son origine, vous pouvez quitter le nouveau shell en exécutant la commande exit.

Dragos Alexe
la source