Administración de Usuarios y Grupos
- Conceptos Fundamentales
En sistemas Linux, cada usuario es identificado mediante un UID (Identificador Único de Usuario). El administrador del sistema tiene el UID 0, generalmente con el nombre de root. Los UID del 1 al 1000 están reservados para procesos demonio, mientras que los UID superiores a 1000 se asignan a usuarios interactivos.
Los grupos se identifican mediante GID (Identificador Único de Grupo). El grupo principal del sistema suele tener el GID 0. Cada usuario debe pertenecer al menos a un grupo, y por defecto al crear un usuario se genera un grupo con el mismo nombre. Un grupo puede incluir a múltiples usuarios.
- Archivos de Confiugración
/etc/passwd
Contiane información sobre los usuarios y sus atributos:
- Nombre de usuario: Identificador para iniciar sesión
- Contraseña: Generalmente muestra 'x' (las contraseñas reales están en /etc/shadow)
- UID: Identificador numérico del usuario
- GID: Identificador del grupo principal
- GECOS: Nombre completo o información del usuario
- Directorio home: Directorio personal del usuario
- Shell: Programa shell predeterminado
/etc/shadow
Almacena contraseñas y atributos relacionados:
- Nombre de usuario
- Contraseña cifrada (generalmente con SHA-512)
- Días desde el 01/01/1970 hasta el último cambio de contraseña
- Días hasta que la contraseña puede ser cambiada (0 = inmediatamente)
- Días hasta que la contraseña debe ser cambiada (99999 = nunca)
- Días antes de la expiración para advertencia al usuario
- Días después de la expiración para bloqueo de cuenta
- Días hasta que la cuenta queda inactiva
/etc/group
Contiene información sobre los grupos:
- Nombre del grupo
- Contraseña del grupo (normalmente vacío)
- GID del grupo
- Lista de usuarios petrenecientes al grupo (separados por comas)
/etc/gshadow
Almacena contraseñas y atributos de grupos:
- Nombre del grupo
- Contraseña del grupo
- Lista de administradores del grupo
- Lista de miembros del grupo
/etc/default/useradd
Configuración predeterminada para la creación de usuarios:
- GROUP=100 (GID predeterminado)
- HOME=/home (directorio home predeterminado)
- INACTIVE=-1 (período de gracia para contraseña expirada)
- EXPIRE= (fecha de expiración de cuenta)
- SHELL=/bin/bash (shell predeterminado)
- SKEL=/etc/skel (plantilla para directorios home)
- CREATE_MAIL_SPOOL=yes (crear buzón de correo)
- Gestión de Usuarios
3.1 Creación de Usuarios
useradd [opciones] nombre_usuario
Opciones:
-u UID
-o Combinado con -u, permite duplicar UID
-g GID Especifica grupo principal
-c "COMENTARIO" Información del usuario
-d DIR_HOME Directorio home personal
-s SHELL Shell predeterminado
-g GRUPO1[,GRUPO2,...] Grupos adicionales
-N No crear grupo privado
-r Crear usuario del sistema
-m Crear directorio home (para usuarios del sistema)
-M No crear directorio home
-p Contraseña cifrada
Ejemplo:
useradd -r -u 48 -g apache -s /sbin/nologin -d /var/www -c "Apache" apache
3.2 Modificación de Usuarios
usermod [opciones] nombre_usuario
Opciones:
-u UID: Nuevo UID
-g GID: Nuevo grupo principal
-G GRUPO1[,GRUPO2,...]: Nuevos grupos adicionales
-s SHELL: Nuevo shell predeterminado
-c 'COMENTARIO': Nueva información
-d DIR_HOME: Nuevo directorio home
-l nombre_nuevo: Nuevo nombre de usuario
-L: Bloquear usuario
-U: Desbloquear usuario
-e YYYY-MM-DD: Fecha de expiración
-f INACTIVO: Período de inactividad
Ejemplo:
usermod -u 49 -g 1001 -s /sbin/login -l prueba apache
3.3 Eliminación de Usuarios
userdel [opciones] nombre_usuario
Opciones:
-f, --force: Forzar eliminación
-r, --remove: Eliminar directorio home y buzón
Ejemplo:
userdel -r -f prueba
3.4 Cambio de Usuario
su [opciones] nombre_usuario
Opciones:
- Cambio de sesión completo (carga configuraciones del usuario)
3.5 Información de Usuarios
id nombre_usuario
finger nombre_usuario
- Gestión de Contraseñas
4.1 Establecer Contraseñas
passwd [opciones] NombreUsuario
Opciones:
-d: Eliminar contraseña
-l: Bloquear usuario
-u: Desbloquear usuario
-e: Forzar cambio en próximo inicio
-f: Forzar operación
-n mindays: Período mínimo de uso
-x maxdays: Período máximo de uso
-w warndays: Días de advertencia
-i inactivedays: Período de inactividad
--stdin: Leer contraseña desde entrada estándar
4.2 Modificar Política de Contraseñas
chage [opciones] nombre_usuario
Opciones:
-d ULTIMO_DIA # Fecha de último cambio
-m --mindays MIN_DIAS
-M --maxdays MAX_DIAS
-W --warndays ADVERTENCIA_DIAS
-I --inactive INACTIVO # Período de gracia
-E --expiredate FECHA_EXPIRACION # Fecha de expiración
-l Mostrar política actual
- Gestión de Grupos
5.1 Creación de Grupos
groupadd [opciones] nombre_grupo
Opciones:
-g GID Especifica GID
-r Crear grupo del sistema
Ejemplo:
groupadd -g 48 -r apache
5.2 Modificación de Grupos
groupmod [opciones] grupo
Opciones:
-n nombre_nuevo: Nuevo nombre
-g GID: Nuevo GID
5.3 Eliminación de Grupos
groupdel [opciones] GRUPO
Opciones:
-f, --force: Forzar eliminación
5.4 Cambiar Contraseña de Grupo
gpasswd [opciones] GRUPO
-a usuario Añadir usuario al grupo
-d usuario Eliminar usuario del grupo
-A usuario1,usuario2,... Establecer administradores
5.5 Información de Grupos
groupmems [opciones] [acción]
Opciones:
-g, --group nombre_grupo
-a, --add nombre_usuario
-d, --delete nombre_usuario
-p, --purge
-l, --list
Mecanismo sudo
El mecanismo sudo permite que usuarios normales ejecuten comandos con privilegios de root, facilitando la administración de permisos.
- Instalación
yum -y install sudo
- Configuración
Archivos de configuración principales:
- /etc/sudo.conf
- /etc/sudoers
- /etc/sudoers.d
Verificación de sintaxis:
/usr/sbin/visudo -c archivo
Sintaxis básica:
usuario host=(representante) comando
usuario: Quien ejecuta el comando
host: Desde qué hosts
(representante): Con qué identidad
comando: Qué comandos ejecutar