jak zkontrolovat, zda uživatel/heslo vypršelo v AIX?
existuje nějaký chage
druh příkazu na AIX? zkontrolujte soubor/etc / shadow, kde jsou uloženy informace o vypršení platnosti.
aktualizace: zdá se, že existuje podprogram passwdexpired, který lze načíst, a zkontroluje heslo uživatele, aby zjistil, zda vypršela platnost. Zdá se však, že se používá jako kořen.
http://publib.boulder.ibm.com/infocenter/aix/v6r1/index.jsp?topic=%2Fcom.ibm.aix.basetechref%2Fdoc%2Fbasetrf1%2Fpasswdexpired.htm
tento odkaz má vynikající dokumentaci o tom, co byste požadovali
http://www.torontoaix.com/scripting/when_pwd_exp
jak bylo ukázáno výše ve výše uvedeném článku, vypršení platnosti hesla se řídí atributem maxage.
For example:maxage=0 means never to expiremaxage=2 means will expire in two weeks.
AIX ukládá čas ve formátu epochy v sekundách, takže nejprve musíte určit, kolik sekund za týden, protože takto maxage měří čas mezi vypršením platnosti hesla, tj. Existuje 86400 sekund za den, takže vynásobením sedmi přijde na 604800. Takže za týden je 604800 sekund. Dalším příkazem, na který se musíte podívat, je pwdadm, který zase dotazuje soubor /etc/security/passwd. Tento soubor obsahuje hodnoty během několika sekund, kdy uživatel naposledy změnil své heslo. Dotazování souboru nebo pomocí příkazu pwdadm vrátí stejný výsledek. Pro tuto ukázku, pojďme dotaz uživatele spoll:
# grep -p "spoll:" /etc/security/passwdspoll: password = EvqNjMMwJzXnc lastupdate = 1274003127 flags = ADMCHG# pwdadm -q spollspoll: lastupdate = 1274003127 flags = ADMCHG
z výše uvedeného výstupu můžete vidět hodnotu lastupdate v sekundách. Jinými slovy, naposledy bylo heslo změněno:1274003127
dále pomocí lsuser nebo dotazování souboru s / etc/security / user můžete určit počet týdnů před vypršením platnosti hesla uživatele spoll:
# grep -p "spoll:" /etc/security/userspoll: admin = false maxage = 4# lsuser -a maxage spollspoll maxage=4
z výše uvedeného výstupu můžete vidět, že počet týdnů před vypršením platnosti hesla je 4.Dalším úkolem je pak vynásobit počet sekund v týdnu počtem týdnů před vypršením platnosti hesla uživatele spoll. V tomto případě je 4:604800 * 4
# expr 604800 \* 42419200
dále je třeba přidat hodnotu maxage v sekundách (604800 * 4) k poslední změně hesla:2419200 + 1274003127
# expr 2419200 + 12740031271276422327
nyní můžete převést tento počet sekund z unixové epochy na smysluplnější prezentaci aktuálního času. Můžete použít různé nástroje, ale pro tuto demonstraci budete používat gawk s funkcí strftime:
# gawk 'BEGIN {print strftime("%c",'1276422327')}'Sun Jun 13 10:45:27 BST 2010
výše uvedený výpočet udává čas dalšího hesla expiry.So, nyní víte, že heslo uživatele spoll bylo naposledy změněno (z příkazu pwdadm):
# gawk 'BEGIN {print strftime("%c",'1274003127')}'Sun May 16 10:45:27 BST 2010
a že vyprší:
Sun Jun 13 10:45:27 BST 2010
——————Perl script-let——–
#!/bin/perluse POSIX qw(strftime);$maxage=4; $last_update = 1274003127$max_week_seconds = 86400 * $maxage;print strftime("%C ", localtime($max_week_seconds));