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 sudo
accè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.