Comment vérifier qu’un utilisateur/mot de passe a expiré dans AIX ?
Existe-t-il une sorte de commande chage
sur AIX ? vérifiez le fichier /etc/shadow où sont stockées les informations d’expiration.
Mise à jour: Il semble qu’il existe un sous-programme passwdexpired qui peut être chargé et Vérifie le mot de passe de l’utilisateur pour déterminer s’il a expiré. Cependant, il semble être utilisé comme racine.
http://publib.boulder.ibm.com/infocenter/aix/v6r1/index.jsp?topic=%2Fcom.ibm.aix.basetechref%2Fdoc%2Fbasetrf1%2Fpasswdexpired.htm
Ce lien contient une excellente documentation de ce dont vous auriez besoin
http://www.torontoaix.com/scripting/when_pwd_exp
Comme démontré précédemment dans l’article ci-dessus, l’expiration d’un mot de passe est régie par l’attribut maxage.
For example:maxage=0 means never to expiremaxage=2 means will expire in two weeks.
AIX stocke l’heure au format epoch en secondes, vous devez donc d’abord déterminer le nombre de secondes par semaine, car c’est ainsi que maxage mesure le temps entre l’expiration du mot de passe, c’est-à-dire en nombres de semaines. Il y a 86400 secondes par jour, si bien que la multiplication par sept arrive à 604800. Il y a donc 604800 secondes en une semaine. La commande suivante que vous devez regarder est le pwdadm, qui à son tour interroge le fichier /etc/security/passwd. Ce fichier contient les valeurs en secondes lors de la dernière modification du mot de passe par un utilisateur. L’interrogation du fichier ou l’utilisation de la commande pwdadm renverra le même résultat. Pour cette démonstration, interrogeons l’utilisateur spoll:
# grep -p "spoll:" /etc/security/passwdspoll: password = EvqNjMMwJzXnc lastupdate = 1274003127 flags = ADMCHG# pwdadm -q spollspoll: lastupdate = 1274003127 flags = ADMCHG
Vous pouvez voir la valeur lastupdate en secondes à partir de la sortie ci-dessus. En d’autres termes, la dernière fois que le mot de passe a été modifié:1274003127
Ensuite, en utilisant lsuser ou en interrogeant le fichier avec /etc/security/user, vous pouvez déterminer le nombre de semaines avant l’expiration du mot de passe de spoll de l’utilisateur:
# grep -p "spoll:" /etc/security/userspoll: admin = false maxage = 4# lsuser -a maxage spollspoll maxage=4
Vous pouvez voir à partir de la sortie ci-dessus que le nombre de semaines avant l’expiration du mot de passe est de 4.La tâche suivante consiste ensuite à multiplier le nombre de secondes dans une semaine par le nombre de semaines avant l’expiration du mot de passe spoll de l’utilisateur. Dans ce cas, c’est 4:604800 * 4
# expr 604800 \* 42419200
Ensuite, vous devez ajouter la valeur maxage en secondes (604800 * 4) à la dernière modification du mot de passe:2419200 + 1274003127
# expr 2419200 + 12740031271276422327
Vous pouvez maintenant convertir ce nombre de secondes de l’époque UNIX en une présentation de l’heure actuelle plus significative. Vous pouvez utiliser différents outils, mais pour cette démonstration, vous utiliserez gawk avec la fonction strftime:
# gawk 'BEGIN {print strftime("%c",'1276422327')}'Sun Jun 13 10:45:27 BST 2010
Le calcul ci-dessus donne l’heure du mot de passe suivant expiry.So , vous savez maintenant que le mot de passe de l’utilisateur spoll a été modifié pour la dernière fois (à partir de la commande pwdadm):
# gawk 'BEGIN {print strftime("%c",'1274003127')}'Sun May 16 10:45:27 BST 2010
Et qu’il expirera le:
Sun Jun 13 10:45:27 BST 2010
—————— Script Perl – let——–
#!/bin/perluse POSIX qw(strftime);$maxage=4; $last_update = 1274003127$max_week_seconds = 86400 * $maxage;print strftime("%C ", localtime($max_week_seconds));