EXPLICACION DE LOS FICHEROS PASSWD DE UNIX By Raven Spirit En este documento explicar‚ la estructura de los ficheros passwd de UNIX. La mayor¡a de la informaci¢n est  tomada de alt.2600/#hack FAQ, yo me he limitado a traducirla, ordenarla y ampliarla un poco. Al grano. Como habreis podido observar, el fichero de passwd tiene varias lineas, parecidas a esta: Pepe:1qwP95nmh6:1845:14:Pepe P‚rez:/home/users:/bin/bash Esta linea contiene 7 campos separados por ":", donde encontramos: Login : Pepe Password encryptado: 1qwP95nmh6 N£mero de usuario:1845 N£mero de grupo:14 Informaci¢n Gecos: Pepe P‚rez Directorio HOME: /home/users Shell:/bin/bash Pero no todo es tan f cil ricos, PORQUE si por casualidad en el campo del password encryptado haya un "*" o una "x", o cualguier otro s¡mbolo ,es decir: Pepe:*:1845:14:Pepe P‚rez:/home/users:/bin/bash o algo como : Pepe:x:1845:14:Pepe P‚rez:/home/users:/bin/bash quiere decir que el password est  "shadowed". El shadowing es una medida de seguridad, que consiste en meter los passwords en otro fichero aparte. Aqu¡ est  una lista de su localizaci¢n ( La mayor¡a de las veces ) Lo podeis encontrar en los siguientes directorios: Clase de Unix Path ------------------------------------------------------ AIX 3 /etc/security/passwd /tcb/auth/files// A/UX 3.0s /tcb/files/auth/?/* BSD4.3-Reno /etc/master.passwd ConvexOS 10 /etc/shadpw ConvexOS 11 /etc/shadow DG/UX /etc/tcb/aa/user/ EP/IX /etc/shadow HP-UX /.secure/etc/passwd IRIX 5 /etc/shadow Linux 1.1 /etc/shadow OSF/1 /etc/passwd[.dir|.pag] SCO Unix #.2.x /tcb/auth/files// SunOS4.1+c2 /etc/security/passwd.adjunct SunOS 5.0 /etc/shadow System V Release 4.0 /etc/shadow System V Release 4.2 /etc/security/* database Ultrix 4 /etc/auth[.dir|.pag] UNICOS /etc/udb Ahora bien, por ahora parece facil ¨ Eh ?. Bueno, pues en algunos sistemas en los que hay mucha seguridad, este fichero es ilegible para la mayor¡a de los usuarios del sistema, y por supuesto para nosotros. En el caso de que no se pueda leer haremos un programa de este tipo: #include main() { struct passwd *p; while(p=getpwent()) printf("%s:%s:%d:%d:%s:%s:%s\n", p->pw_name, p->pw_passwd, p->pw_uid, p->pw_gid, p->pw_gecos, p->pw_dir, p->pw_shell); } Este programa hace varias llamadas a getpwent() para que el fichero passwd sea enviado directamenta a vuestro ordenador, con lo que de Shadowing ni flores. Espero que os haya servido de ayuda, si teneis algun tipo de duda o comentario no dudeis en escribirme : Ravenspirit@hotmail.com Y recordad, el Gran Hermano os vigila. RAVEN SPIRIT