8.4. Bases de datos de usuarios y grupos
Generalmente se almacena la lista de usuarios en el archivo /etc/passwd
y el archivo /etc/shadow
almacena las contraseñas cifradas. Ambos son archivos de texto en un formato relativamente simple que pueden leerse y modificarse con un editor de texto. Se muestra cada usuario en una línea con varios campos separados por dos puntos («:
»).
8.4.1. Lista de usuarios: /etc/passwd
Esta es una lista de los campos en el archivo /etc/passwd
:
nombre de usuario, por ejemplo rhertzog
;
contraseña: esta es una contraseña cifrada por una función unidireccional (crypt
), que utiliza DES
, MD5
, SHA-256
o SHA-512
. El valor especial «x
» indica que la contraseña cifrada está almacenada en /etc/shadow
;
uid
: número único que identifica a cada usuario;
gid
: número único del grupo principal del usuario (de forma predeterminada, Debian crea un grupo específico para cada usuario);
GECOS
: campo de datos que generalmente contiene el nombre completo del usuario;
directorio de inicio de sesión, asignado al usuario para almacenar sus archivos personales (al que generalmente apunta la variable de entorno $HOME
);
programa a ejecutar al iniciar sesión. Generalmente es un intérprete de órdenes (consola) que le da libertad al usuario. Si especifica /bin/false
(que no hace nada y vuelve el control inmediatamente), el usuario no podrá iniciar sesión.
8.4.2. El archivo de contraseñas ocultas y cifradas: /etc/shadow
El archivo /etc/shadow
contiene los siguientes campos:
8.4.3. Modificación de una cuenta o contraseña existente
Los siguientes programas permiten modificar la información almacenada en campos específicos de la base de datos de usuarios: passwd
le permite a un usuario normal cambiar su contraseña que, a su vez, actualiza el archivo /etc/shadow
; chfn
(cambiar el nombre completo: «CHange Full Name»), reservado para el superusuario (root), modifica el campo GECOS
. chsh
(cambiar consola: «CHange SHell») le permite a un usuario cambiar su consola de inicio de sesión, sin embargo las opciones disponibles estarán limitadas a aquellas mencionadas en /etc/shells
; el administrador, por el otro lado, no está limitado por esta restricción y puede configurar la consola a cualquier programa de su elección.
Finalmente chage
(cambiar edad: «CHange AGE») permite al administrador cambiar la configuración de expiración de la contraseña (la opción -l usuario
mostrará la configuración actual). También puede forzar la expiración de una contraseña utilizando la orden passwd -e usuario
, que obligará al usuario a cambiar su contraseña la próxima vez que inicie sesión.
8.4.4. Desactivación de una cuenta
Puede llegar a necesitar «desactivar una cuenta» (bloquear el acceso a un usuario) como castigo, para una investigación o simplemente en caso de una ausencia prolongada o definitiva de un usuario. Una cuenta desactivada significa que el usuario no podrá iniciar sesión y obtener acceso a la máquina. La cuenta se mantiene intacta en el equipo y no se eliminarán archivos o datos; simplemente es inaccesible. Puede lograr esto utilizando passwd -l usuario
(bloquear: «lock»). Puede reactivar la cuenta de forma similar, utilizando la opción -u
(desbloquear: «unlock»).
8.4.5. Lista de grupos: /etc/group
Se enumeran los grupos en el archivo /etc/group
, una simple base de datos de texto en un formato similar al del archivo /etc/passwd
con los siguientes campos:
Los programas addgroup
y delgroup
agregan o eliminan un grupo respectivamente. groupmod
modifica la información de un grupo (su identificador o gid
). La orden passwd -g grupo
cambia la contraseña del grupo mientras que passwd -r -g grupo
elimina dicha contraseña.