L'exigence ici est que l'utilisateur ne doit pas réutiliser les 10 derniers mots de passe utilisés lors de la définition d'un nouveau mot de passe. Si l'utilisateur essaie de définir un mot de passe qui a été utilisé au cours des 10 dernières fois, il obtiendra l'erreur ci-dessous :
Changing password for user test. New UNIX password: Retype new UNIX password: Password has been already used. passwd: all authentication tokens updated successfully.
Il s'agit d'une mesure de sécurité qui garantit que les mots de passe ne sont pas piratés car l'utilisateur continue de définir de nouveaux mots de passe à chaque fois qu'il expire. Suivez les étapes ci-dessous pour définir cette restriction sur les mots de passe.
1. Modifiez le fichier /etc/pam.d/system-auth tel qu'il inclut le module pam pam_pwhistory après la première occurrence de la ligne de mot de passe requis :
# cat /etc/pam.d/system-auth #%PAM-1.0 # This file is auto-generated. # User changes will be destroyed the next time authconfig is run. auth required pam_env.so auth sufficient pam_unix.so nullok try_first_pass auth requisite pam_succeed_if.so uid >= 1000 quiet_success auth required pam_deny.so account required pam_unix.so account sufficient pam_localuser.so account sufficient pam_succeed_if.so uid < 1000 quiet account required pam_permit.so password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type= password requisite pam_pwhistory.so debug use_authtok remember=10 retry=3 password sufficient pam_unix.so sha512 shadow nullok try_first_pass use_authtok password required pam_deny.so session optional pam_keyinit.so revoke session required pam_limits.so -session optional pam_systemd.so session [success=1 default=ignore] pam_succeed_if.so service in crond quiet use_uid session required pam_unix.so
2. Essayez maintenant de changer le mot de passe d'un utilisateur.
# passwd test [Enter already used password]
Maintenant, vous verriez que le système afficherait une erreur indiquant que le mot de passe a déjà été utilisé dans le passé.
Changing password for user test. New UNIX password: Retype new UNIX password: Password has been already used. passwd: all authentication tokens updated successfully.