Menu Fermer

La commande usermod : exemples et utilisations

Dans les distributions UNIX / Linux, la commande usermod est utilisée pour modifier les attributs d’un compte utilisateur déjà créé via la ligne de commande.
Cette commande modifie les fichiers de compte système pour refléter les modifications spécifiées sur la ligne de commande
La commande usermod est similaire dans son fonctionnement useradd ou adduser.

Dans ce tutoriel, je vous montre comment utiliser la commande usermod avec des exemples.

La commande usermod : exemples et utilisations

La syntaxe de la commande usermod

Voici la syntaxe de la commande :

usermod [options] <utilisateur>
OptionsDescription
-CNous pouvons ajouter un champ de commentaires pour le UserAccount
-dModifier le répertoire pour tout compte utilisateur existant
-eFaire expirer le compte dans une période spécifique
-gModifier le groupe principal pour un utilisateur
-GAjouter un groupe supplémentaire
-aAjouter quiconque du groupe à un groupe secondaire
-lVerrouiller le mot de passe d’un utilisateur.
Cela met un ‘!’ Devant le mot de passe chiffré, désactivant efficacement le mot de passe
-LVerrouiller le compte utilisateur. Cela verra le mot de passe afin que nous ne puissions pas utiliser le compte
-mDéplacer le contenu du répertoire home
-pUtiliser un mot de passe non chiffré pour le nouveau mot de passe. (Non sécurisé).
-sCréer un shell spécifié pour les nouveaux comptes.
-uUtilisé à UID attribué pour le compte utilisateur entre 0 et 999.
-UDéverrouiller les comptes d’utilisateurs.
Cela supprimera le verrouillage du mot de passe et nous permettra d’utiliser le compte d’utilisateur.

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

  • /etc/passwd – Informations sur le compte d’utilisateur
  • /etc/shadow – Informations sur le compte sécurisé
  • /etc/group – Informations sur les groupes utilisateurs
  • /etc/gshadow – Informations sécurisées sur les groupes utilisateurs
  • /etc/login.defs – Configuration de la suite des mots de passe cachés « shadow password »
  • /etc/subgid – IDs des groupes subalternes d’un utilisateur

Comment utiliser la commande usermod avec des exemples

Ajouter des informations au compte d’utilisateur

L’option -c est utilisée pour définir un bref commentaire (informations) sur le compte utilisateur.
Par exemple pour ajouter un commentaire au compte malekalmorte :

sudo usermod -c "Compte utilisateur de Malekal_morte" malekalmorte

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

grep -E --color 'mak' /etc/passwd
mak:x:1000:1000:mak,,,:/home/mak:/bin/bash
Ajouter des informations au compte d'utilisateur avec la commande usermod

Modifier le répertoire home de l’utilisateur

Dans l’étape ci-dessus, nous pouvons voir que notre répertoire home est sous /home/malekalmorte/, si nous devons le changer vers un autre répertoire, nous pouvons le modifier en utilisant l’option -d avec la commande usermod.

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

grep -E --color '/home/malekalmorte' /etc/passwd
malekalmorte:x:1001:1001:Compte utilisateur de Malekal_morte:/home/malekalmorte:/bin/bash
sudo usermod -d /var/www/ malekalmorte
grep -E --color '/var/www/' /etc/passwd
malekalmorte:x:1001:1001:Compte utilisateur de Malekal_morte:/var/www/:/bin/bash
Modifier le répertoire home de l'utilisateur avec la commande usermod

Définir la date d’expiration du compte utilisateur

L’option -e est utilisée pour définir la date d’expiration sur un compte utilisateur avec le format de date YYYY-MM-DD. Avant, configurant une date d’expiration sur un utilisateur, vérifions d’abord l’état d’expiration du compte actuel à l’aide de la commande chage (modifier les informations d’expiration du mot de passe de l’utilisateur).

sudo chage -l malekalmorte
Définir la date d'expiration du compte utilisateur avec la commande usermod

Le statut d’expiration d’un utilisateur malekalmorte est Jamais, passons le au 1er juin 2022 à l’aide de l’option Usermod -e et confirmez la date d’expiration avec la commande chage.

sudo usermod -e 2022-06-01 malekalmorte
sudo chage -l malekalmorte
Définir la date d'expiration du compte utilisateur avec la commande usermod

Changer le groupe principal de l’utilisateur

Pour définir ou modifier le groupe utilisateur principal, utilisez l’option -g de la commande usermod.
Avant de modifier le groupe principal de l’utilisateur, assurez-vous d’abord de vérifier le groupe actuel pour l’utilisateur avec la commande id :

id malekalmorte
sudo usermod -g mak malekalmorte
id malekalmorte
Changer le groupe principal de l'utilisateur avec la commande usermod

Ajout l’utilisateur à un groupe

Si vous souhaitez ajouter un nouveau groupe appelé malekalmorte_test à malekalmorte, vous pouvez utiliser l’option -G comme dans l’exemple ci-dessous.

sudo usermod -G malekalmorte_test malekalmorte
id malekalmorte
Ajout l'utilisateur à un groupe avec la commande usermod
Soyez prudent, tout en ajoutant de nouveaux groupes à un utilisateur existant avec l’option -G seul, supprimera tous les groupes existants auxquels l’utilisateur appartient. Donc, ajoutez toujours l’option -a (append) avec l’option -g pour ajouter ou ajouter de nouveaux groupes.

Ajouter l’utilisateur à un groupe supplémentaire et principal

Si vous devez ajouter un utilisateur à l’un groupe supplémentaire, vous pouvez utiliser les options -a et -g.

sudo usermod -a -G adm malekalmorte
id malekalmorte
Ajouter l'utilisateur à un groupe supplémentaire et principal avec la commande usermod

Modifier le nom l’utilisateur

Pour modifier le nom de connexion d’un utilisateur existant, nous pouvons utiliser l’option -l (new login).
Dans l’exemple ci-dessous, nous changeons le nom de connexion malekalmorte en malekalmorte_admin.

sudo usermod -l malekalmorte malekalmorte_admin

Vérifiez que l’ancien nom d’utilisateur a disparu :

id malekalmorte

Et que le nouveau est bien présent :

id malekalmorte_admin
Modifier le nom l'utilisateur avec la commande usermod

Verrouiller le compte d’utilisateur

Pour verrouiller n’importe quel compte d’utilisateur du système, nous pouvons utiliser l’option -L (Lock).
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 chiffré dans le fichier /etc/shadow, signifie que le mot de passe est désactivé.

sudo usermod -L malekalmorte

Pour vérifier le statut d’un compte utilisateur Linux :

sudo grep -E --color 'malekalmorte' /etc/shadow
Verrouiller le compte d'utilisateur avec la commande usermod

Déverrouiller le compte d’utilisateur

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

sudo  usermod -U malekalmorte

Puis pour s’assurer que le compte utilisateur est bien déverrouillé :

sudo grep -E --color 'malekalmorte' /etc/shadow
Déverrouiller le compte d'utilisateur avec la commande usermod

Créer un mot de passe non chiffré pour l’utilisateur

Par défaut et pour des raisons de sécurité, le mot de passe est stockée de manière chiffrée dans le fichier /etc/shadow.

Pour créer un mot de passe non chiffré, nous utilisons l’option -p (password).

 usermod -p <mot de passe> <nom d'utilisateur>

Dans cet exemple, je définis un nouveau mot de passe “vivemalekal-com” sur un utilisateur malekalmorte :

 sudo usermod -p vivemalekal-com malekalmorte

Pour vérifier la prise en compte de la modification du mot de passe :

sudo grep -E --color 'malekalmorte' /etc/shadow
Créer un mot de passe non chiffré pour l'utilisateur vers un nouvel emplacement

Notez qu’il reste possible de changer le mot de passe de l’utilisateur avec usermod, bien qu’il est plutôt conseillé d’utiliser la commande passwd.
Vous pouvez faire cela via la commande openssl (à installer) :

sudo usermod -p `openssl mot-de-passe` 

Modifier 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 (shell).

Par exemple, l’utilisateur malekalmorte a le shell /bin/bash par défaut, maintenant je veux le changer en /bin/sh.

sudo usermod -s /bin/sh malekalmorte
Modifier le shell utilisateur vers un nouvel emplacement

Modifier l’ID utilisateur (UID)

Dans l’exemple ci-dessous, vous pouvez voir que mon compte d’utilisateur malekalmorte possède l’UID de 502, maintenant je veux le changer en 888 comme mon UID.
Nous pouvons attribuer un UID entre 0 et 999.

Maintenant, changeons l’UID pour l’utilisateur babin en utilisant l’option ‘-u’ (uid) et vérifions les changements.

sudo usermod -u 1200 malekalmorte
Modifier l'ID utilisateur (UID) vers un nouvel emplacement

Changer UID et 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 GID de 777.

Maintenant, mon compte d’utilisateur malekalmorte veut se voir attribuer l’UID de 666 et le GID d’Orange (777).

sudo usermod -u 1200 -g 777 malekalmorte

Puis pour vérifier la prise en compte :

id malekalmorte

Modifier l’utilisateur avec plusieurs options

Ici, nous avons une prise utilisateur et maintenant je veux 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 vu ci-dessus.

L’utilisateur malekalmorte a le répertoire d’accueil par défaut /home/malekalmorte, maintenant je veux le changer en /var/www/html et assigner son shell comme bash, fixer la date d’expiration au 10 décembre 2022, ajouter une nouvelle étiquette comme Ceci est malekalmorte, changer UID à 555 et il sera membre du groupe Apple.

usermod -d /var/malekalmorte/ -s /bin/bash -e 2022-12-10 -c "Le compte de malekalmorte" -u 555 -aG apple malekalmorte