Gestión de usuarios en servidores Linux¶
Este módulo explica cómo gestionar usuarios y grupos en servidores Linux desde el punto de vista administrativo, no como uso personal del sistema.
Aprenderás a controlar accesos, diferenciar tipos de cuentas, usar grupos correctamente y aplicar buenas prácticas para entornos de producción. Una mala gestión de usuarios es una de las causas más frecuentes de incidentes de seguridad y errores operativos.
Introducción¶
Linux es un sistema multiusuario por diseño.
En un servidor, cada proceso, cada acceso y cada acción ocurre bajo una identidad.
Gestionar usuarios en servidores no va de “crear cuentas”, sino de:
- Controlar quién puede acceder
- Definir qué puede hacer cada uno
- Reducir superficie de ataque
- Mantener trazabilidad de acciones
En producción, cada usuario es un vector de riesgo si no está bien gestionado.
Tipos de usuarios en un servidor¶
En un servidor Linux existen distintos tipos de usuarios, y no deben tratarse igual.
Usuarios humanos¶
Son cuentas usadas por personas reales.
Características:
- Acceso interactivo
- Shell asignada
- Uso limitado
- Normalmente vía SSH
Ejemplo:
id admin
Uso típico:
- Administración
- Mantenimiento
- Soporte
Usuarios de sistema (usuarios técnicos)¶
Usados por servicios y demonios.
Características:
- No interactivos
- Sin login real
- Ejecutan procesos
- UID bajo
Ejemplos comunes:
www-data
mysql
redis
sshd
id www-data
⚠️ Nunca uses usuarios de sistema para login humano.
Usuario root¶
- UID 0
- Control total del sistema
- Puede ignorar permisos
id root
❗ root no debe usarse para trabajo diario.
Grupos como herramienta administrativa¶
Los grupos son la base de una buena gestión de accesos.
Un grupo permite:
- Asignar permisos a varios usuarios
- Gestionar accesos de forma centralizada
- Evitar configuraciones individuales
Ejemplo:
groupadd admins
usermod -aG admins admin
Ver grupos de un usuario:
groups admin
💡 En servidores, los permisos se dan a grupos, no a usuarios individuales.
sudo: acceso controlado a privilegios¶
En servidores modernos, sudo es obligatorio.
Permite:
- Ejecutar comandos como root
- Mantener trazabilidad
- Limitar privilegios
Ejemplo:
sudo systemctl restart nginx
Archivo clave:
/etc/sudoers
Editar siempre con:
visudo
⚠️ Nunca edites sudoers con editores normales.
Alta y baja de usuarios en servidores¶
Crear usuario correctamente¶
Forma recomendada:
adduser admin
O explícita:
useradd -m -s /bin/bash admin
passwd admin
Añadir a grupos¶
usermod -aG sudo admin
❗ Sin
-a, sobrescribes grupos existentes.
Eliminar usuarios¶
userdel admin
Eliminar también su home:
userdel -r admin
⚠️ Antes de borrar, revisa procesos y datos asociados.
Control de acceso SSH¶
En servidores, SSH es la puerta principal.
Buenas prácticas:
- Deshabilitar login directo de root
- Usar claves SSH
- Limitar usuarios permitidos
Archivo clave:
/etc/ssh/sshd_config
Opciones típicas:
PermitRootLogin no
AllowUsers admin soporte
Aplicar cambios:
systemctl restart ssh
Gestión del ciclo de vida del usuario¶
Un sysadmin debe gestionar todo el ciclo de vida:
- Alta
- Modificación
- Revocación
- Eliminación
Situaciones críticas:
- Usuario que deja la empresa
- Cuenta temporal olvidada
- Claves no rotadas
- Accesos innecesarios
💡 Un usuario que ya no debería existir es un riesgo.
Archivos clave del sistema¶
Usuarios y grupos se definen en archivos de texto:
/etc/passwd
/etc/shadow
/etc/group
Nunca editarlos a mano salvo casos muy concretos y con cuidado.
Puntos críticos / Errores comunes¶
Errores habituales en servidores:
- Usar root para todo
- Compartir cuentas
- Dar sudo sin criterio
- No eliminar usuarios antiguos
- Olvidar
-aen usermod - Permitir SSH a usuarios innecesarios
Consejo: menos usuarios = menos problemas.
Ejercicios prácticos¶
- Crear un usuario administrativo
adduser admin-test
usermod -aG sudo admin-test
groups admin-test
- Revisar accesos actuales
cat /etc/passwd | tail
groups
- Revisar configuración SSH
sshd -T | grep permitrootlogin
Mentalidad¶
Un sysadmin debe pensar así:
- Cada usuario es un posible problema
- Los accesos deben ser mínimos
- Grupos simplifican la gestión
- sudo es preferible a root
- Eliminar accesos es tan importante como crearlos
- La seguridad empieza por los usuarios
La gestión de usuarios es control de riesgo, no burocracia.
Resumen¶
- Linux es multiusuario por diseño
- Existen usuarios humanos y de sistema
- Los grupos son la base de los permisos
- sudo permite acceso controlado a root
- SSH debe configurarse con cuidado
- La gestión del ciclo de vida del usuario es clave
Siguiente paso¶
En el siguiente módulo entrarás en:
Permisos en producción 04-permisos.md
Donde verás:
- Permisos aplicados a servicios reales
- Relación permisos ↔ procesos
- Errores típicos en producción
- Cómo diagnosticar problemas sin usar 777