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