Manejando usuarios y grupos
Como el Kernel entiende los usuario y grupos
El kernel de Linux no distingue los usuarios por su nombre sino por su UID (user id) y GUID (group id) esta asociación la realiza mediante el fichero /etc/password y para los grupos /etc/group
El fichero /etc/password
ballano:x:500:500:david ballano:/home/ballano:/bin/bash
- ballano
ballano es el usuario
- x
Significa que el password está encriptado en el fichero /etc/shadow sino deberiamos tener una cadena ecriptada que sería el password
- 500
UID
- 500
GUID
- david ballano
Es un campo de descripción si queremos que automaticamente este campo tenga el username pondremos "&"
- /home/ballano
Este es el home del usuario
- /bin/bash
La shell utilizada por el usuario, si la dejamos en blanco el sistema le pondre /bin/sh que es un link a /bin/bash
El fichero /etc/group
users:x:100:ballano,david
- users
el nombre del grupo
- x
Significa que el password de grupo esta encriptado en /etc/gshadow
- 100
GUID
- ballano,david
Son los usuarios que pertenecen al grupo users separados por coma.
Password en grupos
Imaginemos que como usuario normal necesitamos crear un fichero con un grupo diferente del nuestro, para ello tenemos el comando newgrp que cambia momentaneamente nuestro grupo principal al que le pongamos
newgrp pedro
nos pedirá un password
con gpassword podemos asignar la contraseña al grupo
Esto está muy bien pero solo podremos asignar un password a este grupo, y tendremos que darlo a todo el mundo que necesite realizar algo, para este caso es mejor utilizar el bit SGID pasar de ir poniendo passwords a los grupos.
Ficheros Login especiales
- /etc/nologin
Si lo utilizamos como shell en una cuenta de usuario , este programa mostrará un mensaje de cuenta no disponible, si /etc/nologin.txt existiera mostraría el contenido del mismo en vez del mensaje default.
- /bin/false
Si lo utilizamos como shell en una cuenta de usuario el usuario no podrá logarse, no dará ningún mensaje, es como si el usuario no existiera, es la mejor opción.
- /etc/motd
message of the day, Una vez el usuario entra en el sistema el contenido del motd se muestra en pantalla,
Añadiendo usuarios
useradd -m -d /home2/ballano -u 1001 -k /etc/skel_custom -g 1001 -c "David Ballano"
- -m
Debian por defecto no crea un directorio home, por eso ponemos -m
- -d
De esta manera podemos especificar otro home diferente del default
- -u
UID
- -k
Especificamos la plantilla de creacion del usuario
- -g
GID
- -c
Campo descripción
Otras opciones importates son:
- -G
Añade un grupo secundario al usuario a parte del principal (esto se puede hacer posteriormente con usermod)
- -s
Shell del usuario
- -e
Expire date, fija la fecha en la que el usuario expirará después de esta fecha el usuario se deshabilita un "*" en el campo password cd /etc/passwd
- -f
Fija los dias que el usuario podrá seguir logeando una vez la contraseña haya expirado. el valor "0" deshabilita la cuenta cunado el password expira.
El comando useradd tiene unos valores por defecto, los podemos comprobar si ponemos
[root@box ~]# useradd -D GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/bash SKEL=/etc/skel CREATE_MAIL_SPOOL=yes
para modificar estos valores podemos hacer lo siguiente, por ejemplo el interprete de comandos
useradd -D -s /bin/ksh
Añadiendo Grupos
groupadd admins
Añadimos el grupo admins
groupadd -g 1002 usuarios
Añadimos el grupo usuarios con el GID 1002
Modificando las cuentas de usuario
Con usermod podemos modificar las cuentas creadas, la mayoría de opciones son identicas a las que utilizamos con useradd
- -c
- -d
- -e
- -f
otras opciones son:
- -L
Lock, Bloquea la cuenta de usuario alterando el /etc/shadow cambiando el password encriptado por "!"
- -U
Unlock, desbloquea la cuenta de usuario borrando la "!"
|
Otra manera de bloquear y desbloquear las cuentas de usuario es con el comando passwd y las opciones -u -l ( siempre que utilicemos /etc/shadow ) | |
Eliminando Usuarios
userdel -r ballano
Gracias a la opción -r borramos también el home directory
Permisos de shadow y passwd
/etc/passwd RedHat -rw-r--r-- 644 Debian -rw-r--r-- 644
/etc/shadow Redhat -r-------- 400 Debian rw-r------ 640
como se puede observar Redhat es más restrictivo
Conversión Passwd
Hace unos años algunos linux no llevaban la suite shadow instalada, por ese motivo los passwords estaban encriptados en el fichero /etc/passwd donde podian ser vistos por cualquiera. Para migrar al /etc/shadow, después de instalar el paquete correspondiente, era utilizar las siguientes herramientas para convertir las passwords al nuevo formato.
- pwconv
para convertir a /etc/shadow
- pwunconv
Invierte el proceso remplazando la x del /etc/passwd con el password encriptado.
- grpconv
- grpunconv
Realiza el mismo proceso que los anteriores pero para grupos, pero contra /etc/group y /etc/gshadow
- pwck
Este comando lo podemos utilizar para comprobar la integridad de las cuentas.
Validez de los Passwords
El comando para poder modificar diferentes características como el número de dias que un password es valido es chage
algunas de sus opciones:
- -m
mindays, cuento tiempo despues de cambiar la password el usuario puede volver a cambiarla.
- -M
maxdays, el número de dias que el password es valido.
- -W
warndays,Número de días de aviso antes de que expire la contraseña
para ver estos valores y alguno más podemos hacer lo siguiente:
[ballano@box ~]$ chage -l ballano Último cambio de contraseña :nov 19, 2008 La contraseña caduca : nunca Contraseña inactiva : nunca La cuenta caduca : nunca Número de días mínimo entre cambio de contraseña : 0 Número de días máximo entre cambio de contraseñas : 99999 Número de días de aviso antes de que expire la contraseña : 7