Como verificar se um usuário/senha expirou no AIX?
existe algum tipo de comando chage
no AIX? verifique o arquivo/etc / shadow é onde as informações de expiração são armazenadas.
Update: parece que há uma sub-rotina passwdexpired que pode ser carregada e verifica a senha do Usuário para determinar se ela expirou. No entanto, parece ser usado como raiz.
http://publib.boulder.ibm.com/infocenter/aix/v6r1/index.jsp?topic=%2Fcom.ibm.aix.basetechref%2Fdoc%2Fbasetrf1%2Fpasswdexpired.htm
este link tem excelente documentação do que você precisaria
http://www.torontoaix.com/scripting/when_pwd_exp
como demonstrado anteriormente no artigo acima, a expiração de uma senha é regida pelo atributo maxage.
For example:maxage=0 means never to expiremaxage=2 means will expire in two weeks.
Aix armazena o tempo no formato epoch em segundos, então primeiro você deve determinar quantos segundos em uma semana, pois é assim que o maxage mede o tempo entre a expiração da senha, ou seja, nos números da semana. Há 86400 segundos em um dia, então multiplicando isso por sete vem em 604800. Portanto, há 604800 segundos em uma semana. O próximo comando que você precisa observar é o pwdadm, que por sua vez consulta O arquivo /etc/security/passwd. Este arquivo contém os valores em segundos quando um usuário alterou sua senha pela última vez. Interrogar o arquivo ou usar o comando pwdadm retornará o mesmo resultado. Para esta demonstração, vamos consultar o spoll do Usuário:
# grep -p "spoll:" /etc/security/passwdspoll: password = EvqNjMMwJzXnc lastupdate = 1274003127 flags = ADMCHG# pwdadm -q spollspoll: lastupdate = 1274003127 flags = ADMCHG
você pode ver o valor lastupdate em segundos a partir da saída acima. Em outras palavras, a última vez que a senha foi alterada:1274003127
em seguida, usando o lsuser ou interrogar o arquivo com o /etc/security/usuário, você pode determinar o número de semanas antes de o usuário spoll palavra-passe irá expirar:
# grep -p "spoll:" /etc/security/userspoll: admin = false maxage = 4# lsuser -a maxage spollspoll maxage=4
Você pode ver a saída acima que o número de semanas antes de validade da senha é de 4.A próxima tarefa é multiplicar o número de segundos em uma semana pelo número de semanas antes que a senha do spoll do usuário expire. Neste caso, é 4:604800 * 4
# expr 604800 \* 42419200
em seguida, você precisa adicionar o valor máximo em segundos (604800 * 4 ) à última vez que a senha foi alterada:2419200 + 1274003127
# expr 2419200 + 12740031271276422327
agora você pode converter esse número de segundos da época do UNIX em uma apresentação de tempo atual mais significativa. Você pode usar diferentes ferramentas, mas para esta demonstração você vai usar basbaque com a função strftime:
# gawk 'BEGIN {print strftime("%c",'1276422327')}'Sun Jun 13 10:45:27 BST 2010
O cálculo acima dá a hora da próxima expiração de senha.Então, agora você já sabe que o usuário spoll a senha foi alterada pela última vez no ( a partir do pwdadm comando):
# gawk 'BEGIN {print strftime("%c",'1274003127')}'Sun May 16 10:45:27 BST 2010
E que ela irá expirar em:
Sun Jun 13 10:45:27 BST 2010
——————script Perl-deixar——–
#!/bin/perluse POSIX qw(strftime);$maxage=4; $last_update = 1274003127$max_week_seconds = 86400 * $maxage;print strftime("%C ", localtime($max_week_seconds));