La gestión de usuarios y grupos es un pilar fundamental de la seguridad y la administración de sistemas en GNU/Linux. Permite controlar de forma precisa el acceso a los recursos del sistema, aislar privilegios y garantizar la trazabilidad de las acciones realizadas por cada usuario.
Para un administrador de sistemas, dominar la creación y mantenimiento de cuentas, comprender la estructura de los archivos de autenticación del sistema y aplicar políticas de contraseñas seguras es indispensable para proteger la infraestructura frente a accesos no autorizados.
Administración de Cuentas y Estructura de Grupos
Linux es un sistema operativo multiusuario por diseño. Cada proceso y archivo pertenece a un usuario y a un grupo específicos:
useradd (o adduser) permite crear cuentas nuevas configurando parámetros como el directorio personal o el intérprete de comandos por defecto; usermod modifica atributos existentes (como la pertenencia a grupos); y userdel elimina la cuenta, ofreciendo la opción de borrar también sus archivos personales. Para la gestión de contraseñas se emplea el comando passwd.Archivos de Configuración y Políticas de Contraseñas
A diferencia de sistemas operativos donde la gestión de usuarios se oculta tras interfaces gráficas opacas, en Linux la información de autenticación y seguridad reside en archivos de texto plano ubicados en el directorio /etc:
:) que especifican el nombre de usuario, la contraseña cifrada (representada tradicionalmente por una "x" indicando que el hash real está protegido), el UID (Identificador de usuario), el GID (Identificador de grupo primario), el nombre completo o descripción (GECOS), la ruta del directorio personal y el intérprete de comandos (shell) asignado.root) que contiene las contraseñas cifradas mediante funciones hash robustas (como SHA-512) junto con los parámetros temporales de caducidad de las credenciales (fecha de último cambio, días mínimos y máximos de uso, y periodo de aviso previo al vencimiento)./etc/login.defs o mediante módulos PAM (Pluggable Authentication Modules).Analogía: Imagina un complejo edificio de oficinas de alta seguridad. La creación y eliminación de usuarios equivale a emitir o retirar las tarjetas de identificación magnética para los empleados; el grupo primario es el departamento principal al que pertenece el trabajador (por ejemplo, contabilidad), mientras que los grupos secundarios son comités temporales o proyectos transversales en los que colabora puntualmente; el archivo /etc/passwd es el directorio general de empleados colgado en la entrada (muestra quiénes son y dónde está su despacho); /etc/shadow es la caja fuerte privada del departamento de seguridad que guarda los códigos de acceso cifrados y las fechas de caducidad de las tarjetas; /etc/group es el registro organizativo de los equipos de trabajo; y las políticas de contraseñas equivalen a la normativa interna que obliga a cambiar la clave de acceso cada cierto tiempo y prohíbe usar combinaciones demasiado sencillas como fechas de cumpleaños.
Actividad práctica
Objetivo:
Gestionar cuentas de usuario y grupos en un entorno Linux, analizando el contenido de los archivos de autenticación del sistema.
Tareas:
- Abre la terminal de Linux y utiliza el comando
sudo useradd -m -s /bin/bash tec_usuariopara crear un nuevo usuario con su directorio personal y shell asignados. Configura su contraseña ejecutandosudo passwd tec_usuario. - Inspecciona las últimas líneas del archivo de configuración ejecutando
tail -n 3 /etc/passwdpara comprobar cómo se ha registrado la nueva cuenta y su identificador numérico (UID). - Crea un grupo secundario llamado
auditoresmediante el comandosudo groupadd auditoresy añade al usuario recién creado a dicho grupo usandosudo usermod -aG auditores tec_usuario. Verifica el resultado consultando el archivo/etc/group.
/etc/shadow frente al archivo /etc/passwd en términos de seguridad del sistema.Preguntas de reflexión:
/etc/passwd y la almacenada en /etc/shadow?/etc/passwd en los sistemas Linux modernos?/etc/shadow a mitigar ataques por compromiso prolongado de credenciales?Haz clic aquí para ver las soluciones y explicaciones
1. ¿Qué diferencia hay entre /etc/passwd y /etc/shadow?
El archivo /etc/passwd contiene información general de los usuarios (nombre, UID, GID, shell, directorio personal) y debe ser de lectura pública para que el sistema operativo identifique a los usuarios. El archivo /etc/shadow almacena las contraseñas cifradas mediante hash y las políticas de caducidad temporal, y está estrictamente protegido con permisos de lectura exclusivos para el administrador (root) para evitar que programas maliciosos intenten descifrar las claves.
2. ¿Por qué se utiliza una "x" en el archivo /etc/passwd?
Antiguamente, las contraseñas cifradas se guardaban directamente en el archivo /etc/passwd, el cual era accesible para cualquier usuario del sistema, facilitando ataques de fuerza bruta. Hoy en día, la "x" es simplemente un indicador visual que avisa al sistema de que el hash de la contraseña real ya no se encuentra ahí, sino oculto y protegido de forma segura en el archivo /etc/shadow.
3. ¿Qué implicaciones tiene otorgar privilegios de superusuario de forma indiscriminada?
Viola el principio de mínimo privilegio. Si cualquier usuario cuenta con permisos de administración (root o sudo total), un fallo de seguridad en su cuenta, una contraseña débil o un error humano pueden comprometer por completo la integridad, confidencialidad y disponibilidad de todo el sistema operativo, permitiendo que un atacante tome el control absoluto de la máquina.
4. ¿Qué utilidad aportan los grupos primarios y secundarios?
El grupo primario organiza por defecto la pertenencia principal del usuario y los permisos de creación de archivos. Los grupos secundarios permiten otorgar accesos modulares y compartidos a recursos específicos (como carpetas de proyectos o herramientas de administración) a múltiples usuarios de manera independiente, simplificando enormemente la gestión de listas de control de acceso.
5. ¿Cómo ayudan las políticas de caducidad de contraseñas en /etc/shadow?
Obligan a los usuarios a renovar sus credenciales de forma periódica y limitan el tiempo máximo que una contraseña comprometida o débil puede permanecer activa en el sistema. Esto reduce significativamente la ventana de oportunidad para que un atacante explote credenciales robadas y mantenga un acceso persistente no autorizado.