Cómo crear y gestionar usuarios en Linux
¿Qué es un usuario en Linux y por qué aprender a gestionarlos?
Cuando empiezas a trabajar con un servidor Linux, una de las primeras cosas que notarás es que no eres "la única persona en la casa". Linux es un sistema operativo multiusuario por naturaleza. Esto significa que varias personas (o aplicaciones) pueden conectarse al mismo equipo al mismo tiempo, cada una con su propio espacio, sus propios archivos y sus propios permisos.
Piensa en un usuario de Linux como una llave de un edificio. Cada llave abre ciertas puertas y no otras. Si aprendes a crear usuario linux, a modificarlo y a eliminarlo correctamente, estarás construyendo un sistema seguro y ordenado. No importa si tienes un VPS para tu web, un servidor de correo o un proyecto personal: saber gestionar usuarios es una habilidad fundamental.
En esta guía, cubriremos desde los comandos básicos (useradd, usermod) hasta trucos avanzados para dar permisos especiales. Todo explicado de forma sencilla, paso a paso y sin tecnicismos innecesarios.
Requisitos previos para empezar
Antes de lanzarnos a escribir comandos, necesitas dos cosas:
- Acceso al servidor por SSH. Normalmente usarás una terminal (PuTTY en Windows, Terminal en Mac o Linux).
- Permisos de superusuario (root o sudo). Crear o modificar usuarios requiere privilegios de administrador. Si tu usuario actual tiene acceso a
sudo, perfecto. Si no, necesitarás pedir ayuda a tu proveedor de hosting.
[INFO] Si tu servidor usa un panel de control tipo Syspanel (antes conocido como HestiaCP), recuerda que el acceso administrativo a ese panel se realiza por el puerto 2106 (por ejemplo,
https://tu-dominio.com:2106). Pero los comandos de esta guía se ejecutan directamente en la terminal del sistema, no en el panel.
Comando useradd: la base para crear usuario linux
El comando más directo para crear usuario linux es useradd. Sin embargo, hay que tener cuidado: por defecto, useradd es bastante "básico" y no crea el directorio personal del usuario ni le asigna una contraseña. Vamos a ver cómo usarlo correctamente.
Sintaxis básica de useradd
La forma más simple de crear un usuario es:
sudo useradd nombre_usuario
Pero esto solo crea la entrada en el sistema. No tendrás carpeta en /home, ni contraseña. Por eso, lo recomendable es usar opciones:
sudo useradd -m -s /bin/bash nombre_usuario
Desglose de opciones:
-m: Crea el directorio/home/nombre_usuarioautomáticamente.-s /bin/bash: Asigna la shell de inicio de sesión (para que pueda usar comandos normales).
Crear usuario linux con contraseña
Después de crear el usuario con useradd, debes asignarle una contraseña. Se hace con el comando passwd:
sudo passwd nombre_usuario
El sistema te pedirá que escribas la contraseña dos veces. Verás que no se muestra nada al escribir (ni asteriscos), es completamente normal.
[TIP] Siempre usa contraseñas largas y únicas. Evita fechas de nacimiento o palabras del diccionario.
Ejemplo completo para crear un usuario
Vamos a crear un usuario llamado juan con su carpeta personal y shell bash:
sudo useradd -m -s /bin/bash juan
sudo passwd juan
Resultado: El usuario juan ya puede iniciar sesión por SSH o en consola local.
Opciones avanzadas de useradd que debes conocer
Cuando ya sabes lo básico, puedes personalizar mucho más. Aquí tienes las opciones más útiles:
-c "Comentario": Agrega una descripción (por ejemplo, nombre completo).-d /ruta/carpeta: Especifica un directorio personal distinto al estándar.-e YYYY-MM-DD: Fijar fecha de expiración de la cuenta (útil para temporales).-G grupo1,grupo2: Agregar el usuario a varios grupos secundarios al mismo tiempo.-u 1500: Asignar un UID (identificador de usuario) específico.
Ejemplo con varias opciones:
sudo useradd -m -s /bin/bash -c "Juan Pérez - Ventas" -G www-data,developers -e 2025-12-31 juan
Este comando crea al usuario juan, con su carpeta, shell, comentario, pertenencia a dos grupos adicionales y una fecha de caducidad.
El comando usermod: la navaja suiza para gestionar usuarios
Una vez el usuario existe, la gestión diaria se hace con usermod. Este comando permite modificar casi cualquier atributo de una cuenta sin necesidad de borrarla y crearla de nuevo.
Cambiar el grupo principal de un usuario
Cada usuario tiene un grupo principal (normalmente con su mismo nombre). Para cambiarlo:
sudo usermod -g grupo_nuevo nombre_usuario
Agregar un usuario a grupos secundarios
Imagina que quieres que juan tenga acceso a www-data (grupo del servidor web) y a docker. La opción -aG es la más segura porque añade sin quitar los grupos actuales:
sudo usermod -aG www-data,docker juan
[WARNING] No uses
-Gsin-a(es decir,usermod -G grupo juan), porque esto reemplazará todos los grupos secundarios y el usuario podría perder accesos importantes.
Bloquear o desbloquear una cuenta
Si un empleado se va o un usuario queda inactivo, puedes bloquear su acceso sin borrarlo:
sudo usermod -L nombre_usuario
Para desbloquear:
sudo usermod -U nombre_usuario
Cambiar la fecha de expiración
Para cuentas temporales o de prácticas:
sudo usermod -e 2025-06-30 nombre_usuario
Cambiar el shell o el directorio personal
sudo usermod -s /usr/sbin/nologin nombre_usuario
El shell nologin impide que el usuario inicie sesión interactiva, pero la cuenta sigue existiendo (útil para cuentas de servicio).
Listar y consultar información de usuarios
Para gestionar usuarios necesitas saber qué tienes. Estos comandos te ayudarán:
- Ver todos los usuarios del sistema:
cat /etc/passwd - Ver la información de un usuario concreto:
id nombre_usuario - Ver la fecha de cambio de contraseña:
chage -l nombre_usuario - Ver quién está conectado ahora mismo:
whoow
Ejemplo de salida de id juan:
uid=1001(juan) gid=1001(juan) groups=1001(juan),33(www-data),999(docker)
Aquí ves el UID, el grupo principal y los grupos secundarios. Muy útil para depurar permisos.
Eliminar usuarios de forma segura
Llega un momento en que hay que borrar cuentas. El comando es userdel, pero cuidado:
sudo userdel nombre_usuario
Esto elimina la cuenta, pero no borra su carpeta personal. Si quieres eliminar también su /home y su bandeja de correo:
sudo userdel -r nombre_usuario
[WARNING] El flag
-res destructivo. No hay papelera. Si no estás seguro, haz una copia de seguridad antes.
Para forzar la eliminación de un usuario que tiene procesos en ejecución, usa -f (último recurso).
Crear y gestionar grupos
Los grupos son contenedores de permisos. Te permiten dar acceso a carpetas o comandos a varios usuarios a la vez.
Comandos básicos de grupos
- Crear grupo:
sudo groupadd nombre_grupo - Añadir usuario a grupo:
sudo usermod -aG nombre_grupo usuario - Ver grupos de un usuario:
groups nombre_usuario - Eliminar grupo:
sudo groupdel nombre_grupo
Ejemplo práctico: grupo para desarrolladores
sudo groupadd developers
sudo usermod -aG developers juan
sudo usermod -aG developers maria
Ahora puedes dar permisos de una carpeta al grupo developers y ambos tendrán acceso.
Solución de problemas comunes al gestionar usuarios
Error al crear usuario: "useradd: cannot lock /etc/passwd"
Esto suele pasar por falta de permisos o por un archivo bloqueado. Prueba:
sudo ls -l /etc/passwd
Si el archivo tiene permisos raros, repara con:
sudo chattr -i /etc/passwd
Luego vuelve a intentar.
El usuario no puede conectarse por SSH
Asegúrate de que:
- Tiene contraseña asignada (
passwd). - No está bloqueado (
usermod -U). - Su shell es válida (no
nologin). - Está en el grupo
ssho permitido en/etc/ssh/sshd_config.
No recuerdo qué usuarios existen
Usa:
cut -d: -f1 /etc/passwd
Esto lista solo los nombres de usuario.
Buenas prácticas para gestionar usuarios en producción
Aquí tienes una lista de hábitos que te ahorrarán dolores de cabeza:
- Usa contraseñas robustas y cámbialas periódicamente con
chage. - No uses root para todo. Crea un usuario con
sudopara tus tareas diarias. - Elimina usuarios inactivos o bloquéalos con
usermod -L. - Documenta cada usuario: quién es, para qué sirve, cuándo expira.
- Revisa los logs de autenticación con
journalctl -u ssho/var/log/auth.log. - Usa grupos en lugar de dar permisos individuales.
[TIP] Si tu servidor tiene Syspanel, recuerda que además de gestionar usuarios por SSH, puedes crear cuentas FTP o de correo desde el panel (puerto 2106). Pero los usuarios del sistema Linux que creas con
useraddson independientes de los del panel.
Preguntas frecuentes (FAQ)
¿Cuál es la diferencia entre useradd y adduser?
adduser es un script interactivo (más amigable) que llama a useradd por debajo. Si estás en Debian/Ubuntu, adduser te guiará paso a paso. En sistemas Red Hat/CentOS, adduser es un enlace simbólico a useradd.
¿Puedo crear usuario linux sin contraseña?
Sí, pero es mala práctica. Si lo haces, la cuenta estará bloqueada hasta que asignes una contraseña. Usa passwd -d usuario solo para casos muy concretos (y luego cambia la política).
¿Cómo cambio el nombre de un usuario?
No existe un comando directo para renombrar en todas las distros. En Debian/Ubuntu puedes usar:
sudo usermod -l nuevo_nombre antiguo_nombre
sudo usermod -d /home/nuevo_nombre -m nuevo_nombre
Ten cuidado: los archivos que referencian el nombre antiguo (como cron o systemd) no se actualizan solos.
¿Qué hago si olvidé la contraseña de root?
Reinicia el servidor en modo rescate (single user) o usa sudo passwd root desde un usuario con privilegios.
¿Necesito crear un usuario para cada aplicación?
No necesariamente. A veces es mejor usar un usuario de servicio (sin shell) para evitar riesgos. Por ejemplo:
sudo useradd -r -s /usr/sbin/nologin mi_app
El flag -r crea un usuario de sistema con UID bajo.
Conclusión
Aprender a crear usuario linux y gestionar usuarios con useradd y usermod te da un control total sobre tu servidor. No es complicado: solo necesitas conocer unas pocas opciones y ser cuidadoso con los permisos.
Recuerda siempre probar en un entorno de desarrollo antes de tocar producción. Y si usas un panel como Syspanel (puerto 2106), ten en cuenta que los comandos de esta guía son complementarios, no sustitutos.
Con estos comandos en tu caja de herramientas, podrás dar de alta a compañeros, crear cuentas temporales, proteger servicios y mantener tu sistema ordenado y seguro.
[TIP FINAL] Guarda esta guía como referencia. La gestión de usuarios es de esas cosas que usas poco, pero cuando la necesitas, la necesitas bien. Y si te atascas,
man useraddyman usermodsiempre están a un comando de distancia.
