Gestion de la politique de mots de passe et du (dé)verouillage des comptes.
Format
Fichier /etc/shadow
Le fichier /etc/shadow
contient les mots de passe chiffrés des utilisateurs :
# cat /etc/shadow |
[...] |
Signification des champs :
john
: nom du compte$6$BxDsd3v$awt/IiD0DClCydf
: mdp chiffré13370
: nbres de jours depuis le dernier changement de mdp0
: nbre de jours avant que l’utilisateur puisse à nouveau changer son mdp90
: nbre de jours avant expiration du mdp. Si le champs est vide = le mdp n’expire jamais14
: nbre de jours à l’avance pour avertir l’utilisateur que son mdp expirera7
: nbre de jours d’inactivité depuis l’expiration du mdp, le compte sera ensuite verrouillé18100
: indique le jour où le compte a été désactivé (format epoch : à partir du 01/01/1970)<vide>
: Généralement vide, réservé pour un usage ultérieur
Mot de passe
Dans ce mot de passe chiffré : $6$DFaDkYQ5H/9RsTP/$2L8agpPboKzRjGwv2W.68Tu7I41D
6
: algorithme de hachage utilisé, 6 indique du SHA-512, 1 indique du MD5, 5 indique du SHA-256DFaDkYQ5H/9RsTP/
: sel (salt) utilisé pour hacher le mot de passe, choisi au hasard2L8agpPboKzRjGwv2W.68Tu7I41D
: hachage du mot de passe = (salt + mot de passe en clair) => hachachage en SHA-512 = Mot de passe haché
Gestion des mots de passe
Commande date
La commande date est très utile pour calculer une date antérieure et ultérieure.
Afficher la date courrante :
# date +%F |
2023-12-26 |
Afficher la date courrante + 10 jours :
# date -d "+10 days" +%F |
2024-01-05 |
Commande chage
La commande chage
signifie “Change Age” et permet de définir une politique de gestion des mots de passe (veillissement, date de changement, avertissement, inactivité, etc.).
Définir un âge minimum (-m) de 0 jour, un âge maximum (-M) de 30 jours, une période d’avertissement (-W) de 7 jours et une période d’inactivité (-I) de 14 jours.
# chage -m 0 -M 30 -W 7 -I 14 <username> |
Repousser la date d’expiration du mot de passe à 180 jours :
# chage -E $(date -d "+180 days" +%F) <username> |
Forcer un utilisateur à changer son mot de passe :
# chage -d 0 <username> |
Extrait de l’aide et du manuel de chage
Change user password expiry information
The chage
command changes the number of days between password changes and the date of the last password change. This information is used by the system to determine when a user must change his/her password.
Utilisation:
# chage [options] [LOGIN] |
Aide :
-d, --lastday LAST_DAY // Fixe la date du dernier changement de mdp |
/!\ Résumé des commandes
Commandes :
# date -d "+90 days" +%F // Afficher la date dans 90 jours |
Fichiers :
/etc/shadow // mots de passe chiffrés des utilisateurs |
Cas pratique
Repousser l’expiration du mot de passe à 90j :
[root@SERVER01 ~]# chage -M 90 paul |
[root@SERVER01 ~]# chage -l paul |
Last password change : Sep 08, 2024 |
Forcer le changement du mdp à la prochaine connexion :
[root@SERVER01 ~]# chage -d 0 paul |
[root@SERVER01 ~]# chage -l paul |
Last password change : password must be changed |
Vérification :
[aline@SERVER01 root]$ su paul |
Password: |
Changement de la politique de changement des mdp directement dans le fichier de configuration /etc/login.def
. Ceci s’appliquera pour les nouveaux utilisateurs :
# Password aging controls: |
Documentation
https://manpages.ubuntu.com/manpages/trusty/fr/man1/chage.1.html