El siguiente es el un tipico archivo /etc/passwd
root:YKtlooNa3vlo2:0:3::/root:/sbin/sh
daemon:*:1:5::/:/sbin/sh
bin:*:2:2::/usr/bin:/sbin/sh
sys:*:3:3::/:
adm:*:4:4::/var/adm:/sbin/sh
uucp:*:5:3::/var/spool/uucppublic:/usr/lbin/uucp/uucico
lp:*:9:7::/var/spool/lp:/sbin/sh
nuucp:*:11:11::/var/spool/uucppublic:/usr/lbin/uucp/uucico
hpdb:*:27:1:ALLBASE:/:/sbin/sh
nobody:*:-2:-2::/:
www:*:30:1::/:
smbnull:*:101:101:DO NOT USE OR DELETE - needed by Samba:/var/opt/samba/nologin:/bin/false
cimsrvr:*:102:102:WBEM Services:/var/opt/wbem:/sbin/sh
sfmdb:*:103:20::/home/sfmdb:/sbin/sh
sshd:*:104:103:sshd privsep:/var/empty:/bin/false
iwww:*:105:1::/home/iwww:/sbin/sh
owww:*:106:1::/home/owww:/sbin/sh
hpsmh:*:107:104:System Management Homepage:/var/opt/hpsmh:/sbin/sh
hmartine:pZlrKamPlX3Zc:200:20:Usuario de Hugo Martinez:/home/hmartine:/sbin/sh
Los campos en orden de izquierda a derecha representan
- Nombre de usuario
- Password encriptada
- Identificador de usuario
- Identificador de grupo primario
- Comentario o descripción acerca de la cuenta
- Home directory, lugar dentro del filesystem donde el usuario se encontrara al iniciar sesión
- Shell o interprete de comandos
root::0:root
other::1:root,hpdb
bin::2:root,bin
sys::3:root,uucp
adm::4:root,adm
daemon::5:root,daemon
mail::6:root
lp::7:root,lp
tty::10:
nuucp::11:nuucp
users::20:root
nogroup:*:-2:
smbnull::101:
cimsrvr::102:
sshd::103:
hpsmh::104:
other::1:root,hpdb
bin::2:root,bin
sys::3:root,uucp
adm::4:root,adm
daemon::5:root,daemon
mail::6:root
lp::7:root,lp
tty::10:
nuucp::11:nuucp
users::20:root
nogroup:*:-2:
smbnull::101:
cimsrvr::102:
sshd::103:
hpsmh::104:
- Nombre de grupo
- Password encriptada (opcional)
- Identificador de grupo
- Miembros del grupo
Por ejemplo se puede ver que el usuario root forma parte de los grupos root, other, bin, sys, adm, daemon, mail, lp y users
Creación de usuarios
Para crear un usuario invocamos al comando useradd, por ejemplo se puede ejecutar lo siguiente
useradd -u 200 -g 20 -c "Usuario de Hugo Martinez" -m -s /sbin/sh hmartine
Para crear un usuario invocamos al comando useradd, por ejemplo se puede ejecutar lo siguiente
useradd -u 200 -g 20 -c "Usuario de Hugo Martinez" -m -s /sbin/sh hmartine
donde los flags,
-u especifica el user id
-g indica el group id primario
-c Permite ingresar un comentario / descripción acerca del usuario
-m Crea el home directory si este no existe
-s especifica el shell que se quiere usar
este comando tiene muchos flags para modificar su comportamiento
-d especifica el home directory
-G permite agregar grupos secundarios, se indica por group id o por group name
-o permite UID duplicados
-k especifica el skel directory, en este directorio se guardan archivos (por ejemplo .profile) que luego se copian al home del usuario que sera creado
La opción -D del useradd nos permite ver algunos de los valores que se setean por default
useradd -D
GROUPID 20
BASEDIR /home
SKEL /etc/skel
SHELL /sbin/sh
INACTIVE -1
EXPIRE
COMMENT
CHOWN_HOMEDIR no
CREAT_HOMEDIR no
ALLOW_DUP_UIDS no
Como es necesario que el /etc/passwd pueda ser leído por cualquier usuario, ya que programas sin privilegio como un simple ls -l necesita leerlo para poder mostrar el nombre y grupo del dueño de los files.
Por este motivo se vio la necesidad de crear un tercer archivo para separar las passwords encriptadas del archivo de passwords y asi nacio el /etc/shadow
Para generar el archivo /etc/shadow debemos correr el comando pwconv
Contenido del /etc/passwd antes de correr pwconv
cat /etc/passwd
root:thgWHHS/VK7Mo:0:3::/root:/sbin/sh
daemon:*:1:5::/:/sbin/sh
bin:*:2:2::/usr/bin:/sbin/sh
...
hpsmh:*:107:104:System Management Homepage:/var/opt/hpsmh:/sbin/sh
hmartine:sdjIOCJX2AQ1Y:200:20:Usuario de Hugo Martinez:/home/hmartine:/sbin/sh
Luego de correr el pwconv
cat /etc/passwd
root:x:0:3::/root:/sbin/sh
daemon:x:1:5::/:/sbin/sh
bin:x:2:2::/usr/bin:/sbin/sh
...
hpsmh:x:107:104:System Management Homepage:/var/opt/hpsmh:/sbin/sh
hmartine:x:200:20:Usuario de Hugo Martinez:/home/hmartine:/sbin/sh