La commande passwd sous Linux : exemples d’utilisation
Sommaire
I. Présentation
Dans ce tutoriel, nous allons apprendre à utiliser la commande passwd disponible sous Linux. Cette commande sert à modifier le mot de passe d'un utilisateur sous Linux, mais nous verrons qu'elle permet également de réaliser d'autres actions. C'est une commande incontournable et intégrée aux différentes distributions Linux : Debian, Ubuntu, Kali Linux, Rocky Linux, Mint, etc.
Lorsque l'on utilise la commande passwd, on agit directement sur le fichier "/etc/shadow" car ce fichier contient le hash du mot de passe des différents utilisateurs du système. Le super-utilisateur root peut modifier le mot de passe de tous les comptes, tandis qu'un utilisateur standard pourra modifier uniquement son propre mot de passe. Si un utilisateur dispose de privilèges élevés via "sudo", il pourra aussi agir sur d'autres comptes.
Au-delà de permettre de changer un mot de passe, la commande passwd sert à supprimer un mot de passe, à définir une date d'expiration pour un mot de passe, etc.
Version initiale de l'article : 12 juillet 2022
II. Modifier un mot de passe sous Linux
Tout d'abord, il faut savoir qu'en exécutant la commande passwd dans sa propre session, sans spécifier d'argument, de nom d'utilisateur, etc... On peut modifier le mot de passe de son propre compte utilisateur. Si je suis connecté avec le compte "flo" et que j'exécute la commande ci-dessous, je suis invité à changer mon mot de passe.
passwd
Ensuite, pour modifier le mot de passe d'un utilisateur spécifique, il faut utiliser cette syntaxe :
Par exemple, si je souhaite modifier le mot de passe de l'utilisateur "it-connect", il me suffira de préciser son nom. Il conviendra de préciser "sudo" en préfixe selon le compte que l'on utilise, ou de basculer sur le compte root avec "su -" le temps de l'opération.
sudo passwd it-connect
Lorsque cette commande est exécutée, il faut saisir une première fois le nouveau mot de passe, puis une seconde fois. Le mot de passe saisit n'apparait pas à l'écran.
Nous pouvons en profiter pour obtenir le statut d'un compte utilisateur avec l'option "-S", comme ceci :
sudo passwd -S it-connect
Ce sont des informations que l'on peut obtenir dans le fichier "/etc/shadow". Dans cet exemple, la commande me retourne :
it-connect P 09/16/2022 0 99999 7 -1
Ce qui signifie :
- it-connect : le nom de l'utilisateur
- L : l'état du mot de passe, à savoir "P" si le mot de passe est valide et utilisable, "L" si le compte utilisateur est verrouillé, et "NP" si le compte n'a pas de mot de passe
- 09/16/2022 : la date de dernière modification du mot de passe
- 0 : l'âge minimum du mot de passe, ce qui signifie qu'on peut le changer immédiatement
- 99999 : l'âge maximum du mot de passe (autant vous dire que l'utilisateur peut le garder très longtemps)
- 7 : nombre de jours pour la période d'avertissement, lorsque l'expiration du mot de passe approche, avant que le compte soit verrouillé
- -1 : nombre de jours après l'expiration d'un mot de passe, avant que le compte soit verrouillé.
III. Forcer le changement du mot de passe sous Linux
Il est possible d'indiquer qu'un mot de passe est expiré, ce qui signifie que l'utilisateur concerné devra en définir un nouveau lors de la prochaine ouverture de session. Par défaut, le mot de passe n'expire jamais pour les utilisateurs sous Linux.
Pour réaliser cette action, l'option "-e" ou "--expire" doit être utilisée, selon la syntaxe suivante :
Par exemple, si on définit le mot de passe de l'utilisateur "it-connect" comme expiré grâce à la commande :
sudo passwd -e it-connect
passwd: password expiry information changed.
Lors de la prochaine connexion avec cet utilisateur, il sera obligatoire de changer le mot de passe. D'ailleurs, ce sera précisé que c'est suite à une décision de l'administrateur.
Vous devez changer votre mot de passe immédiatement (imposé par l’administrateur).
Changement du mot de passe pour it-connect.
IV. Âge minimum du mot de passe d'un utilisateur Linux
Avec la commande passwd, on peut définir un nombre de jours minimum avant que l'utilisateur puisse modifier son mot de passe. Autrement dit, on impose un âge minimum pour le mot de passe de cet utilisateur. C'est l'option "-n" de la commande passwd qui doit être utilisée. Voici la syntaxe à respecter :
À titre d'exemple, on peut imposer à l'utilisateur "it-connect" de conserver son mot de passe au moins pendant 31 jours :
sudo passwd it-connect -n 31
V. Âge maximum d'un mot de passe d'un utilisateur Linux
Dans le même esprit, on peut spécifier l'âge maximum d'un mot de passe afin d'être sûr que l'utilisateur le renouvèle conformément à la politique de mots de passe de l'entreprise. Cette fois-ci, c'est l'option "-x" qui sera utilisée. Voici la syntaxe à respecter :
À titre d'exemple, on peut imposer à l'utilisateur "it-connect" un changement de mot de passe une fois par an (365 jours) :
sudo passwd it-connect -x 365
À chaque fois, si vous rejouez la commande avec l'option "-S", vous pouvez vérifier que la modification est bien prise en compte.
VI. Conclusion
Grâce à ce tutoriel et aux différents exemples, vous êtes en mesure d'utiliser correctement la commande passwd sous Linux. La plupart du temps, on utilise cette commande pour changer le mot de passe d'un utilisateur, mais c'est bien de savoir qu'elle est capable d'effectuer d'autres actions importantes en matière de gestion des comptes.