Le problème
Un nouvel utilisateur a été créé et a reçu un mot de passe. Elle s'est connectée et a essayé de changer le mot de passe, mais a obtenu l'erreur mentionnée ci-dessus.
user1@XXXX:/home/user1: passwd Changing password for user user1. Changing password for user1 (current) UNIX password: You must wait longer to change your password Current Password: passwd: Authentication token manipulation error
La solution
Les informations sur l'ancienneté du mot de passe pour l'utilisateur concerné sont les suivantes :
# chage -l user1 Last password change : Feb 07, 2017 Password expires : May 08, 2017 Password inactive : May 23, 2017 Account expires : never Minimum number of days between password change : 30 Maximum number of days between password change : 90 Number of days of warning before password expires : 7
Les informations sur l'ancienneté du mot de passe indiquent que le mot de passe a été modifié le 07 février 2017 et "Nombre minimum de jours entre le changement de mot de passe ” est de 30 jours. Le prochain changement de mot de passe pour cet utilisateur peut être effectué 30 jours après le 07 février 2017. Dans ce cas, l'utilisateur essayait de nouveau de changer le mot de passe le 07 février 2017, ce qui n'est pas autorisé.
Le délai entre deux changements de mot de passe successifs pour un utilisateur est défini par "Nombre minimum de jours entre changement de mot de passe". Soit l'utilisateur doit attendre le nombre minimum de jours pour changer à nouveau son mot de passe, soit le paramètre "Nombre minimum de jours entre les changements de mot de passe" doit être modifié.
Si vous souhaitez permettre aux utilisateurs de modifier eux-mêmes leur mot de passe à tout moment, effectuez les modifications suivantes :
1. Pour les utilisateurs existants,
# chage --mindays 0 username
2. Pour en faire une valeur par défaut pour tous les nouveaux utilisateurs à créer, définissez PASS_MIN_DAYS dans /etc/login.defs à zéro.
# vi /etc/login.defs PASS_MIN_DAYS 0
Si vous souhaitez définir "Nombre minimum de jours entre les changements de mot de passe" sur une autre valeur, remplacez zéro par la valeur souhaitée dans les commandes ci-dessus.
Remarque :L'utilisateur racine a le privilège de remplacer le paramètre ci-dessus et il peut réinitialiser le mot de passe de n'importe quel utilisateur, à tout moment.Manière alternative
Vous pouvez également modifier les informations de vieillissement du mot de passe sur les valeurs par défaut de Linux et essayer de modifier à nouveau le mot de passe. Changer le 4ème champ à '0' changera le nombre minimum de jours entre le changement de mot de passe à '0' afin que l'utilisateur puisse changer son mot de passe sans aucune restriction.
Apportez les modifications suivantes à "/etc/shadow ” fichier en tant qu'utilisateur root :
user:#4$jhagsjas$GJASJgjas/LNh8it5jT.N0:16345:0:99999:7:::
ou vous pouvez également faire expirer le mot de passe de l'utilisateur en utilisant le compte root :
# chage -d 0 user1
Si vous vérifiez à nouveau les informations de mot de passe pour l'utilisateur, vous trouverez :
# chage -l user1 Last password change : Feb 07, 2017 Password expires : May 08, 2017 Password inactive : May 23, 2017 Account expires : never Minimum number of days between password change : 0 Maximum number of days between password change : 90 Number of days of warning before password expires : 7
Essayez de changer le mot de passe et cela devrait fonctionner maintenant.