El mié, 09-07-2008 a las 11:29 -0400, andres sarmiento escribió: > El día 9 de julio de 2008 11:19, Abraham Pérez <jockah@gmail.com> escribió: > > 2008/7/9, andres sarmiento <coolpixgnu@gmail.com>: > >> > >> Estimados: > >> Tengo una duda acerca de como calcular algunos parámetros relacionados > >> con las contraseñas del archivo /etc/shadow. > >> He buscado documentación y no he encontrado la manera de calcular > >> manualmente dichos parámetros para sistemas linux. > >> A continuación adjunto lo que he encontrado: > >> > >> ejemplo: > >> > >> cuenta-test:$1$DORWlFmM$4yhE.0olwWtHxFN5o/AR7.:13969:0:60:9::: > >> 1 2 > >> 3 4 5 6 7 8 > >> > >> 1. User name : It is your login name > >> 2. Password: It your encrypted password. The password should be > >> minimum 6-8 characters long including special characters/digits > >> 3. Last password change (lastchanged): Days since Jan 1, 1970 that > >> password was last changed > >> 4. Minimum: The minimum number of days required between password > >> changes i.e. the number of days left before the user is allowed to > >> change his/her password > >> 5. Maximum: The maximum number of days the password is valid (after > >> that user is forced to change his/her password) > >> 6. Warn : The number of days before password is to expire that user > >> is > >> warned that his/her password must be changed > >> 7. Inactive : The number of days after password expires that account > >> is disabled > >> 8. Expire : days since Jan 1, 1970 that account is disabled i.e. an > >> absolute date specifying when the login may no longer be used > >> > >> Me gustaría poder calcular manualmente desde el punto 3 hacia adelante. > >> > >> He probado con el comando $chage -l <nombre_usuario> y me entrega > >> dicha información procesada para 1 usuario, pero necesito poder > >> calcularla manualmente para muchos usuarios. > >> También he probado con el comando $date -d @timestamp y me arroja > >> algunos minutos algunas horas pero siempre en 1/1/1970. > >> > >> Bueno amigos gracias por leer. > >> > >> Saludos Cordiales > >> Tirando un poco de python: ######################################################## #!/usr/bin/env python # -*- coding: UTF-8 -*- import time import sys try: f=open('/etc/shadow','r') data=f.readlines() f.close() except: print "Can't read /etc/shadow, exec by root, please!!" sys.exit(1) for line in data: user=line.strip().split(':') #print user if user[1] == '*' or user[1] == '!': #print "User %s locked or with no pass"%user[0] continue print "User %s change passwd at '%s'" \ %(user[0], time.ctime(int(user[2])*60*60*24) ) ############################################################### el último print te calcula la fecha (no los días) en la que la contraseña se cambió... sólo tienes que cambiar user[2] (lo que sería tu campo 3) para leer y hacer operaciones con el resto de campos. Saludos -- http://soleup.eup.uva.es/mariodebian
Attachment:
signature.asc
Description: Esta parte del mensaje =?ISO-8859-1?Q?est=E1?= firmada digitalmente