Gestión interactiva de usuarios para cualquier distribución Linux — el script que todo sysadmin termina escribiendo, pero hecho bien y de una vez.
Bash puro, cero dependencias (solo useradd/usermod/passwd, presentes en toda distro). Funciona en Debian/Ubuntu, RHEL/Rocky/Alma, Arch, openSUSE y Alpine.
╔════════════════════════════════════════╗
║ GESTIÓN DE USUARIOS — Linux ║
╚════════════════════════════════════════╝
1) Listar usuarios (con grupos)
2) Ver grupos de un usuario
3) Crear usuario (con directorios, sudo, SSH)
4) Ver qué usuarios tienen clave SSH
5) Asociar clave SSH a un usuario
6) Agregar / quitar de grupos
7) Bloquear / desbloquear cuenta
8) Eliminar usuario
9) Ver registro de auditoría
| Detalle | Qué hace bien |
|---|---|
| Detección de distro | Lee /etc/os-release y ajusta: sudo en Debian, wheel en RHEL/SUSE |
| SSH sin riesgo | Valida el formato de la clave, evita duplicados comparando el cuerpo, y aplica permisos correctos (700/.ssh, 600/authorized_keys) — el error #1 que deja SSH sin funcionar |
| Fingerprint visible | Al listar claves muestra el fingerprint de cada una (auditable a simple vista) |
| Directorios al alta | Crea proyectos/, scripts/, .config/ en el home con ownership correcto (configurable en SKEL_EXTRA_DIRS) |
| Password expirada al crear | El usuario nuevo debe cambiar su contraseña en el primer login (passwd -e) |
| Auditoría | Toda acción queda en /var/log/user-manager.log con fecha y quién la ejecutó |
| Anti-desastres | Confirmación por nombre al eliminar, no permite quitar el grupo principal, valida nombres de usuario |
sudo ./user-manager.shAl inicio del script:
DEFAULT_GROUPS="sudo" # grupo extra por defecto
SKEL_EXTRA_DIRS=("proyectos" "scripts" ".config") # directorios al crear usuario
LOG_FILE="/var/log/user-manager.log" # dónde auditar- Onboarding en empresas: alta de usuario con sus directorios, su clave SSH y su acceso sudo en 1 minuto, sin olvidar ningún paso
- Auditorías de seguridad: "¿qué usuarios tienen SSH sin clave?" (opción 4) — usuarios con solo password en un servidor expuesto son un hallazgo
- Servidores de clientes: corre en cualquier distro, no necesita instalar nada
MIT