Recherche de site Web

Un guide complet d'utilisation de la commande 'usermod' - 15 exemples pratiques avec captures d'écran


Dans les distributions Unix/Linux, la commande 'usermod' est utilisée pour modifier ou changer les attributs d'un compte utilisateur déjà créé via la ligne de commande. La commande 'usermod' est similaire à celle 'useradd' ou 'adduser' mais la connexion accordée à un utilisateur existant.

La commande « useradd » ou « adduser » est utilisée pour créer des comptes d'utilisateurs dans les systèmes Linux. Pour en savoir plus sur la création d'utilisateurs système, lisez notre guide complet sur :

  1. Un guide complet de la commande « useradd » sous Linux

Après avoir créé des comptes d'utilisateurs, dans certains scénarios où nous devons modifier les attributs d'un utilisateur existant, tels que modifier le répertoire personnel de l'utilisateur, le nom de connexion, le shell de connexion, la date d'expiration du mot de passe, etc., où dans ce cas, la commande « usermod » est utilisée.

Lorsque nous exécutons la commande 'usermod' dans le terminal, les fichiers suivants sont utilisés et affectés.

  1. /etc/passwd – Informations sur le compte utilisateur.
  2. /etc/shadow – Informations de compte sécurisées.
  3. /etc/group – Informations sur le compte de groupe.
  4. /etc/gshadow – Sécurisez les informations du compte de groupe.
  5. /etc/login.defs – Configuration de la suite de mots de passe fantômes.

La syntaxe de base de la commande est :

usermod [options] username

Exigences

  1. Nous devons avoir des comptes d'utilisateurs existants pour exécuter la commande usermod.
  2. Seul le superutilisateur (root) est autorisé à exécuter la commande usermod.
  3. La commande usermod peut être exécutée sur n'importe quelle distribution Linux.
  4. Doit avoir une connaissance de base de la commande usermod avec options

Options de Usermod

La commande « usermod » est simple à utiliser avec de nombreuses options pour apporter des modifications à un utilisateur existant. Voyons comment utiliser la commande usermod en modifiant certains utilisateurs existants sous Linux à l'aide des options suivantes.

  1. -c=Nous pouvons ajouter un champ de commentaire pour le compte utilisateur.
  2. -d=Pour modifier le répertoire de tout compte utilisateur existant.
  3. -e=En utilisant cette option, nous pouvons faire expirer le compte dans une période spécifique.
  4. -g=Changer le groupe principal d'un utilisateur.
  5. -G=Pour ajouter un groupe supplémentaire.
  6. -a=Pour ajouter n'importe qui du groupe à un groupe secondaire.
  7. -l=Pour changer le nom de connexion de tecmint à tecmint_admin.
  8. -L=Pour verrouiller le compte utilisateur. Cela verrouillera le mot de passe afin que nous ne puissions pas utiliser le compte.
  9. -m=déplacer le contenu du répertoire personnel du répertoire personnel existant vers le nouveau répertoire.
  10. -p=To Utiliser un mot de passe non crypté pour le nouveau mot de passe. (NON sécurisé).
  11. -s=Créer un shell spécifié pour les nouveaux comptes.
  12. -u=Utilisé pour attribuer un UID au compte utilisateur entre 0 et 999.
  13. -U=Pour déverrouiller les comptes utilisateurs. Cela supprimera le verrouillage par mot de passe et nous permettra d'utiliser le compte utilisateur.

Dans cet article, nous verrons « 15 commandes usermod » avec leurs exemples pratiques et leur utilisation sous Linux, qui vous aideront à apprendre et à améliorer vos compétences en ligne de commande en utilisant ces options.

1. Ajout d'informations au compte utilisateur

L'option '-c' est utilisée pour définir un bref commentaire (informations) sur le compte utilisateur. Par exemple, ajoutons des informations sur l'utilisateur « tecmint », à l'aide de la commande suivante.

usermod -c "This is Tecmint" tecmint

Après avoir ajouté des informations sur l'utilisateur, le même commentaire peut être affiché dans le fichier /etc/passwd.

grep -E --color 'tecmint' /etc/passwd

tecmint:x:500:500:This is Tecmint:/home/tecmint:/bin/sh

2. Modifier le répertoire de base de l'utilisateur

Dans l'étape ci-dessus, nous pouvons voir que notre répertoire personnel se trouve sous /home/tecmint/. Si nous devons le remplacer par un autre répertoire, nous pouvons le modifier en utilisant -d option avec la commande usermod.

Par exemple, je souhaite changer notre répertoire personnel en /var/www/, mais avant de changer, vérifions le répertoire personnel actuel d'un utilisateur à l'aide de la commande suivante.

grep -E --color '/home/tecmint' /etc/passwd

tecmint:x:500:500:This is Tecmint:/home/tecmint:/bin/sh

Maintenant, changez le répertoire personnel de /home/tecmint en /var/www/ et confirmez le directeur personnel après le changement.

usermod -d /var/www/ tecmint
grep -E --color '/var/www/' /etc/passwd

tecmint:x:500:500:This is Tecmint:/var/www:/bin/sh

3. Définir la date d'expiration du compte utilisateur

L'option « -e » est utilisée pour définir la date d'expiration d'un compte utilisateur au format de date AAAA-MM-JJ. Avant de définir une date d'expiration pour un utilisateur, vérifions d'abord l'état d'expiration actuel du compte à l'aide de la commande « chage » (modifier les informations d'expiration du mot de passe de l'utilisateur).

chage -l tecmint

Last password change					: Nov 02, 2014
Password expires					: never
Password inactive					: never
Account expires						: Dec 01, 2014
Minimum number of days between password change		: 0
Maximum number of days between password change		: 99999
Number of days of warning before password expires	: 7

Le statut d'expiration d'un utilisateur 'tecmint' est le 1er décembre 2014, changeons-le en 1er novembre 2014 en utilisant 'usermod -e ' et confirmez la date d'expiration avec la commande 'chage'.

usermod -e 2014-11-01 tecmint
chage -l tecmint

Last password change					: Nov 02, 2014
Password expires					: never
Password inactive					: never
Account expires						: Nov 01, 2014
Minimum number of days between password change		: 0
Maximum number of days between password change		: 99999
Number of days of warning before password expires	: 7

4. Changer le groupe principal d'utilisateurs

Pour définir ou modifier un groupe principal d'utilisateurs, nous utilisons l'option '-g' avec la commande usermod. Avant de changer le groupe principal de l'utilisateur, assurez-vous d'abord de vérifier le groupe actuel de l'utilisateur tecmint_test.

id tecmint_test

uid=501(tecmint_test) gid=502(tecmint_test) groups=502(tecmint_test)

Maintenant, définissez le groupe babin comme groupe principal sur l'utilisateur tecmint_test et confirmez les modifications.

usermod -g babin tecmint_test
id tecmint_test

uid=501(tecmint_test) gid=502(babin) groups=502(tecmint_test)

5. Ajout d'un groupe à un utilisateur existant

Si vous souhaitez ajouter un nouveau groupe appelé 'tecmint_test0' à l'utilisateur 'tecmint', vous pouvez utiliser l'option '-G' avec la commande usermod comme indiqué ci-dessous.

usermod -G tecmint_test0 tecmint
id tecmint

Remarque : soyez prudent, lorsque vous ajoutez de nouveaux groupes à un utilisateur existant avec l'option '-G' seule, tous les groupes existants seront supprimés. l'utilisateur appartient. Donc, ajoutez toujours l'option « -a » (ajouter) avec l'option « -G » pour ajouter ou ajouter de nouveaux groupes.

6. Ajout d'un groupe supplémentaire et principal à l'utilisateur

Si vous devez ajouter un utilisateur à l'un des groupes supplémentaires, vous pouvez utiliser les options « -a » et « -G ». Par exemple, nous allons ajouter ici un compte utilisateur tecmint_test0 avec l'utilisateur wheel.

usermod -a -G wheel tecmint_test0
id tecmint_test0

Ainsi, l'utilisateur tecmint_test0 reste dans son groupe principal et également dans le groupe secondaire (wheel). Cela permettra à mon compte utilisateur normal d'exécuter toutes les commandes privilégiées root dans la boîte Linux.

eg : sudo service httpd restart

7. Modifier le nom de connexion de l'utilisateur

Pour modifier n'importe quel nom de connexion utilisateur existant, nous pouvons utiliser l'option '-l' (nouvelle connexion). Dans l'exemple ci-dessous, nous changeons le nom de connexion tecmint en tecmint_admin. Ainsi, le nom d'utilisateur tecmint a été renommé avec le nouveau nom tecmint_admin.

usermod -l tecmint_admin tecmint

Vérifiez maintenant l'utilisateur tecmint. Il ne sera pas présent car nous l'avons remplacé par tecmint_admin.

id tecmint

Vérifiez le compte tecmint_admin, il sera là avec le même UID et avec le groupe existant que nous avons ajouté auparavant.

id tecmint_admin

8. Verrouiller le compte utilisateur

Pour verrouiller n'importe quel compte d'utilisateur système, nous pouvons utiliser l'option '-L' (verrouillage). Une fois le compte verrouillé, nous ne pouvons pas nous connecter en utilisant le mot de passe et vous verrez un  ! ajouté avant le mot de passe crypté dans le fichier /etc/shadow, signifie que le mot de passe est désactivé.

usermod -L babin

Vérifiez le compte verrouillé.

grep -E --color 'babin' cat /etc/shadow

9. Déverrouiller le compte utilisateur

L'option « -U » est utilisée pour déverrouiller tout utilisateur verrouillé, cela supprimera le ! avant le mot de passe crypté.

grep -E --color 'babin' /etc/shadow
usermod -U babin

Vérifiez l'utilisateur après le déverrouillage.

grep -E --color 'babin' /etc/shadow

10. Déplacer le répertoire personnel de l'utilisateur vers un nouvel emplacement

Supposons que vous ayez un compte utilisateur sous le nom de « pinky » avec le répertoire personnel « /home/pinky », et que vous souhaitiez vous déplacer vers un nouvel emplacement, par exemple « /var /pinky'. Vous pouvez utiliser les options « -d » et « -m » pour déplacer les fichiers utilisateur existants du répertoire personnel actuel vers un nouveau répertoire personnel.

Vérifiez le compte et son répertoire personnel actuel.

grep -E --color 'pinky' /etc/passwd

Répertoriez ensuite les fichiers appartenant à l'utilisateur pinky.

ls -l /home/pinky/

Nous devons maintenant déplacer le répertoire personnel de /home/pinky vers /var/pinky.

usermod -d /var/pinky/ -m pinky

Ensuite, vérifiez le changement de répertoire.

grep -E --color 'pinky' /etc/passwd

Recherchez les fichiers sous « /home/pinky ». Ici, nous avons déplacé les fichiers en utilisant l'option -m afin qu'il n'y ait aucun fichier. Les fichiers utilisateur pinky seront désormais sous /var/pinky.

ls -l /home/pinky/
ls -l /var/pinky/

11. Créer un mot de passe non crypté pour l'utilisateur

Pour créer un mot de passe non crypté, nous utilisons l'option '-p' (mot de passe). À des fins de démonstration, je définis un nouveau mot de passe, dit « redhat » sur un utilisateur pinky.

usermod -p redhat pinky

Après avoir défini le mot de passe, vérifiez maintenant le fichier fantôme pour voir s'il est au format crypté ou non.

grep -E --color 'pinky' /etc/shadow

Remarque : Avez-vous vu dans l'image ci-dessus que le mot de passe est clairement visible par tout le monde. Il n’est donc pas recommandé d’utiliser cette option, car le mot de passe sera visible par tous les utilisateurs.

12. Changer le shell utilisateur

Le shell de connexion de l'utilisateur peut être modifié ou défini lors de la création de l'utilisateur avec la commande useradd ou modifié avec la commande 'usermod' en utilisant l'option '-s' ( coquille). Par exemple, l'utilisateur 'babin' a le shell /bin/bash par défaut, je veux maintenant le changer en /bin/sh .

grep -E --color 'babin' /etc/passwd
usermod -s /bin/sh babin

Après avoir modifié le shell utilisateur, vérifiez le shell utilisateur à l'aide de la commande suivante.

grep -E --color 'babin' /etc/passwd

13. Modifier l'ID utilisateur (UID)

Dans l'exemple ci-dessous, vous pouvez voir que mon compte utilisateur 'babin' détient l'UID de 502, je souhaite maintenant le changer en 888. comme mon UID. Nous pouvons attribuer un UID entre 0 et 999.

grep -E --color 'babin' /etc/passwd
OR
id babin

Maintenant, modifions l'UID de l'utilisateur babin en utilisant l'option « -u » (uid) et vérifions les modifications.

usermod -u 888 babin
id babin

14. Modification du compte utilisateur avec plusieurs options

Ici, nous avons un utilisateur jack et maintenant je souhaite modifier son répertoire personnel, son shell, sa date d'expiration, son étiquette, son UID et son groupe à la fois en utilisant une seule commande avec toutes les options comme nous l'avons discuté ci-dessus.

L'utilisateur Jack a le répertoire personnel par défaut /home/jack. Maintenant, je veux le changer en /var/www/html et lui attribuer shell comme bash, définissez la date d'expiration au 10 décembre 2014, ajoutez une nouvelle étiquette comme This is jack, changez l'UID en 555 et il sera membre du groupe Apple.

Voyons maintenant comment modifier le compte Jack en utilisant plusieurs options.

usermod -d /var/www/html/ -s /bin/bash -e 2014-12-10 -c "This is Jack" -u 555 -aG apple jack

Vérifiez ensuite les modifications de l'UID et du répertoire personnel.

grep -E --color 'jack' /etc/passwd

Chèque d'expiration du compte.

chage -l jack

Vérifiez le groupe dont tous les Jack ont été membres.

grep -E --color 'jack' /etc/group

15. Modifier l'UID et le GID d'un utilisateur

Nous pouvons changer l'UID et le GID d'un utilisateur actuel. Pour passer à un nouveau GID, nous avons besoin d’un groupe existant. Ici, il existe déjà un compte nommé orange avec un GID de 777.

Maintenant, mon compte utilisateur Jack souhaite se voir attribuer l'UID de 666 et le GID d'Orange (777).

Vérifiez l'UID et le GID actuels avant de les modifier.

id jack

Modifiez l'UID et le GID.

usermod -u 666 -g 777 jack

Vérifiez les changements.

id jack

Conclusion

Ici, nous avons vu comment utiliser la commande usermod avec ses options de manière très détaillée. Avant de connaître la commande usermod, il faut connaître la commande 'useradd' et ses options pour utiliser l'usermod. Si j'ai manqué un point dans l'article, faites-le-moi savoir via les commentaires et n'oubliez pas d'ajouter vos précieux commentaires.