Tux, the Linux mascot, using a laptop in front of Cinnamon desktop mountains logo.
Agence web » Actualités du digital » 8 astuces de gestion des utilisateurs Linux avec la commande usermod

8 astuces de gestion des utilisateurs Linux avec la commande usermod

La commande UserMod est un outil pour mettre à jour les détails sur un compte utilisateur existant dans votre système. C'est un peu comme modifier le « profil » d'un utilisateur Linux. Avec lui, vous pouvez ajuster n'importe quoi du nom d'utilisateur au shell de connexion, sans avoir besoin de supprimer et de recréer le compte.

8

Mettre à jour les informations d'un utilisateur

Si vous souhaitez simplement modifier les détails généraux de l'utilisateur comme la description du compte (également appelé le « champ de commentaire »,), vous pouvez utiliser l'option -c. Ce champ est souvent utilisé pour des choses comme le nom complet de l'utilisateur, le département ou toute autre courte description. Voici un exemple:

sudo usermod -c "HTG Test User" htg

L'indicateur -c est pour le champ de commentaires. Tout ce que vous mettez en citations apparaîtra dans « / etc / passwd ». Après avoir exécuté cela, vous pouvez vérifier si la mise à jour a fonctionné en examinant le fichier « / etc / passwd »:

grep htg /etc/passwd

Remarquez «l'utilisateur de test HTG» dans le cinquième champ. C'est la description que nous venons d'ajouter. Ce champ est parfois utilisé par les gestionnaires d'affichage ou les services publics comme le doigt. Il aide aux serveurs multi-utilisateurs, où vous ne vous souvenez peut-être pas qui est un utilisateur particulier.

7

Changer le nom d'un utilisateur

Parfois, vous devez modifier le nom de connexion d'un utilisateur. Peut-être que le nom d'utilisateur était temporaire, ou peut-être que vous voulez simplement standardiser les conventions de dénomination. La commande Usermod rend cela possible sans avoir à supprimer et recréer le compte. Voici comment vous modifieriez le nom d'utilisateur de notre exemple d'utilisateur «htg» en «HowtoGeek»:

sudo usermod -l howtogeek htg

Le drapeau -l (minuscule L) signifie le nom de connexion. Il indique à Usermod que vous souhaitez modifier le nom d'utilisateur du compte. Remarquez soigneusement la syntaxe. Vous devez d'abord fournir le nouveau nom d'utilisateur, puis le nom d'utilisateur actuel de l'utilisateur pour lequel vous souhaitez modifier le nom.

Après avoir exécuté cela, le compte utilise désormais «Howtogeek» comme nom de connexion. Vous pouvez vérifier à nouveau la modification en vérifiant à nouveau le fichier « / etc / passwd »:

grep howtogeek /etc/passwd

Vous devez également savoir que la modification du nom de connexion ne renomme pas automatiquement le répertoire personnel de l'utilisateur. Ainsi, dans cet exemple, l'utilisateur aurait toujours « / home / htg » comme répertoire domestique, sauf si vous le modifiez explicitement (couvert dans une section ultérieure.) Avant d'exécuter la commande, assurez-vous que l'utilisateur est déconnecté pour éviter les erreurs ou un comportement inattendu.

6

Modifier les ID utilisateur

Chaque utilisateur d'un système Linux n'est pas seulement identifié par son nom d'utilisateur. Ils ont également un numéro UID (ID utilisateur). L'UID est ce qui se soucie vraiment du système lors de la vérification de la propriété et des autorisations de fichiers. Normalement, vous n'avez pas besoin de gâcher avec les UID, mais il y a des moments où vous pourriez, comme la migration des utilisateurs entre les systèmes tout en gardant la possession de fichiers cohérente ou en fixant des conflits lorsque deux utilisateurs ont accidentellement le même UID.

Voici comment vous modifieriez l'UID de notre exemple «htg» de l'utilisateur de l'heure actuelle à 1500:

sudo usermod -u 1500 htg

L'option -u définit un nouvel UID pour l'utilisateur. Ensuite, nous y transmettons le nouveau numéro d'identification utilisateur. Assurez-vous qu'il est unique sur le système. Après avoir changé l'UID, confirmez-le en fonctionnant:

id htg

Vous devriez voir le nouvel UID reflété dans la sortie. Une bonne chose est que les fichiers que l'utilisateur possèdent et figurent dans le répertoire domestique de l'utilisateur auront automatiquement son UID.

Après avoir changé l'UID de l'utilisateur «HTG», le fichier de son répertoire personnel a également été mis à jour vers le nouvel UID.

5

Définir ou réinitialiser le mot de passe d'un utilisateur

La modification du mot de passe d'un utilisateur est l'une des tâches administratives les plus courantes. Normalement, vous utiliseriez la commande Passwd pour ce faire, mais intéressant, UserMod peut également gérer les modifications liées au mot de passe.

Maintenant, il y a une prise. La commande Usermod ne crypte pas le mot de passe pour vous. Cela signifie que le mot de passe sera enregistré en texte brut dans le fichier « / etc / ombre ». Voici la syntaxe générale:

sudo usermod -p password htg

Vous pouvez consulter le fichier « / etc / shadow » pour confirmer si le mot de passe a été modifié.

sudo grep htg /etc/shadow

Comme vous pouvez le voir, le mot de passe a été modifié mais peut être considéré comme un texte brut. Donc, cela le rend un peu risqué. Il peut être utile dans certaines situations de niche où vous écrivez un script et peut devoir utiliser des mots de passe prédéfinis. Dans la plupart des autres cas, PASSWD est la meilleure option pour modifier le mot de passe d'un utilisateur.

4

Redéfinir le répertoire domestique d'un utilisateur

Par défaut, lorsque vous créez un utilisateur, il obtient un répertoire domestique sous « / home / username ». Mais que se passe-t-il si vous voulez déplacer ce répertoire ailleurs, peut-être vers un autre disque? Ou peut-être que vous avez renommé l'utilisateur et que vous souhaitez que le répertoire personnel correspond? C'est là que l'option -D de la commande Usermod est utile.

sudo usermod -d /home/howtogeek htg

L'option -D définit un nouveau chemin de répertoire domestique pour l'utilisateur. Après avoir exécuté cela, Linux reconnaîtra « / home / howtogeek » comme domicile de l'utilisateur. Mais voici la partie importante. Cela ne déplace aucun fichier. Il modifie simplement la référence. Si « / home / howtogeek » n'existe pas, l'utilisateur se retrouvera avec une maison vide (ou même inexistante).

Si vous souhaitez que les fichiers de l'ancien répertoire domestique soient déplacés dans le nouveau, ajoutez l'option -m:

sudo usermod -d /home/howtogeek -m htg

Maintenant, Usermod va tout déplacer de « / home / htg » à « / home / howtogeek ». Ceci est particulièrement utile lors du renommer les utilisateurs, donc leur répertoire domestique correspond au nouveau nom de connexion. Après avoir déménagé, c'est une bonne idée de répertorier le répertoire et de confirmer que tout est venu:

ls -la /home/howtogeek

Si vous pouvez voir les fichiers de l'utilisateur, l'opération a réussi.

3

Ajustez les groupes d'un utilisateur

Sur Linux, les groupes sont la façon dont vous organisez les utilisateurs et contrôlez leur accès aux fichiers, répertoires et services. Chaque utilisateur appartient à au moins un groupe primaire, et il peut également appartenir à plusieurs groupes supplémentaires (ou secondaires). La commande UserMod vous permet de modifier les groupes primaires et secondaires, ainsi que d'ajouter ou de supprimer les utilisateurs des groupes existants.

Le groupe principal est généralement créé en même temps que le compte utilisateur et a le même nom que l'utilisateur. Vous pouvez le changer avec l'option -g.

sudo usermod -g developers htg

Maintenant, chaque fois que «HTG» crée un fichier, il appartiendra au groupe de développeurs (au lieu de leur ancien groupe primaire.) La plupart du temps, vous voudrez ajouter des utilisateurs à des groupes supplémentaires afin qu'ils puissent accéder à certaines ressources (sudo, par exemple)

sudo usermod -aG sudo htg

L'option -a signifie ajouter. Sans cela, vous risquez de remplacer les abonnements de groupe existants. L'option -g ajoute l'utilisateur au groupe spécifié. Si vous utilisez -g sans -a, vous dites à Linux de remplacer tous les groupes supplémentaires par ceux que vous spécifiez.

sudo usermod -G sudo htg

Maintenant, «HTG» n'est que dans le groupe sudo (en plus de leur groupe principal). Donc, faites attention à l'utiliser car vous pouvez accidentellement verrouiller quelqu'un parmi les autorisations importantes.

Il n'y a aucun moyen de supprimer un utilisateur d'un groupe utilisant UserMod. Cependant, vous pouvez spécifier les groupes dont vous souhaitez que l'utilisateur soit membre. Par exemple, disons que «HTG» est membre de l'employé des groupes, de l'administrateur et de l'informatique. Vous souhaitez supprimer l'utilisateur de l'administrateur. Pour cela, courez:

sudo usermod -G employee,IT htg

Maintenant, «HTG» est hors du groupe d'administration mais toujours en employé et en informatique.

2

Configurer le shell d'un utilisateur

Chaque fois qu'un utilisateur se connecte, Linux démarre un shell, l'environnement de ligne de commande où il interagit avec le système. La valeur par défaut est généralement « / bin / bash », mais il y a beaucoup d'autres coquilles comme « / bin / zsh », « / bin / sh », ou même des coquilles restreintes spécialisées.

Avec UserMod, vous pouvez modifier le shell lance lorsque l'utilisateur se connecte. Voici un exemple où nous modifions le shell de l'utilisateur «HTG» en Zsh:

sudo usermod -s /bin/zsh htg

L'option -s définit le shell de connexion de l'utilisateur. Ensuite, nous passons le chemin du shell que nous voulons définir pour l'utilisateur. Maintenant, lorsque «HTG» se connectera, ils seront accueillis par Zsh au lieu de bash. Si vous n'êtes pas sûr des chemins disponibles pour différents shells de votre système, essayez de fonctionner:

cat /etc/shells

Cela répertorie les coquilles disponibles avec leurs chemins. Après avoir modifié le shell par défaut, vous pouvez confirmer si elle a réussi en fonctionnant:

getent passwd htg

Comme vous pouvez le voir, le shell par défaut pour «htg» a ​​été changé en zsh à partir de bash. Ceci est utile si vous souhaitez restreindre l'activité d'un utilisateur en donnant un shell moins puissant.

1

Verrouiller et déverrouiller les comptes d'utilisateurs

Parfois, vous ne voulez pas supprimer un utilisateur, mais vous voulez les empêcher de vous connecter. Peut-être qu'ils sont en congé, peut-être qu'ils ont quitté l'entreprise, mais vous devez conserver leurs fichiers, ou peut-être que vous avez le dépannage. C'est là que le verrouillage du compte entre en jeu. Avec Usermod, vous pouvez verrouiller ou déverrouiller rapidement le mot de passe d'un compte.

Pour verrouiller le compte de l'utilisateur «HTG», je vais simplement exécuter:

sudo usermod -L htg

L'option -l verrouille le compte. Il fonctionne en ajoutant une marque d'exclamation (!) Devant le mot de passe chiffré à l'intérieur « / etc / ombre. » Après cela, «HTG» ne pourra pas se connecter avec leur mot de passe. Lorsque vous êtes prêt à redonner l'accès, il suffit de courir:

sudo usermod -U htg

L'option -u débloque le compte en supprimant le! devant le hachage de mot de passe.

Le verrouillage affecte uniquement la connexion basée sur les mots de passe. Si l'utilisateur a des touches SSH configurées, il pourrait toujours se connecter avec ceux à moins de prendre des mesures supplémentaires. Pour les suspensions temporaires, vous pouvez combiner Usermod avec les dates d'expiration du compte. Par exemple:

sudo usermod -e 2025-09-30 htg

Après le 30 septembre 2025, le compte sera désactivé automatiquement.


Que vous soyez un administrateur système ou simplement curieux de la gestion des utilisateurs de Linux, ces astuces seront utiles. Il y a beaucoup plus d'astuces Linux qui sauvent du temps que vous devriez apprendre. Vous pouvez également explorer d'autres commandes, telles que la commande NC.

★★★★★