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/<first letter   
                            of username>/<username>
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/<first letter   
                            of username>/<username>
SunOS4.1+c2           /etc/security/passwd.adjunct    
SunOS 5.0             /etc/shadow
                      <optional NIS+ private secure maps/tables/whatever>
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 <pwd.h>
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
