Comment forcer le changement de mot de passe à la prochaine connexion sur Linux

Dans un environnement multi-utilisateurs Linux, il est une pratique standard pour créer des logins avec un certain mot de passe par défaut.
Puis, après une connexion réussie, un nouvel utilisateur peut changer le mot de passe par défaut.
Pour des raisons de sécurité, il est souvent recommandé de “forcer” les utilisateurs à modifier le mot de passe par défaut après la première connexion pour vous assurer que le mot de passe initial n'est plus utilisé.

Voici comment forcer un utilisateur à changer son mot de passe sur la prochaine connexion.

Chaque login dans Linux est associée à différentes configurations et les informations relatives aux mots de passe.
Par exemple, il se souvient de la date de la dernière modification de mot de passe, le nombre minimum/maximum de jours entre les changements de mot de passe, et quand expire le mot de passe en cours, etc.

Un outil en ligne de commande appelé chage peut accéder et régler l'expiration d'un mot de passe.
Vous pouvez utiliser cet outil pour forcer le changement de mot de passe d'un login à la prochaine connexion.

Pour afficher les informations d'expiration d'un mot de passe d'un login particulier (par exemple, toto), exécutez la commande suivante.
Notez que vous devez posséder le privilège root lorsque vous vérifiez les informations d'âge d'un mot de passe d'un autre login que vous-même.

chage -l toto

Résultat:

Dernier changement de mot de passe : oct. 17, 2015
Fin de validité du mot de passe : jamais
Mot de passe désactivé : jamais
Fin de validité du compte : jamais
Nombre minimum de jours entre les changements de mot de passe : 0
Nombre maximum de jours entre les changements de mot de passe : 99999
Nombre de jours d'avertissement avant la fin de validité du mot de passe : 7

Forcé l'utilisateur à changer son mot de passe

Si, vous voulez forcer un utilisateur à changer son mot de passe, utilisez les commandes suivantes:

chage -d0 <login>

A l'origine l'option “-d <N>” est censé définir l'âge d'un mot de passe (en termes de nombre de jours depuis le 1er Janvier, 1970, lorsque le mot de passe a été changé).
Donc “-d0” indique que le mot de passe a été modifié le 1er Janvier 1970, ce qui fait expirer essentiellement le mot de passe actuel, et l'amène à être modifié sur la prochaine connexion.

Une autre façon de faire expirer un mot de passe est via la commande passwd :

passwd -e <login>

La commande ci-dessus a le même effet que chage -d0, rendant le mot de passe actuel d'un login expirer.
Maintenant, vérifier les informations de mot de passe du login à nouveau et vous verrez:

chage -l toto
Dernier changement de mot de passe : Le mot de passe doit être changé
Fin de validité du mot de passe : Le mot de passe doit être changé
Mot de passe désactivé : Le mot de passe doit être changé
Fin de validité du compte : jamais
Nombre minimum de jours entre les changements de mot de passe : 0
Nombre maximum de jours entre les changements de mot de passe : 99999
Nombre de jours d'avertissement avant la fin de validité du mot de passe : 7

Lorsque vous vous connectez à nouveau, vous serez invité à modifier le mot de passe.
Vous aurez besoin de vérifier le mot de passe actuel une fois de plus avant le changement.

ssh toto@127.0.0.1
toto@127.0.0.1's password:
You are required to change your password immediately (root enforced)
Linux gw01 3.16.0-4-686-pae #1 SMP Debian 3.16.7-ckt11-1+deb8u5 (2015-10-09) i686
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
WARNING: Your password has expired.
You must change your password now and login again!
Changement du mot de passe pour toto.
Mot de passe UNIX (actuel) :

source: ask.xmodulo.com