Wie überprüfe ich, ob ein Benutzer / Passwort in AIX abgelaufen ist?
Gibt es eine chage
Art von Befehl auf AIX? überprüfen Sie die Datei / etc / shadow, in der die Ablaufinformationen gespeichert sind.
Update: Es scheint, dass es eine passwdexpired-Unterroutine gibt, die geladen werden kann und das Kennwort des Benutzers überprüft, um festzustellen, ob es abgelaufen ist. Es scheint jedoch als Root verwendet zu werden.
http://publib.boulder.ibm.com/infocenter/aix/v6r1/index.jsp?topic=%2Fcom.ibm.aix.basetechref%2Fdoc%2Fbasetrf1%2Fpasswdexpired.htm
Dieser Link enthält eine hervorragende Dokumentation dessen, was Sie benötigen würden
http://www.torontoaix.com/scripting/when_pwd_exp
Wie bereits im obigen Artikel gezeigt, wird der Ablauf eines Kennworts durch das Attribut maxage bestimmt.
For example:maxage=0 means never to expiremaxage=2 means will expire in two weeks.
AIX speichert die Zeit im Epochenformat in Sekunden, also müssen Sie zuerst bestimmen, wie viele Sekunden in einer Woche sind, da maxage auf diese Weise die Zeit zwischen dem Ablauf des Passworts misst, dh in Wochenzahlen. Es gibt 86400 Sekunden an einem Tag, also multipliziert man das mit sieben, kommt man auf 604800. Es gibt also 604800 Sekunden in einer Woche. Der nächste Befehl, den Sie sich ansehen müssen, ist der pwdadm , der wiederum die Datei /etc/security/passwd abfragt. Diese Datei enthält die Werte in Sekunden, wenn ein Benutzer sein Kennwort zuletzt geändert hat. Wenn Sie die Datei abfragen oder den Befehl pwdadm verwenden, wird dasselbe Ergebnis zurückgegeben. Für diese Demonstration, lassen Sie uns den Benutzer spoll abfragen:
# grep -p "spoll:" /etc/security/passwdspoll: password = EvqNjMMwJzXnc lastupdate = 1274003127 flags = ADMCHG# pwdadm -q spollspoll: lastupdate = 1274003127 flags = ADMCHG
Sie können den lastupdate Wert in Sekunden aus der obigen Ausgabe sehen. Mit anderen Worten, das letzte Mal, als das Passwort geändert wurde:1274003127
Als nächstes können Sie mithilfe von lsuser oder der Abfrage der Datei mit /etc/security/user die Anzahl der Wochen bestimmen, bevor das Benutzer-Spoll-Kennwort abläuft:
# grep -p "spoll:" /etc/security/userspoll: admin = false maxage = 4# lsuser -a maxage spollspoll maxage=4
Sie können der obigen Ausgabe entnehmen, dass die Anzahl der Wochen vor dem Ablauf des Kennworts 4 beträgt.Die nächste Aufgabe besteht dann darin, die Anzahl der Sekunden in einer Woche mit der Anzahl der Wochen zu multiplizieren, bevor das Benutzerpasswort abläuft. In diesem Fall ist es 4:604800 * 4
# expr 604800 \* 42419200
Als nächstes müssen Sie den Maxage-Wert in Sekunden (604800 * 4) zum letzten Ändern des Kennworts hinzufügen:2419200 + 1274003127
# expr 2419200 + 12740031271276422327
Sie können jetzt diese Anzahl von Sekunden aus der UNIX-Epoche in eine aussagekräftigere Darstellung der aktuellen Zeit konvertieren. Sie können verschiedene Tools verwenden, aber für diese Demonstration verwenden Sie gawk mit der Funktion strftime:
# gawk 'BEGIN {print strftime("%c",'1276422327')}'Sun Jun 13 10:45:27 BST 2010
Die obige Berechnung gibt den Zeitpunkt des nächsten Passworts an expiry.So , Sie wissen jetzt, dass das Passwort des Benutzers spoll zuletzt geändert wurde (aus dem Befehl pwdadm):
# gawk 'BEGIN {print strftime("%c",'1274003127')}'Sun May 16 10:45:27 BST 2010
Und dass es am verfallen wird:
Sun Jun 13 10:45:27 BST 2010
—————— Perl-Skript-lassen——–
#!/bin/perluse POSIX qw(strftime);$maxage=4; $last_update = 1274003127$max_week_seconds = 86400 * $maxage;print strftime("%C ", localtime($max_week_seconds));