Come verificare che un utente/password sia scaduto in AIX?
C’è una sorta di comando chage
su AIX? controlla il file/etc / shadow che è dove sono memorizzate le informazioni sulla scadenza.
Aggiornamento: Sembra che ci sia una subroutine passwdexpired che può essere caricata e controlla la password dell’utente per determinare se è scaduta. Tuttavia, sembra essere usato come root.
http://publib.boulder.ibm.com/infocenter/aix/v6r1/index.jsp?topic=%2Fcom.ibm.aix.basetechref%2Fdoc%2Fbasetrf1%2Fpasswdexpired.htm
Questo link ha un’eccellente documentazione di ciò che richiederesti
http://www.torontoaix.com/scripting/when_pwd_exp
Come dimostrato in precedenza nell’articolo precedente, la scadenza di una password è regolata dall’attributo maxage.
For example:maxage=0 means never to expiremaxage=2 means will expire in two weeks.
AIX memorizza l’ora nel formato epoch in secondi, quindi prima devi determinare quanti secondi in una settimana, poiché questo è il modo in cui maxage misura il tempo tra la scadenza della password, cioè in numeri di settimana. Ci sono 86400 secondi in un giorno, quindi moltiplicando per sette arriva a 604800. Quindi ci sono 604800 secondi in una settimana. Il prossimo comando che devi guardare è pwdadm, che a sua volta interroga il file /etc/security/passwd. Questo file contiene i valori in secondi quando un utente ha cambiato l’ultima volta la propria password. Interrogare il file o utilizzare il comando pwdadm restituirà lo stesso risultato. Per questa dimostrazione, cerchiamo di interrogare l’utente spoll:
# grep -p "spoll:" /etc/security/passwdspoll: password = EvqNjMMwJzXnc lastupdate = 1274003127 flags = ADMCHG# pwdadm -q spollspoll: lastupdate = 1274003127 flags = ADMCHG
Puoi vedere il valore lastupdate in secondi dall’output sopra. In altre parole, l’ultima volta che la password è stata cambiata:1274003127
Successivamente, utilizzando lsuser o interrogando il file con / etc / security / user, è possibile determinare il numero di settimane prima che la password spoll dell’utente scada:
# grep -p "spoll:" /etc/security/userspoll: admin = false maxage = 4# lsuser -a maxage spollspoll maxage=4
Si può vedere dall’output di cui sopra che il numero di settimane prima della scadenza della password è 4.Il prossimo compito è quindi quello di moltiplicare il numero di secondi in una settimana per il numero di settimane prima che la password spoll dell’utente scada. In questo caso, è 4:604800 * 4
# expr 604800 \* 42419200
Successivamente, è necessario aggiungere il valore maxage in secondi (604800 * 4) all’ultima volta che la password è stata modificata:2419200 + 1274003127
# expr 2419200 + 12740031271276422327
Ora puoi convertire quel numero di secondi da UNIX epoch in una presentazione dell’ora corrente più significativa. È possibile utilizzare diversi strumenti, ma per questa dimostrazione si utilizzerà gawk con la funzione strftime:
# gawk 'BEGIN {print strftime("%c",'1276422327')}'Sun Jun 13 10:45:27 BST 2010
Il calcolo di cui sopra dà il tempo della prossima scadenza della password.Così, ora sapete che l’utente spoll la password è stata modificata ( da il pwdadm comando):
# gawk 'BEGIN {print strftime("%c",'1274003127')}'Sun May 16 10:45:27 BST 2010
E che scade il:
Sun Jun 13 10:45:27 BST 2010
——————script Perl-let——–
#!/bin/perluse POSIX qw(strftime);$maxage=4; $last_update = 1274003127$max_week_seconds = 86400 * $maxage;print strftime("%C ", localtime($max_week_seconds));