Product SiteDocumentation Site

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:
  • nombre de usuario;
  • contraseña cifrada;
  • varios campos que administran el vencimiento de la contraseña.

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:
  • nombre del grupo;
  • contraseña (opcional): sólo es utilizada para unirse a un grupo cuando no es un miembro normal (con newgrp o sg, revise el recuadro VOLVER A LOS CIMIENTOS Trabajar con varios grupos);
  • gid: número único de identificación del grupo;
  • lista de miembros: lista separados por comas de nombres de usuario que son miembros del grupo.
The addgroup and delgroup commands add or delete a group, respectively. The groupmod command modifies a group's information (its gid or identifier). The command gpasswd group changes the password for the group, while the gpasswd -r group command deletes it.