Une compilation de documentations   { en , fr }

Forcer un utilisateur à changer le mot de passe de son compte système

Étiquettes:
Créé en:
Dernière modification:
Auteur:
Xavier Béguin

Les commandes ad hoc

La commande chage

Sous les systèmes de type UNIX (dont font partie les systèmes GNU/Linux), la commande chage (pour change age, et qui est réservée au super-utilisateur) permet de réinitialiser le nombre de jours depuis le dernier changement de mot de passe. Ceci aura pour effet d'obliger l'utilisateur à changer son mot de passe lors de sa prochaine connexion.

Par exemple, pour forcer l'utilisateur de login hkrustofski à changer son mot de passe, on pourra utiliser la commande suivante :

~# chage -d 0 hkrustofski

La commande passwd

L'option -e de la commande passwd (qui sert principalement à changer son mot de passe en ligne de commande) permet au superutilisateur d'effectuer exactement la même opération. La commande suivante est donc équivalente à la commande chage donnée ci-dessus :

~# passwd -e hkrustofski

Effet sur l'utilisateur

À sa prochaine authentification, le système demandera à cet utilisateur de saisir à nouveau son mot de passe habituel, puis de choisir un nouveau mot de passe en le saisissant deux fois de suite. Ceci fonctionnera aussi bien si l'utilisateur se connecte à distance via ssh (par mot de passe), par une console texte, ou par la plupart des consoles graphiques (comme gdm sous Gnome, par exemple).

Vérifier l'état du mot de passe d'un utilisateur

Avec la commande chage

chage permet également à l'administrateur du système, grâce à son option -l, de voir les informations que la base de données des utilisateurs du système conserve sur la durée de validité du mot de passe d'un compte. Voici un exemple d'utilisation avant la réinitialisation de la nombre de jour depuis le dernier changement du mot de passe :

~# chage -l hkrustofski
Dernier changement de mot de passe        : oct. 22, 2014
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            : -1
Nombre de jours d'avertissement avant la fin de validité du mot de passe : 7

Et voici ce que cette même commande affiche après que le super-utilisateur a utilisé la commande chage -d0 hkrustoski :

~# chage -l hkrustofski
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            : -1
Nombre de jours d'avertissement avant la fin de validité du mot de passe : 7

Avec la commande passwd

La commande passwd -S <login> permet d'afficher à peu près les mêmes informations dans un format plus condensé :

~# passwd -S hkrustofski
centipede L 10/22/2014 0 99999 7 -1

Les informations affichées par passwd -S sont décrites dans la page de manuel passwd(1), et consistent en sept champs :

  • le nom du compte ;
  • un indicateur d'état du mot de passe:
    • L si le mot de passe est bloqué,
    • NP si le compte n'a pas de mot de passe,
    • P s'il a un mot de passe utilisable ;
  • la date de dernière modification du mot de passe (au format US mois/jour/année) ;
  • le nombre minimal de jours avant modification possible forcée du mot de passe ;
  • le nombre maximal de jours de validité du mot de passe avant un changement forcé ;
  • le nombre de jours d'avertissement avant expiration du mot de passe ;
  • le nombre de jours d'inactivité après expiration du mot de passe avant que le compte ne soit bloqué.

En ajoutant l'option -a en complément de -S, passwd permet d'afficher ces informations pour l'ensemble des utilisateurs du fichier. La commande deviendra donc passwd -S -a.

Notez que l'utilisation de ces commandes est bien sûr réservée à l'administrateur du système.

Fonctionnalités complémentaires de gestion des mots de passe

Comme on le devine en lisant les informations obtenues avec la commande chage -l, le système permet également de mettre en place une politique de changement régulier des mots de passe utilisateurs et ainsi :

  • de faire expirer le compte d'un utilisateur à une date précise ou après une certaine période d'inactivité ;
  • de définir un nombre minimal de jours avant que l'utilisateur ne puisse changer son mot de passe.
  • de définir un nombre maximal de jours avant que l'utilisateur ne soit forcé de changer son mot de passe.

Ces paramètres peuvent être modifiés pour un compte particulier grâce à la commande chage, mais également, pour certaines, grâce à la commande passwd. Le fichier /etc/login.defs permet quant à lui de définir ces paramètres pour les nouveaux comptes utilisateurs.

Pour plus d'information sur ces fonctionnalités, consultez les pages de manuel de ces commandes avec man chage ou man passwd, ou la page login.defs(5) du manuel du fichier /etc/login.defs accessible avec la commande man 5 login.defs.