web-dev-qa-db-fra.com

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

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

useradd
usermod
groupadd
groupmod

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

Fondamentalement, useradd semble 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 le nom d'utilisateur hilbert, en définissant son répertoire par défaut, Shell et ses groupes. Et je pense que -g est son groupe principal/par défaut et -G sont ses autres groupes.

Voici donc mes prochaines questions:

  1. Cette commande fonctionnerait-elle toujours si les groupes faculty et famous n'existaient pas? Serait-ce juste les créer?
  2. Sinon, quelle commande dois-je utiliser pour créer de nouveaux groupes?
  3. Si je supprime l'utilisateur hilbert et qu'il n'y a pas d'autres utilisateurs dans ces groupes, existeront-ils toujours? Dois-je les supprimer?
  4. Après avoir exécuté la commande useradd ci-dessus, comment supprimer David du groupe famous et réaffecter son groupe principal à hilbert qui n'existe pas encore?
42
cwd

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

Pour vos autres questions ...

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

  2. La commande groupadd crée de nouveaux groupes.

  3. Le groupe restera si vous supprimez tous les utilisateurs qu'il contient. Vous n'avez pas nécessairement à supprimer le groupe vide.

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

Vous compliquez peut-être un peu les choses ici, cependant. Dans de nombreuses distributions Linux, un simple useradd hilbert créera l'utilisateur hilbert et un groupe du même nom que le principal. J'ajouterais des groupes supplémentaires spécifiés ensemble en utilisant le -G commutateur.

28
ewwhite

Vous devez lire le man usermod qui 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 le -G option, vous devez également utiliser le -a option pour ajouter de nouveaux groupes à la liste actuelle des groupes supplémentaires auxquels appartient l'utilisateur 'hilder'. Sans le -a option, vous remplacerez les groupes supplémentaires actuels par un nouveau groupe de groupes. Par conséquent, utilisez-le avec prudence.

9
Mick

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

  • usermod -g new_group user_name
  • terminer les sessions actives de all user_name

Pour tester vos modifications, exécutez id et examinez la valeur de gid=

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

5
ndemou

la réponse n ° 1 est bonne, vous pouvez toujours choisir d'émettre ce qui suit pour ajouter un nouveau groupe:

# nano /etc/group

L'inconvénient de l'édition /etc/group est directement que vous devrez trouver un GID inutilisé (numéro d'identification de groupe).

Les éléments suivants vous permettront de modifier le groupe principal d'un utilisateur. # nano /etc/passwd

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

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

Il n'y a aucun inconvénient auquel je peux penser à cette approche (à condition que vous connaissiez le GID), c'est ce que j'utilise fréquemment pour les utilisateurs locaux, principalement parce que j'utilise de nombreux systèmes UNIX différents avec des usermod, adduser et useradd options de commande.

C'est un peu plus manuel, mais fait le boulot. Notez que vous pouvez utiliser vi iso nano pour modifier les fichiers, si vous connaissez vi.

Pour modifier définitivement le groupe principal de l'utilisateur, exécutez:

  • usermod -g nom de groupe commande nom d'utilisateur

Ou vous pouvez utiliser newgrp pour un petit environnement et une 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 comme groupe principal par défaut

groupadd dodo

Ajoutez l'utilisateur bob au groupe dodo:

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

Ensuite, utilisez newgrp pour changer de propriétaire:

newgrp dodo

Attention à votre compte pour avoir un mot de passe et pour être membre du futur groupe primaire. Et le newgrp ouvre un nouveau Shell; tant que l'utilisateur reste dans ce shell, le groupe principal ne change pas. Pour ramener le groupe principal à l'original, vous pouvez quitter le nouveau shell en exécutant la commande exit.

0
Dragos Alexe