La commande passwd sous Linux : exemples d’utilisation

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 :

passwd1

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.

Commande passwd Linux

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 :

passwd4

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 :

passwd7

À 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 :

passwd6

À 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.

Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Partager sur Google+ Envoyer par mail

Florian Burnel

Ingénieur système et réseau, cofondateur d'IT-Connect et Microsoft MVP "Cloud and Datacenter Management". Je souhaite partager mon expérience et mes découvertes au travers de mes articles. Généraliste avec une attirance particulière pour les solutions Microsoft et le scripting. Bonne lecture.

florian has 4244 posts and counting.See all posts by florian

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.