¿Cómo comprobar que un usuario/contraseña ha caducado en AIX?
¿Hay algún tipo de comando chage
en AIX? compruebe el archivo/etc / shadow que es donde se almacena la información de caducidad.Actualización
: Parece que hay una subrutina passwdexpired que se puede cargar y Comprueba la contraseña del usuario para determinar si ha caducado. Sin embargo, parece que se usa como raíz.
http://publib.boulder.ibm.com/infocenter/aix/v6r1/index.jsp?topic=%2Fcom.ibm.aix.basetechref%2Fdoc%2Fbasetrf1%2Fpasswdexpired.htm
Este enlace tiene una excelente documentación de lo que requeriría
http://www.torontoaix.com/scripting/when_pwd_exp
Como se demostró anteriormente en el artículo anterior, la caducidad de una contraseña se rige por el atributo maxage.
For example:maxage=0 means never to expiremaxage=2 means will expire in two weeks.
AIX almacena la hora en el formato epoch en segundos, por lo que primero debe determinar cuántos segundos en una semana, ya que así es como maxage mide el tiempo entre la caducidad de la contraseña, es decir, en números de semana. Hay 86400 segundos en un día, por lo que multiplicar eso por siete es 604800. Así que hay 604800 segundos en una semana. El siguiente comando que necesita ver es el pwdadm, que a su vez consulta el archivo /etc/security/passwd. Este archivo contiene los valores en segundos de la última vez que un usuario cambió su contraseña. Interrogar el archivo o usar el comando pwdadm devolverá el mismo resultado. Para esta demostración, consultemos al usuario spoll:
# grep -p "spoll:" /etc/security/passwdspoll: password = EvqNjMMwJzXnc lastupdate = 1274003127 flags = ADMCHG# pwdadm -q spollspoll: lastupdate = 1274003127 flags = ADMCHG
Puede ver el valor lastupdate en segundos desde la salida anterior. En otras palabras, la última vez que se cambió la contraseña:1274003127
A continuación, utilizando el lsuser o interrogando el archivo con /etc / security / user, puede determinar el número de semanas antes de que caduque la contraseña de spoll de usuario:
# grep -p "spoll:" /etc/security/userspoll: admin = false maxage = 4# lsuser -a maxage spollspoll maxage=4
Puede ver en la salida anterior que el número de semanas antes de la expiración de la contraseña es de 4.La siguiente tarea es multiplicar el número de segundos en una semana por el número de semanas antes de que la contraseña de spoll de usuario caduque. En este caso, es 4:604800 * 4
# expr 604800 \* 42419200
A continuación, debe agregar el valor máximo en segundos (604800 * 4) a la última vez que se cambió la contraseña:2419200 + 1274003127
# expr 2419200 + 12740031271276422327
Ahora puede convertir ese número de segundos de UNIX epoch en una presentación de tiempo actual más significativa. Puede usar diferentes herramientas, pero para esta demostración utilizará gawk con la función strftime:
# gawk 'BEGIN {print strftime("%c",'1276422327')}'Sun Jun 13 10:45:27 BST 2010
El cálculo anterior da la hora de la siguiente contraseña expiry.So, ahora sabe que la contraseña del usuario spoll se cambió por última vez (desde el comando pwdadm):
# gawk 'BEGIN {print strftime("%c",'1274003127')}'Sun May 16 10:45:27 BST 2010
Y que expirará el:
Sun Jun 13 10:45:27 BST 2010
——————Perl script-let——–
#!/bin/perluse POSIX qw(strftime);$maxage=4; $last_update = 1274003127$max_week_seconds = 86400 * $maxage;print strftime("%C ", localtime($max_week_seconds));