21/12/2024

Commandes et Système

Forcer le changement de mot de passe des comptes utilisateur sous Linux

I. Présentation

Dans ce tutoriel, nous allons voir comment forcer le changement de mot de passe des utilisateurs sous Linux en utilisant les commandes "passwd" et "chage".

Il est parfois nécessaire de forcer les utilisateurs à changer leur mot de passe pour des raisons de sécurité. Cela peut être utile après une fuite de données, une modification de la politique de mot de passe ou simplement pour renforcer régulièrement la sécurité des comptes.

Version originale de l'article : 24 janvier 2017.

II. Forcer le changement de mot de passe à la prochaine connexion

Si vous souhaitez forcer un utilisateur à changer son mot de passe lors de sa prochaine connexion, après une authentification réussie, il vous faut utiliser la commande "passwd" avec l'option "-e" (pour "expire") en tant qu'utilisateur privilégié ("root" ou via "sudo"). Cette option permet de marquer le mot de passe de l'utilisateur comme expiré.

# Forcer l'expiration d'un mot de passe utilisateur
passwd -e <nom_utilisateur>

# Exemple
passwd -e admin_xyz

Comme vous pouvez le voir, cette action a pour effet de paramétrer le 3ème attribut de l'utilisateur ciblé à "0" dans le fichier "/etc/shadow" :

Forcer l'expiration d'un mot de passe utilisateur.

Ce troisième attribut, correspondant au nombre de jours depuis le dernier changement de mot de passe, est défini à "0", ce qui l'oblige à le changer immédiatement. Si vous souhaitez en savoir plus sur la structure du fichier "/etc/shadow" sous Linux, je vous oriente vers notre article sur ce sujet :

À la prochaine connexion, l'utilisateur "testuser" sera obligé de définir un nouveau mot de passe. Voilà à quoi ressemblera cet affichage :

Procédure de changement de mot de passe côté utilisateur (accès SSH).
Procédure de changement de mot de passe côté utilisateur (accès SSH).

Dans le cas d'une authentification locale, l'utilisateur sera directement authentifié après ce changement de mot de passe, dans le cas d'un accès distant (SSH), il devra s'authentifier de nouveau après son changement de mot de passe (avec son nouveau mot de passe donc).

III. Gestion avancée des mots de passe avec chage

La commande "chage" permet de gérer le cycle de vie des mots de passe, comme la date d'expiration ou la durée de validité maximale. Elle est particulièrement utile pour configurer des politiques de mot de passe avancées. Comme nous allons le voir ici.

Il est recommandé de passer par la commande "chage" pour gérer le cycle de vie d'un mot de passe plutôt que par une modification directe et manuelle du fichier /etc/shadow.

A. Afficher les informations de vieillissement d'un mot de passe

Pour afficher les informations de cycle de vie du mot de passe d'un utilisateur, nous utilisons l'option "-l" de la commande "chage" :

# Afficher les informations de cycle de vie du mot de passe
chage -l <nom_utilisateur>

# Exemple
chage -l testuser

Dernière modification du mot de passe                               : juin 05, 2024
Le mot de passe expire                                              : jamais
Mot de passe inactif                                                : jamais
Le compte expire                                                    : jamais
Nombre minimal de jours entre deux changements de mot de passe      : 254
Nombre maximal de jours entre deux changements du mot de passe      : 99999
Nombre de jours d'avertissements avant que le mot de passe n'expire : 7

Comme vous le voyez, nous obtenons ici tous les détails du cycle de vie du mot de passe de l'utilisateur en question : date d'expiration, état du compte (expiré ou non), nombre de jours minimal et maximal entre deux changements, etc. En fait, cette commande ne fait que "traduire" le contenu du fichier "/etc/shadow" pour l'utilisateur ciblé.

B. Définir une durée maximale pour un mot de passe

Pour définir une durée de validité maximale d'un mot de passe, il faut utiliser l'option "-M" suivie du nombre de jours souhaité. Par défaut, les systèmes Linux n'imposent pas de durée de vie maximale des mots de passe. Par exemple, pour forcer le changement de mot de passe tous les 30 jours :

# Définir la durée de vie maximale d'un mot de passe à 30 jours
chage -M 30 <nom_utilisateur>

# Exemple
chage -M 30 john

Ainsi, après 30 jours depuis son dernier changement de mot de passe, l'utilisateur sera obligé de le changer. Il est important de noter que cette valeur n'a pas besoin d'être reconfigurée à chaque changement de mot de passe. Étant donné que le nombre de jours depuis le dernier changement de mot de passe est une valeur enregistrée, ce paramètre s'appliquera automatiquement à chaque fois.

C. Définir une durée minimale pour un mot de passe

Nous pouvons également définir une durée minimale pendant laquelle un utilisateur doit conserver son mot de passe, utilisez l'option "-m" suivie du nombre de jours souhaité :

# Définir la durée de vie minimale d'un mot de passe à 7 jours
chage -m 7 <nom_utilisateur>

# Exemple
chage -m 7 john

Il sera alors impossible pour l'utilisateur de changer de mot de passe avant ce nombre de jours. Cela peut être nécessaire pour être conforme à certaines réglementations, mais aussi pour éviter qu'un utilisateur ne change plusieurs fois de mots de passe afin de finir par remettre le même qu'avant. Cela est vrai dans le cas où le système enregistre l'historique des X deniers mots de passe.

D. Définir un délai d'avertissement avant l'expiration

Il est également possible de gérer le délai d'avertissement à partir duquel on prévient l'utilisateur qu'il sera obligé de changer son mot de passe. Pour avertir un utilisateur de l'expiration imminente de son mot de passe, il faut utiliser l'option "-W" suivie du nombre de jours avant expiration :

# Paramétrer un délai de prévenance de 5 jours avant changement de mot de passe
chage -W 5 <nom_utilisateur>

# Exemple
change -W 5 john

Par défaut, ce délai est de 7 jours, voici à quoi ressemble cet avertissement pour un utilisateur qui devra bientôt changer de mot de passe :

Avertissement d'expiration de mot de passe (vue utilisateur).
Avertissement d'expiration de mot de passe (vue utilisateur).

Cet avertissement apparait après une authentification réussie avec le compte en question. Après avoir appliqué l'ensemble de ces paramètres, nous pouvons constater que les changements sont bien effectifs avec l'option vue précédemment :

Constat des changements effectués avec la commande "chage".
Constat des changements effectués avec la commande "chage".

IV. Conclusion

Garantir que les mots de passe soient changés fréquemment et qu'ils respectent les nouvelles politiques de mot de passe est important pour maintenir la sécurité des systèmes Linux. En utilisant les commandes "passwd" et "chage", vous pouvez gérer efficacement les politiques de mots de passe et renforcer la sécurité des comptes utilisateur.

author avatar
Mickael Dorigny Co-founder
Co-fondateur d'IT-Connect.fr. Auditeur/Pentester chez Orange Cyberdéfense.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

2 commentaires sur “Forcer le changement de mot de passe des comptes utilisateur sous Linux

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.