usermod est un utilitaire de ligne de commande qui vous permet de modifier les informations de connexion d’un utilisateur.

Cet article couvre la façon d’utiliser la commande usermod pour ajouter un utilisateur à un groupe, changer le shell d’un utilisateur, son nom de connexion, son répertoire d’origine, et plus encore.

Commande usermod #

La syntaxe de la commande usermod prend la forme suivante :

usermod USER

Seul root ou les utilisateurs avec sudoaccès peuvent invoquer usermod et modifier un compte utilisateur. En cas de succès, la commande n’affiche aucune sortie.

Ajouter un utilisateur à un groupe #

Le cas d’utilisation le plus typique de la usermod est l’ajout d’un utilisateur à un groupe.

Pour ajouter un utilisateur existant à un groupe secondaire, utilisez les options -a -G suivies du nom du groupe et du nom d’utilisateur :

usermod -a -G GROUP USER

Si vous voulez ajouter l’utilisateur à plusieurs groupes à la fois, spécifiez les groupes après l’option -G séparés par des , (virgules) sans espace blanc intermédiaire.

Par exemple, pour ajouter l’utilisateur linuxize au groupe games, vous devez exécuter la commande suivante :

sudo usermod -a -G games linuxize

Toujours utiliser l’option -a (append) lorsque vous ajoutez un utilisateur à un nouveau groupe. Si vous omettez l’option -a, l’utilisateur sera supprimé des groupes non listés après l’option -G.

Si l’utilisateur ou le groupe n’existe pas, la commande vous en avertira.

Changer le groupe primaire d’un utilisateur #

Pour changer le groupe primaire d’un utilisateur, invoquez la commande usermod avec par l’option -g suivie du nom du groupe et du nom d’utilisateur :

sudo usermod -g GROUP USER

Dans l’exemple suivant, nous changeons le groupe primaire de l’utilisateur linuxize en developers:

usermod -g developers linuxize

Chaque utilisateur peut appartenir à exactement un groupe primaire et à zéro ou plusieurs groupes secondaires.

Changement des informations sur l’utilisateur #

Pour changer les informations GECOS (le nom complet de l’utilisateur), exécutez la commande avec l’option -c suivie du nouveau commentaire et du nom d’utilisateur :

usermod -c "GECOS Comment" USER

Voici un exemple montrant comment ajouter des informations supplémentaires à l’utilisateur linuxize :

usermod -c "Test User" linuxize

Ces informations sont stockées dans le fichier /etc/passwd.

Changer le répertoire d’accueil d’un utilisateur #

Sur la plupart des systèmes Linux, les répertoires d’accueil des utilisateurs sont nommés d’après le nom de l’utilisateur et créés sous le répertoire /home.

Si, pour une raison quelconque, vous voulez changer le répertoire d’accueil de l’utilisateur invoquez la commande usermod avec par l’option -d suivie du chemin absolu du nouveau répertoire d’accueil et du nom de l’utilisateur :

usermod -d HOME_DIR USER

Par défaut, la commande ne déplace pas le contenu du répertoire d’accueil de l’utilisateur vers le nouveau. Pour déplacer le contenu, utilisez l’option -m. Si le nouveau répertoire n’existe pas déjà, il est créé:

usermod -d HOME_DIR -m USER

Voici un exemple montrant comment changer le répertoire personnel de l’utilisateur www-data en /var/www:

usermod -d /var/www www-data

Changer le shell par défaut d’un utilisateur #

Le shell par défaut est le shell qui est exécuté après que vous vous connectez au système. Par défaut, sur la plupart des systèmes Linux, l’interpréteur de commandes par défaut est défini sur Bash Shell.

Pour changer l’interpréteur de commandes par défaut de l’utilisateur, exécutez la commande avec l’option -s suivie du chemin absolu de l’interpréteur de commandes et du nom de l’utilisateur:

usermod -s SHELL USER

Dans l’exemple ci-dessous, nous changeons l’interpréteur de commandes de l’utilisateur en Zsh:

sudo usermod -s /usr/bin/zsh linuxize

Vous pouvez découvrir les interpréteurs de commandes disponibles sur votre système en affichant le contenu du fichier /etc/shells.

Changer l’UID d’un utilisateur :

L’UID (l’identifiant de l’utilisateur) est un numéro attribué à chaque utilisateur. Il est utilisé par le système d’exploitation pour se référer à un utilisateur.

Pour changer l’UID de l’utilisateur, invoquez la commande avec l’option -u suivie du nouvel UID et du nom de l’utilisateur:

usermod -u UID USER

L’exemple ci-dessous montre comment changer le numéro « UID » en « 1050 »:

sudo usermod -u 1050 linuxize

L’UID des fichiers appartenant à l’utilisateur et situés dans le répertoire personnel de l’utilisateur, et le fichier de la boîte aux lettres de l’utilisateur seront modifiés automatiquement. La propriété de tous les autres fichiers doit être modifiée manuellement.

Changer un nom d’utilisateur #

Bien que cela ne soit pas très fréquent, il arrive que vous souhaitiez changer le nom d’un utilisateur existant. L’option -l est utilisée pour changer le nom d’utilisateur :

usermod -l NEW_USER USER

Dans l’exemple ci-dessous, nous renommons l’utilisateur linuxize en lisa à « 1050 » :

sudo usermod -l linuxize lisa

Lorsque vous changez le nom d’utilisateur, vous pouvez également vouloir changer le répertoire d’origine de l’utilisateur pour refléter le nouveau nom d’utilisateur.

Définir une date d’expiration de l’utilisateur #

La date d’expiration est la date à laquelle le compte utilisateur sera désactivé. Pour définir la date d’expiration de l’utilisateur, utilisez l’option -e:

sudo usermod -e DATE USER

La date d’expiration doit être définie en utilisant le format YYYY-MM-DD.

Par exemple, pour désactiver l’utilisateur linuxize sur 2022-02-21, vous devez exécuter la commande suivante :

sudo usermod -e "2022-02-21" linuxize

Pour désactiver l’expiration d’un compte, définissez une date d’expiration vide :

sudo usermod -e "" linuxize

Utilisez la commande chage -l pour afficher la date d’expiration de l’utilisateur :

sudo chage -l linuxize
Last password change: Jul 24, 2018Password expires: neverPassword inactive: neverAccount expires: neverMinimum number of days between password change: 0Maximum number of days between password change: 99999Number of days of warning before password expires: 7

La date d’expiration est stockée dans le fichier /etc/shadow.

Verrouillage et déverrouillage d’un compte utilisateur #

L’option -L vous permet de verrouiller un compte utilisateur :

usermod -L USER

Les commandes insèrent un point d’exclamation (!) devant le mot de passe crypté. Lorsque le champ du mot de passe dans le fichier /etc/shadow contient un point d’exclamation, l’utilisateur ne pourra pas se connecter au système en utilisant l’authentification par mot de passe. D’autres méthodes de connexion, comme l’authentification par clé ou le passage à l’utilisateur sont toujours autorisées. Si vous voulez verrouiller le compte et désactiver toutes les méthodes de connexion, vous devez également définir la date d’expiration à 1.

Les exemples suivants montrent comment verrouiller l’utilisateur linuxize:

sudo usermod -L linuxize
sudo usermod -L -e 1 linuxize

Pour déverrouiller un utilisateur, exécutez usermod avec l’option -U:

usermod -U USER

Conclusion #

Nous vous avons montré comment utiliser la commande usermod pour définir les informations du compte utilisateur.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.