Hoe controleert u of een gebruiker/wachtwoord verlopen is in AIX?
Is er een chage
soort commando op AIX? controleer /etc / shadow bestand waar de vervaldatum informatie is opgeslagen.
Update: het lijkt erop dat er een passwdexpired subroutine is die geladen kan worden en controleert het wachtwoord van de gebruiker om te bepalen of het verlopen is. Echter, het lijkt te worden gebruikt als wortel.
http://publib.boulder.ibm.com/infocenter/aix/v6r1/index.jsp?topic=%2Fcom.ibm.aix.basetechref%2Fdoc%2Fbasetrf1%2Fpasswdexpired.htm
deze link heeft uitstekende documentatie van wat u nodig zou hebben
http://www.torontoaix.com/scripting/when_pwd_exp
zoals eerder in het bovenstaande artikel is aangetoond, wordt het verlopen van een wachtwoord bepaald door het maxage-attribuut.
For example:maxage=0 means never to expiremaxage=2 means will expire in two weeks.
AIX slaat de tijd op in het epoch-formaat in seconden, dus eerst moet u bepalen hoeveel seconden in een week, omdat dit is hoe maxage meet de tijd tussen het verstrijken van het wachtwoord, dat is in weeknummers. Er zijn 86400 seconden in een dag, dus vermenigvuldigen met zeven komt in op 604800. Dus er zijn 604800 seconden in een week. Het volgende commando waar je naar moet kijken is de pwdadm, die op zijn beurt het bestand /etc/security/passwd opvraagt. Dit bestand bevat de waarden in seconden wanneer een gebruiker voor het laatst zijn wachtwoord heeft gewijzigd. Het bestand ondervragen of het pwdadm commando gebruiken zal hetzelfde resultaat opleveren. Voor deze demonstratie, laten we de gebruiker spull vragen:
# grep -p "spoll:" /etc/security/passwdspoll: password = EvqNjMMwJzXnc lastupdate = 1274003127 flags = ADMCHG# pwdadm -q spollspoll: lastupdate = 1274003127 flags = ADMCHG
u kunt de lastupdate waarde in seconden van de bovenstaande uitvoer zien. Met andere woorden, de laatste keer dat het wachtwoord werd gewijzigd:1274003127
vervolgens kunt u met behulp van de lsuser of het bestand met /etc/security/user ondervragen, het aantal weken bepalen voordat het wachtwoord van de gebruiker vervalt.:
# grep -p "spoll:" /etc/security/userspoll: admin = false maxage = 4# lsuser -a maxage spollspoll maxage=4
u kunt aan de bovenstaande uitvoer zien dat het aantal weken vóór het verstrijken van het wachtwoord 4 is.De volgende taak is dan om het aantal seconden in een week te vermenigvuldigen met het aantal weken voordat het wachtwoord van de gebruiker spoll verloopt. In dit geval is het 4:604800 * 4
# expr 604800 \* 42419200
vervolgens moet u de maximumwaarde in seconden (604800 * 4) toevoegen aan de laatste keer dat het wachtwoord werd gewijzigd:2419200 + 1274003127
# expr 2419200 + 12740031271276422327
u kunt nu dat aantal seconden van UNIX epoch converteren naar een meer betekenisvolle huidige tijd presentatie. U kunt gebruik maken van verschillende tools, maar voor deze demonstratie, gebruik je gapen met de strftime functie:
# gawk 'BEGIN {print strftime("%c",'1276422327')}'Sun Jun 13 10:45:27 BST 2010
De bovenstaande berekening geeft het volgende verloop wachtwoord.Zo, u weet nu dat de gebruiker spoll het wachtwoord is voor het laatst gewijzigd op ( van de opdracht pwdadm):
# gawk 'BEGIN {print strftime("%c",'1274003127')}'Sun May 16 10:45:27 BST 2010
En die verstrijkt op:
Sun Jun 13 10:45:27 BST 2010
——————Perl-script-laat——–
#!/bin/perluse POSIX qw(strftime);$maxage=4; $last_update = 1274003127$max_week_seconds = 86400 * $maxage;print strftime("%C ", localtime($max_week_seconds));