Gestión de usuarios en Linux: adduser, usermod y sudo | INTROSERV
EUR
european

EUR

usa

USD

Spanish Es
Ex. VAT Ex. VAT 0%

Gestión de usuarios en un servidor Linux

Nivel: Principiante
Tiempo estimado: ~30 minutos
Objetivo: Conocer las herramientas de línea de comandos para crear y mantener cuentas, configurar el acceso estándar a los servicios y mantener la disponibilidad de forma segura.

Introducción

La gestión de usuarios en Linux es una habilidad fundamental para cualquier administrador de sistemas. Un control de acceso adecuado garantiza la estabilidad, la seguridad y la trazabilidad del servidor. En este tutorial veremos los fundamentos para añadir cuentas, conceder privilegios (incluida la escalada de privilegios en Linux) y mantener de forma segura la configuración estándar de los servicios.

Requisitos previos

Antes de empezar, asegúrese de que se cumplen las siguientes condiciones:

  • Sistema operativo: Ubuntu 22.04/24.04 LTS, Debian 12/13, AlmaLinux/Rocky Linux 8/9/10, RHEL 8/9/10
  • Acceso: acceso sudo o root al servidor mediante SSH
  • Sistema: gestor de paquetes en funcionamiento
  • Conocimientos necesarios: manejo seguro de la línea de comandos de Linux

Conceptos clave

Antes de realizar cambios, conviene entender cómo funcionan las cuentas:

  • UID (User ID): un identificador numérico único asignado a cada usuario para controlar la propiedad y los permisos.
  • GID (Group ID): un identificador numérico principal que asigna al usuario a un grupo concreto. Los grupos de Linux organizan a varios usuarios para compartir permisos.
  • Directorio personal (home): el directorio predeterminado (/home/username) donde se almacenan los archivos y configuraciones personales de un usuario.
  • Shell de inicio de sesión: el intérprete de comandos (como /bin/bash) que se inicia cuando un usuario autorizado inicia sesión. Un usuario autorizado es una cuenta con permiso para acceder al sistema.
  • Contraseña: una cadena secreta de caracteres utilizada para la autenticación de usuarios en Linux. La autenticación es el proceso de verificar la identidad de un usuario.
  • Adduser: un script interactivo (front-end) para crear cuentas, utilizado principalmente en sistemas Debian/Ubuntu.
  • Useradd: una utilidad binaria nativa y de bajo nivel para crear cuentas en todas las distribuciones de Linux.
  • Bloqueo de cuenta (Account lock): la acción de deshabilitar los inicios de sesión basados en contraseña para proteger el servidor.
  • Caducidad de cuenta (Account expiration): la acción de deshabilitar automáticamente una cuenta en una fecha determinada.

Paso 1: Crear un nuevo usuario

Para crear un nuevo usuario se utiliza el comando adduser (en Debian/Ubuntu) o el comando useradd (en RHEL/AlmaLinux).

Sustituya johndoe por el nombre de usuario que desee en los ejemplos siguientes. Ejecute el siguiente comando para crear un usuario llamado johndoe:

sudo adduser johndoe

Se le pedirá que introduzca una contraseña y datos opcionales del usuario.

Salida esperada:

La salida contendrá líneas sobre la creación del grupo, el usuario y el directorio personal, y la copia de archivos desde /etc/skel. El UID/GID exacto depende de su sistema.

Info

En RHEL/AlmaLinux, utilice sudo useradd -m johndoe (la opción -m garantiza la creación de /home/johndoe) y establezca la contraseña manualmente con el comando passwd: sudo passwd johndoe.

Paso 2: Entender sudo en un servidor Linux

Los usuarios estándar no pueden modificar la configuración del sistema ni instalar software. El comando sudo de Linux permite a los usuarios autorizados ejecutar comandos con privilegios de root.

2.1 Añadir un usuario al grupo sudo

La forma más sencilla de conceder privilegios es añadir al usuario al grupo administrativo predefinido con el comando usermod.

Ubuntu/Debian:

sudo usermod -aG sudo johndoe

RHEL/AlmaLinux:

sudo usermod -aG wheel johndoe

El comando usermod añade (-a) al usuario al grupo suplementario (-G). El usuario johndoe ya puede ejecutar tareas administrativas anteponiendo sudo a los comandos. Si todo va bien, el comando no produce salida. Puede comprobarlo con groups johndoe: el grupo sudo (o wheel) debería aparecer en la lista.

Paso 3: Modificar las propiedades del usuario

Puede que necesite bloquear una cuenta o cambiar su contraseña.

3.1 Cambiar una contraseña

Para forzar un cambio de contraseña o actualizar una contraseña olvidada, ejecute lo siguiente con el comando passwd:

sudo passwd johndoe

Se le pedirá que introduzca y confirme la nueva contraseña. Una vez hecho, el usuario podrá iniciar sesión con las nuevas credenciales.

3.2 Bloquear una cuenta

Si un usuario deja la empresa, debe realizar un bloqueo de cuenta para proteger el servidor:

sudo usermod -L johndoe

La cuenta se bloquea de inmediato, lo que impide cualquier nuevo inicio de sesión basado en contraseña. Para desbloquearla más adelante, utilice sudo usermod -U johndoe.

Ambos comandos no producen salida. Puede verificar el estado con passwd -S johndoe (estado L = bloqueada, P = activa).

3.3 Establecer la caducidad de la cuenta

Para deshabilitar automáticamente una cuenta en una fecha concreta, establezca una caducidad de cuenta:

sudo usermod -e 2026-12-31 johndoe

Así, los contratistas temporales pierden el acceso de forma automática.

Info

Puede comprobar la fecha de caducidad con sudo chage -l johndoe. Es posible que muestre la fecha un día antes debido al procesamiento del límite UTC; es normal y la cuenta caducará correctamente.

Paso 4: Usar el comando sudo de Linux de forma segura para proteger el servidor

El archivo sudoers (/etc/sudoers) controla exactamente quién puede usar sudo y qué puede ejecutar.

Para editar el archivo sudoers, utilice siempre visudo. Comprueba si hay errores de sintaxis antes de guardar y evita bloqueos.

Una buena práctica recomendada es crear un archivo independiente para cada regla en lugar de editar el archivo principal:

sudo visudo -f /etc/sudoers.d/johndoe

Esto simplifica la reversión de reglas y reduce el riesgo de dañar la configuración principal de sudoers.

Para permitir que johndoe reinicie el servicio de sincronización horaria sin contraseña, añada la línea correspondiente a su sistema operativo:

Ubuntu/Debian:

johndoe ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart systemd-timesyncd

RHEL/AlmaLinux:

johndoe ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart chronyd

Guarde y salga. johndoe ya puede reiniciar el servicio sin que se le solicite contraseña.

El usuario johndoe debe ejecutar el comando como sudo systemctl restart systemd-timesyncd (o chronyd), es decir, específicamente a través de sudo. Una llamada directa para reiniciar el servicio sin sudo devolverá un error de polkit que exige autenticación interactiva.

Warning

No edite nunca los archivos sudoers directamente con nano o vim. Un error de sintaxis inutilizará el acceso sudo en todo el sistema y obligará a arrancar en modo de rescate para corregirlo.

Paso 5: Eliminar un usuario

Cuando una cuenta ya no es necesaria, elimínela para mantener el servidor ordenado.

Para eliminar el usuario conservando sus archivos:

sudo deluser johndoe

En RHEL/AlmaLinux: sudo userdel johndoe

Warning

Si ejecuta el comando sin --remove-home (o -r), /home/johndoe y los archivos del usuario permanecen en el disco. Esto es útil para archivar datos, pero debe ser consciente de los archivos restantes.

Para eliminar el usuario y su directorio personal:

sudo deluser --remove-home johndoe

En RHEL/AlmaLinux: sudo userdel -r johndoe

Para eliminar el archivo sudoers del usuario, si se creó alguno, ejecute:

sudo rm -f /etc/sudoers.d/johndoe

La cuenta de usuario ha quedado completamente eliminada del sistema.

Info

Antes de eliminar un usuario, asegúrese de que ningún servicio en segundo plano dependa de su UID o de sus grupos de Linux.

Verificación

Para verificar el nuevo usuario y sus pertenencias a grupos, utilice el comando id:

id johndoe

Salida esperada:

La salida mostrará el UID, el GID (que puede diferir de 1001) y una lista de grupos. Compruebe que está presente el grupo sudo (Debian/Ubuntu) o wheel (RHEL/AlmaLinux). En Debian/Ubuntu también puede aparecer en la lista el grupo users; es normal.

Para probar el acceso sudo, cambie al nuevo usuario:

su - johndoe

A continuación, ejecute un comando que requiera privilegios:

sudo ls /root

Si se le solicita, introduzca la contraseña de johndoe (la establecida en el Paso 1), no la de root. Debería ver el contenido del directorio /root.

Solución de problemas

  • Errores de sintaxis en sudoers: si rompe accidentalmente el archivo sudoers, a menudo puede corregirlo ejecutando pkexec visudo desde otra sesión. Si pkexec no está disponible, deberá arrancar el servidor en modo de recuperación/monousuario para editar el archivo.
  • Acceso sudo perdido: si pierde el acceso sudo pero aún dispone de la contraseña de root, inicie sesión directamente como root (por ejemplo, con su -) para corregir la pertenencia a grupos.
  • Verificar los privilegios de un usuario: para comprobar exactamente qué comandos puede ejecutar un usuario, utilice sudo -l -U johndoe.

Reversión (rollback)

Si necesita revertir los cambios realizados en este tutorial:

  1. Elimine al usuario del grupo sudo: sudo gpasswd -d johndoe sudo (o wheel).
  2. Revierta cualquier adición realizada mediante visudo.
  3. Elimine el usuario y su directorio personal: sudo deluser --remove-home johndoe (o sudo userdel -r johndoe).
  4. Elimine su archivo sudoers específico: sudo rm -f /etc/sudoers.d/johndoe.

Conclusión

Configurar correctamente las cuentas le permite gestionar usuarios en Linux de forma segura sin comprometer la seguridad del sistema. Al comprender el comando adduser, el comando usermod y el comando passwd, junto con una configuración segura de sudo, mantiene un entorno estable y trazable.

Versión del documento: 1.0
Última actualización: mayo de 2026
Responsable: Equipo de documentación técnica

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • germany
  • Español
  • Italiano
  • Poland
  • Slovenski
  • Türkçe
  • ukraine
  • kingdom
  • French
  • Hrvatska
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA