Bienvenido al Día 1 de nuestro viaje DevOps. Como ingenieros DevOps pasamos gran parte del tiempo con servidores Linux, ya sea de forma manual o mediante automatización. Empezamos por el núcleo: gestión de usuarios en Linux y tipos de shell. En Q2BSTUDIO impulsamos proyectos de software a medida y aplicaciones a medida con prácticas DevOps modernas, integrando inteligencia artificial, ciberseguridad, servicios cloud AWS y Azure, servicios de inteligencia de negocio y power bi, además de automatización con agentes IA para empresas.
Operaciones CRUD sobre usuarios en Linux
Piensa en CRUD como los cuatro verbos de la administración del sistema, igual que en bases de datos pero aplicado a cuentas de usuario.
1. Crear usuario
Comando básico: sudo useradd yousuf
Crear también el directorio home: sudo useradd -m yousuf
2. Leer información del usuario
Consultar UID, GID y shell asignada: id yousuf y getent passwd yousuf
3. Actualizar usuario
Cambiar la shell de inicio: sudo usermod -s /bin/bash yousuf
Cambiar el directorio home: sudo usermod -d /home/new_home yousuf
4. Eliminar usuario
Eliminar la cuenta y mantener el home: sudo userdel yousuf
Eliminar la cuenta y su home: sudo userdel -r yousuf
Consejo práctico: borrar un usuario no borra automáticamente los archivos que creó fuera de su home, así que verifica rutas y propiedad de ficheros antes de tomar la decisión.
Shell interactiva vs no interactiva
Shell interactiva
Cuando el usuario inicia sesión obtiene un prompt y puede ejecutar comandos. Ejemplo de acceso: ssh yousuf@server, prompt típico: yousuf@server:~$. Normalmente la shell de login es /bin/bash o /bin/sh.
Shell no interactiva
El usuario no obtiene prompt ni acceso interactivo. Shells comunes para este uso: /sbin/nologin o /bin/false. Si alguien intenta ssh yousuf@server con /sbin/nologin, el sistema informa que la cuenta no está disponible. Con /bin/false, la sesión termina de inmediato. Esto es ideal para cuentas de servicio como bases de datos, agentes de backup o herramientas de monitorización que no requieren acceso humano.
Desafío práctico
Escenario: para cumplir con los requisitos de una herramienta de backup, el equipo de administración de xFusionCorp Industries solicita crear un usuario con shell no interactiva.
Tarea: crea el usuario yousuf con una shell no interactiva en App Server 3.
Detalles de conexión
Servidor objetivo: stapp03 172.16.238.12, usuario de acceso: banner, contraseña: BigGr33n, jump host: jump_host.stratos.xfusioncorp.com con usuario thor y contraseña mjolnir123.
Paso a paso
Paso 1: conecta al jump host: ssh thor@jump_host.stratos.xfusioncorp.com contraseña: mjolnir123
Paso 2: desde el jump host accede a App Server 3: ssh banner@stapp03.stratos.xfusioncorp.com contraseña: BigGr33n
Paso 3: crea el usuario con shell no interactiva. Opción recomendada: sudo useradd -s /sbin/nologin yousuf. Alternativa si no existe nologin: sudo useradd -s /bin/false yousuf
Paso 4: verifica la configuración: getent passwd yousuf. Salida esperada de ejemplo: yousuf:x:1005:1005::/home/yousuf:/sbin/nologin. El último campo confirma que la shell es no interactiva.
Conclusión
Hoy dominaste las operaciones CRUD de cuentas en Linux, comprendiste la diferencia entre shells interactivas y no interactivas y aplicaste el conocimiento en un escenario real creando un usuario de servicio con acceso restringido. Si tu organización busca acelerar la entrega de valor con prácticas DevOps y nube, en Q2BSTUDIO te acompañamos con servicios cloud AWS y Azure, además de automatización de procesos para construir pipelines robustos y seguros. Nuestro equipo integra software a medida, inteligencia artificial e ia para empresas, ciberseguridad con pentesting, servicios inteligencia de negocio y power bi, y agentes IA, alineando tecnología y negocio para impactar tus resultados desde el primer día.