Skip to content

Introducción

La correcta gestión de usuarios y grupos es crucial para garantizar la seguridad y organización en sistemas operativos como Red Hat Enterprise Linux (RHEL). Este proceso permite controlar el acceso al sistema, compartir recursos entre usuarios y aplicar políticas de contraseña que refuercen la protección frente a amenazas externas. Con comandos y archivos especializados, RHEL ofrece una amplia gama de herramientas para administrar cuentas de usuarios, gestionar grupos y definir reglas específicas de acceso y vigencia.

Objetivos

Esta sección busca proporcionar un entendimiento claro y práctico sobre:

  • La creación, modificación y eliminación de cuentas de usuarios.
  • La gestión de grupos locales para organizar recursos y permisos.
  • La configuración de contraseñas seguras y políticas de vigencia que protejan el sistema.

Al finalizar esta sección, el usuario estará capacitado para implementar buenas prácticas de seguridad, optimizar la administración de usuarios y grupos, y personalizar configuraciones según las necesidades de su entorno.

Gestión de de usuarios y grupos

Usuarios y Grupos en RHEL

Usuarios

Las cuentas de usuario ofrecen límites de seguridad, asignando un UID (número de identificación único) para diferenciarlas. Existen tres tipos de cuentas:

  • Superusuario: Tiene acceso total al sistema (UID 0).
  • Usuarios del sistema: Son utilizados por procesos del sistema y no interactúan directamente.
  • Usuarios normales: Tienen acceso limitado y son utilizados para el trabajo diario.

Información básica sobre usuarios: Usa el comando id para ver detalles de un usuario, como UID, GID y grupos. Usa el archivo /etc/passwd para consultar las bases de datos de usuarios locales.

Grupos

Los grupos permiten compartir recursos entre múltiples usuarios. Cada grupo tiene un nombre y un GID (número de identificación único). Información sobre grupos: Usa el archivo /etc/group para consultar las bases de datos de grupos locales. Tipos de grupos:

  • Grupo principal: Propietario de los archivos creados por el usuario, definido en /etc/passwd.
  • Grupos complementarios: Almacenan miembros adicionales en /etc/group.

Comandos y Archivos Relacionados

  • Usa ls -l y ls -ld para consultar el propietario de archivos y directorios.
  • Usa ps -au para identificar el usuario asociado a procesos en ejecución.
  • Los usuarios y grupos se gestionan mediante los archivos /etc/passwd y /etc/group.

Gestión de Cuentas de Usuarios Locales

Creación de Usuarios

El comando useradd crea una nueva cuenta de usuario y realiza configuraciones básicas como:

  • Asignar un directorio de inicio.
  • Crear un grupo privado para el usuario con el mismo nombre.

Al momento de la creación, la cuenta no tiene contraseña válida, por lo que el usuario no puede iniciar sesión hasta que se defina una. Sintaxis básica: useradd username Modifica el archivo /etc/passwd y crea el directorio de inicio especificado en /home/username. Los valores predeterminados de las cuentas se definen en /etc/login.defs. Este archivo establece parámetros como el rango de UID válido y las reglas de contraseñas. Cambios en /etc/login.defs afectan solo a los nuevos usuarios.

Modificación de Cuentas de Usuario Existentes

El comando usermod se utiliza para modificar los detalles de una cuenta existente. Opciones comunes:

  • -a -G: Agrega grupos adicionales al usuario sin sobrescribir su configuración actual.
  • -d: Especifica o cambia el directorio de inicio del usuario.
  • -g: Cambia el grupo principal asignado.
  • -s: Cambia la shell predeterminada de inicio de sesión.
  • -L: Bloquea la cuenta del usuario.
  • -U: Desbloquea la cuenta.

Ejemplo: usermod -a -G wheel username usermod -d /new/home/username -m username

Eliminación de Cuentas de Usuario

El comando userdel elimina una cuenta de usuario del sistema, eliminando sus entradas en /etc/passwd y /etc/group. Usa la opción -r para eliminar también el directorio de inicio y otros archivos asociados al usuario. userdel -r username Precaución: Si no se usa -r, los archivos del usuario quedan asociados a un UID no asignado, lo que puede suponer riesgos de seguridad si un nuevo usuario recibe el mismo UID.

Gestión de Contraseñas

El comando passwd establece o modifica la contraseña de un usuario. Los usuarios deben usar contraseñas fuertes (mínimo 8 caracteres, sin nombres comunes). Sintaxis básica: passwd username

Ejemplo: passwd user01 Incluso si no cumple los criterios, el usuario root puede forzar la configuración de una contraseña.

Rangos de UID en RHEL 9

RHEL asigna UIDs dentro de rangos predefinidos según el tipo de usuario:

  • UID 0: Superusuario (root).
  • UID 1-200: Usuarios del sistema asignados estáticamente.
  • UID 201-999: Procesos del sistema con asignación dinámica.
  • UID 1000+: Usuarios regulares.

Nota: En versiones anteriores como RHEL 6, los usuarios regulares empezaban en el UID 500.

Revisión de Cuentas y Propiedades

El comando id proporciona detalles como UID, GID y grupos complementarios de un usuario. id username El usuario root puede usar el comando find para localizar archivos sin propietario asignado: find / -nouser -o -nogroup

Gestión de Cuentas de Grupos Locales

Creación de Grupos

Usa el comando groupadd para crear grupos en el sistema. Por defecto, asigna el siguiente GID disponible según el rango definido en /etc/login.defs mediante las variables GID_MIN y GID_MAX.

Ejemplo básico: groupadd nombre_grupo Puedes especificar el GID con la opción -g: groupadd -g 10000 grupo01 Para crear grupos de sistema, usa la opción -r. Los grupos de sistema utilizan un GID dentro del rango definido por las variables SYS_GID_MIN y SYS_GID_MAX: groupadd -r grupo_sistema

Modificación de Grupos Existentes

El comando groupmod modifica propiedades de un grupo ya creado. Usa la opción -n para cambiar el nombre del grupo: groupmod -n nuevo_nombre_grupo nombre_grupo Usa la opción -g para cambiar el GID de un grupo: groupmod -g nuevo_GID nombre_grupo

Eliminación de Grupos

Usa el comando groupdel para eliminar grupos del sistema.

Ejemplo: groupdel nombre_grupo Precauciones:

  • No se puede eliminar un grupo si es el grupo principal de un usuario existente.
  • Asegúrate de ubicar archivos propiedad del grupo antes de eliminarlo para evitar inconsistencias.

Manejo de Membresía de Grupos

Cambia el grupo principal de un usuario usando usermod -g: usermod -g nuevo_grupo nombre_usuario Agrega un usuario a un grupo complementario usando usermod -aG: usermod -aG nombre_grupo nombre_usuario Importante: La opción -a habilita el modo de adición. Si no se incluye, el usuario es eliminado de otros grupos complementarios no especificados en la lista -G.

Cambio Temporal del Grupo Principal

Usa el comando newgrp para cambiar temporalmente el grupo principal de un usuario a un grupo complementario al que ya pertenece. Esto es útil para asignar atributos específicos a archivos nuevos creados en la sesión actual. Ejemplo: newgrp nombre_grupo

Gestión de Contraseñas de Usuarios

Archivo /etc/shadow

Las contraseñas cifradas se almacenan en /etc/shadow, que solo puede ser leído por el usuario root. Esto protege las contraseñas frente a ataques de diccionario. Cada usuario tiene una entrada con nueve campos separados por dos puntos, que incluyen:

  • Nombre del usuario: Nombre de la cuenta.
  • Contraseña cifrada: Combinación del algoritmo, valor aleatorio (salt) y el hash criptográfico.
  • Días desde la última modificación: En días desde 1970-01-01.
  • Duración mínima y máxima de la contraseña: Días antes de permitir el cambio de contraseña y días antes de caducar.
  • Días de advertencia: Notificaciones previas al vencimiento.
  • Días de inactividad: Tiempo después del vencimiento antes de desactivar la cuenta.
  • Fecha de caducidad de la cuenta: Si está vacía, nunca caduca.

Formato de Contraseña Cifrada Las contraseñas cifradas incluyen tres componentes principales:

  • Algoritmo: SHA-512 es el predeterminado en RHEL 9 ($6). Otros valores incluyen MD5 ($1) y SHA-256 ($5).
  • Valor aleatorio (salt): Protege contra ataques precomputados al generar un hash único.
  • Hash criptográfico: Resultado de combinar la contraseña en texto plano con el salt usando el algoritmo definido.

Comando chage para Políticas de Contraseña

Configura la vigencia de contraseñas ajustando los parámetros del archivo /etc/shadow. Opciones comunes: Periodo de Contraseñas * -m: Mínimos días antes de permitir cambios. * -M: Máximo de días antes del vencimiento. * -W: Días de advertencia antes del vencimiento. * -I: Días de inactividad después del vencimiento antes de bloquear la cuenta. * -E: Fecha de vencimiento de la cuenta en formato YYYY-MM-DD o días desde 1970-01-01.

Ejemplo: chage -m 0 -M 90 -W 7 -I 14 usuario01 chage -E $(date -d "+30 days" +%F) cloudadmin10

Cambios Predeterminados de Contraseñas

Los valores predeterminados de duración de contraseñas se configuran en /etc/login.defs:

  • PASS_MAX_DAYS: Máximos días antes del vencimiento.
  • PASS_MIN_DAYS: Días antes de permitir cambios.
  • PASS_WARN_AGE: Periodo de advertencia previo al vencimiento.

Los usuarios creados después de actualizar /etc/login.defs heredarán estos valores, mientras que las cuentas existentes no se ven afectadas.

Requerir Cambio de Contraseña en el Próximo Inicio de Sesión

Usa el comando chage -d 0 para forzar que un usuario cambie su contraseña en el siguiente inicio de sesión. chage -d 0 usuario01

Bloqueo y Caducidad de Cuentas

Usa usermod -L para bloquear una cuenta y evitar que el usuario inicie sesión: usermod -L usuario02 Combina usermod -L con -e para establecer la fecha de caducidad: usermod -L -e 2022-08-14 usuario02

Shell nologin

Usa /sbin/nologin como shell predeterminada para cuentas que no requieren acceso interactivo: usermod -s /sbin/nologin usuario03 Esto evita conexiones interactivas, pero no bloquea el uso de credenciales en servicios externos (por ejemplo, FTP).

Conclusión

La gestión adecuada de usuarios y grupos en RHEL no solo fortalece la seguridad, sino que también simplifica la administración del sistema, asegurando que cada usuario y recurso esté correctamente organizado y protegido. Dominar estas técnicas es un paso esencial para garantizar un entorno operativo funcional, seguro y eficiente.