PASSWD En este documento voy a intentar explicar un poco la estructura del los ficheros passwd de UNIX. El fichero passwd esta compuesto por varias lineas parecidas a esta: + Pepe:1qwP95nmh6:1845:14:Pepe Pérez:/home/users:/bin/bash Esta linea contiene 7 campos separados por ":", que se dividen en: Campo Contenido (ejemplo) Descripción Login : Pepe Login de usuario, identifica al usuario dentro del sistema Password : 1qwP95nmh6 Password encriptada del usuario Número de usuario : 1845 Identifica al usuario en el sistema, mediante este numero Número de grupo : 14 Grupo al que pertenece este usuario Información Gecos : Pepe Pérez Descripción del usuario Directorio HOME : /home/users Directorio de este usuario Shell : /bin/bash Shell que usa este usuario al entrar al sistema Bueno el unico campo con un poco de complicación es el password, asi que voy a intentar explicarlo un poco por encima: Este campo como ya he dicho antes, contiene la password encriptada ( con la funcion crypt() ), y sus posibles contenidos son (puede que me deje alguno): Caso 1 Pepe:*:1845:14:Pepe Pérez:/home/users:/bin/bash Pepe:x:1845:14:Pepe Pérez:/home/users:/bin/bash La clave esta inhabilitada, o esta "shadowed". Que, que significa esto? Bueno pues si la clave esta inhabilitada, aunque la sepais no vais a poder entrar, ya que esto significa que este usuario tiene el acceso denegado. ¿Y si esta "shadowed"?, bueno el shadowing es una medida de seguridad, que consiste en meter los passwords en otro fichero aparte. Aqui teneis una lista de su localización (la mayoria de las veces). 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 Aunque muchas veces, el sistema tiene un poco mas de seguridad, y este fichero es ilegible para la mayoria de los usuarios del sistema. Pero como en todo hay una forma de leerlo, simplemente hacemos un programa de este tipo: #include void main( void ) { 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 al Shadowing ni caso. Caso 2 Pepe:1qwP95nmh6:1845:14:Pepe Pérez:/home/users:/bin/bash Este es el caso mas "normal", y en el esta la password encriptada sin mas. Caso 3 Pepe:*1qwP95nmh6:1845:14:Pepe Pérez:/home/users:/bin/bash Pepe:!1qwP95nmh6:1845:14:Pepe Pérez:/home/users:/bin/bash Pepe: 1qwP95nmh6:1845:14:Pepe Pérez:/home/users:/bin/bash En estos tres casos la clave esta inhabilitada, es decir, aunque la sepamos no vamos a poder entrar en el sistema. Esta opción la suelen usar los gestores para restringir el acceso a alguno de los usuarios de la maquina. Caso 4 Pepe::1845:14:Pepe Pérez:/home/users:/bin/bash Una opcion "interesante", ya que este usuario no tiene clave, introduce su login, y ya estas dentro del sistema. ________________________________________________________ Bueno, como habeis visto es una simple introducción, pero tan solo he intentado eso, para que comprendais un poco mejor, el fichero . Si teneis algo que añadir a esto, algo que se me haya olvidado, o algo asi, comentadmelo aqui: __________________________________________________ __________________________________________________ __________________________________________________ __________________________________________________ ______ ______