Hur kontrollerar jag att en användare / lösenord har gått ut i AIX?
finns det någon chage
typ av kommando på AIX? kontrollera/etc / shadow-fil som är där utgångsinformationen lagras.
Uppdatering: det verkar som om det finns en passwdexired subrutin som kan laddas och kontrollerar användarens lösenord för att avgöra om det har löpt ut. Det verkar dock användas som rot.
http://publib.boulder.ibm.com/infocenter/aix/v6r1/index.jsp?topic=%2Fcom.ibm.aix.basetechref%2Fdoc%2Fbasetrf1%2Fpasswdexpired.htm
denna länk har utmärkt dokumentation av vad du skulle kräva
http://www.torontoaix.com/scripting/when_pwd_exp
som visat tidigare i ovanstående artikel regleras utgången av ett lösenord av maxage-attributet.
For example:maxage=0 means never to expiremaxage=2 means will expire in two weeks.
AIX lagrar tiden i epoch-formatet i sekunder, så först måste du bestämma hur många sekunder i en vecka, eftersom det här är hur maxage mäter tiden mellan lösenordets utgång, det vill säga i veckonummer. Det finns 86400 sekunder på en dag, så multiplicera det med sju kommer in på 604800. Så det finns 604800 sekunder på en vecka. Nästa kommando du behöver titta på är pwdadm, som i sin tur frågar filen /etc/security/passwd. Den här filen innehåller värdena på några sekunder när en användare senast ändrade sitt lösenord. Att förhöra filen eller använda kommandot pwdadm returnerar samma resultat. För denna demonstration, låt oss fråga användaren spoll:
# grep -p "spoll:" /etc/security/passwdspoll: password = EvqNjMMwJzXnc lastupdate = 1274003127 flags = ADMCHG# pwdadm -q spollspoll: lastupdate = 1274003127 flags = ADMCHG
du kan se lastupdate-värdet i sekunder från ovanstående utgång. Med andra ord, förra gången lösenordet ändrades:1274003127
nästa, med hjälp av lsuser eller förhör filen med / etc / security / user, kan du bestämma antalet veckor innan användaren spoll lösenord upphör att gälla:
# grep -p "spoll:" /etc/security/userspoll: admin = false maxage = 4# lsuser -a maxage spollspoll maxage=4
du kan se från ovanstående utgång att antalet veckor före lösenordets utgång är 4.Nästa uppgift är sedan att multiplicera antalet sekunder i en vecka med antalet veckor innan användaren spoll lösenord förfaller. I det här fallet är det 4:604800 * 4
# expr 604800 \* 42419200
Därefter måste du lägga till maxvärdet i sekunder (604800 * 4) till sista gången lösenordet ändrades:2419200 + 1274003127
# expr 2419200 + 12740031271276422327
du kan nu konvertera det antalet sekunder från UNIX epoch till en mer meningsfull aktuell tidspresentation. Du kan använda olika verktyg, men för den här demonstrationen använder du gawk med strftime-funktionen:
# gawk 'BEGIN {print strftime("%c",'1276422327')}'Sun Jun 13 10:45:27 BST 2010
ovanstående beräkning ger tiden för nästa lösenord expiry.So, du vet nu att användarspulls lösenord senast ändrades (från kommandot pwdadm):
# gawk 'BEGIN {print strftime("%c",'1274003127')}'Sun May 16 10:45:27 BST 2010
och att det kommer att löpa ut på:
Sun Jun 13 10:45:27 BST 2010
——————Perl script-låt——–
#!/bin/perluse POSIX qw(strftime);$maxage=4; $last_update = 1274003127$max_week_seconds = 86400 * $maxage;print strftime("%C ", localtime($max_week_seconds));