cum să verificați dacă un utilizator/parolă este expirat în Aix?
există vreo chage
un fel de comandă pe AIX? verificați fișierul/etc / shadow acolo unde sunt stocate informațiile de expirare.
actualizare: se pare că există o subrutină passwdexpired care poate fi încărcată și verifică parola utilizatorului pentru a determina dacă a expirat. Cu toate acestea, se pare că este folosit ca rădăcină.
http://publib.boulder.ibm.com/infocenter/aix/v6r1/index.jsp?topic=%2Fcom.ibm.aix.basetechref%2Fdoc%2Fbasetrf1%2Fpasswdexpired.htm
acest link are o documentație excelentă despre ceea ce ați avea nevoie
http://www.torontoaix.com/scripting/when_pwd_exp
după cum sa demonstrat mai devreme în articolul de mai sus, expirarea unei parole este guvernată de atributul maxage.
For example:maxage=0 means never to expiremaxage=2 means will expire in two weeks.
Aix stochează timpul în formatul epoch în câteva secunde, deci mai întâi trebuie să determinați câte secunde într-o săptămână, deoarece acesta este modul în care maxage măsoară timpul dintre expirarea parolei, adică în numere de săptămână. Există 86400 de secunde într-o zi, deci înmulțirea cu șapte vine la 604800. Deci, există 604800 de secunde într-o săptămână. Următoarea comandă pe care trebuie să o priviți este pwdadm, care la rândul său interoghează fișierul /etc/security/passwd. Acest fișier păstrează valorile în câteva secunde când un utilizator și-a schimbat ultima dată parola. Interogarea fișierului sau utilizarea comenzii pwdadm va returna același rezultat. Pentru această demonstrație, să ne interoga spoll utilizator:
# grep -p "spoll:" /etc/security/passwdspoll: password = EvqNjMMwJzXnc lastupdate = 1274003127 flags = ADMCHG# pwdadm -q spollspoll: lastupdate = 1274003127 flags = ADMCHG
puteți vedea valoarea lastupdate în câteva secunde de la ieșirea de mai sus. Cu alte cuvinte, ultima dată când parola a fost schimbată:1274003127
apoi, folosind lsuser sau interogarea fișierului cu / etc / security / user, puteți determina numărul de săptămâni înainte de parola spoll utilizator va expira:
# grep -p "spoll:" /etc/security/userspoll: admin = false maxage = 4# lsuser -a maxage spollspoll maxage=4
puteți vedea din ieșirea de mai sus că numărul de săptămâni înainte de expirarea parolei este 4.Următoarea sarcină este apoi să înmulțiți numărul de secunde într-o săptămână cu numărul de săptămâni înainte ca parola spoll a utilizatorului să expire. În acest caz, este 4:604800 * 4
# expr 604800 \* 42419200
apoi, trebuie să adăugați valoarea maxage în câteva secunde (604800 * 4) la ultima modificare a parolei:2419200 + 1274003127
# expr 2419200 + 12740031271276422327
acum Puteți converti acel număr de secunde din epoca UNIX într-o prezentare mai semnificativă a timpului curent. Puteți utiliza diferite instrumente, dar pentru această demonstrație veți folosi gawk cu funcția strftime:
# gawk 'BEGIN {print strftime("%c",'1276422327')}'Sun Jun 13 10:45:27 BST 2010
calculul de mai sus oferă timpul următoarei parole expiry.So, acum știți că parola utilizatorului spoll a fost modificată ultima dată ( din comanda pwdadm):
# gawk 'BEGIN {print strftime("%c",'1274003127')}'Sun May 16 10:45:27 BST 2010
și că va expira pe:
Sun Jun 13 10:45:27 BST 2010
——————Perl script-să——–
#!/bin/perluse POSIX qw(strftime);$maxage=4; $last_update = 1274003127$max_week_seconds = 86400 * $maxage;print strftime("%C ", localtime($max_week_seconds));