|
|
|
Estructura de los ficheros password en Unix
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:
Esta linea contiene 7 campos
separados por ":", que se dividen en:
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): Pepe:*:1845:14:Pepe Pérez:/home/users:/bin/bash La clave esta inhabilitada, o esta
"shadowed". Que, que significa esto?
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 <pwd.h> 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. 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. 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. 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. |