usermod es el comando para modificar una cuenta de usuario que ya existe en Linux. Con él se añade un usuario a grupos, se le cambia el nombre, se mueve su carpeta personal, se cambia su shell y se bloquea temporalmente su acceso.
Todos los comandos de abajo se ejecutan como root o con sudo. Los hemos probado en Debian 12, y en Ubuntu y otras distribuciones funcionan igual.
Crear un usuario, no modificarlo
Si el usuario todavía no existe, créalo primero.
En Ubuntu y Debian el comando es adduser nombre.
En AlmaLinux y CentOS es useradd -m nombre.
Tienes un ejemplo con un usuario aparte para entrar por SSH en el artículo sobre el acceso con claves SSH.
Cómo ver la configuración actual de un usuario
Antes de cambiar nada, conviene comprobar qué tiene configurado ahora el usuario.
# UID, grupo principal y todos los grupos adicionales del usuario
id username
# Línea del usuario en /etc/passwd: carpeta personal y shell
getent passwd usernameAñadir un usuario a un grupo
Es la tarea más habitual, por ejemplo para dar permisos de administrador con sudo o acceso a Docker.
# Añadimos el usuario al grupo sudo (en Ubuntu y Debian)
usermod -aG sudo username
# En AlmaLinux, CentOS y Oracle Linux los administradores están en el grupo wheel
usermod -aG wheel username
# Para varios grupos a la vez, los separamos con comas y sin espacios
usermod -aG docker,www-data usernameNo olvides la opción -a
La opción -G sin -a sustituye toda la lista de grupos adicionales. El usuario se quedará solo en los grupos indicados y perderá el resto, por ejemplo el acceso a sudo. Para añadir, escribe siempre -aG.
Los grupos nuevos se aplican la próxima vez que el usuario inicie sesión. Si ahora está conectado por SSH, que se vuelva a conectar y después compruebe el resultado con el comando id.
Quitar un usuario de un grupo
# Quitamos el usuario del grupo docker
gpasswd -d username dockerSe consigue lo mismo con el comando usermod -rG docker username, pero la variante con gpasswd funciona en todas las distribuciones.
Cambiar el grupo principal
Cada usuario tiene un único grupo principal. Ese es el grupo que reciben los archivos nuevos que crea.
# Hacemos que developers sea el grupo principal del usuario. El grupo ya debe existir
usermod -g developers usernameCambiar el nombre de un usuario
La opción -l solo cambia el login. La carpeta personal y el grupo propio conservan los nombres antiguos, por eso normalmente se renombran junto con el login.
# Cambiamos el login olduser por newuser
usermod -l newuser olduser
# Movemos la carpeta personal al nuevo nombre junto con su contenido
usermod -d /home/newuser -m newuser
# Renombramos el grupo propio del usuario
groupmod -n newuser olduserEl usuario no debe tener la sesión iniciada
No podrás renombrar un usuario que tenga procesos en marcha. Pídele que cierre la sesión o termina tú sus sesiones, y después repite el comando.
Mover la carpeta personal
# Asignamos una nueva carpeta personal y movemos a ella todos los archivos
usermod -d /data/home/username -m usernameSin la opción -m solo cambiará la ruta en la configuración, y los archivos se quedarán en el sitio antiguo.
Cambiar la shell
# Lista de shells instaladas en el sistema
cat /etc/shells
# Hacemos que bash sea la shell del usuario
usermod -s /bin/bash username
# Prohibimos el acceso a la consola, por ejemplo para un usuario de servicio
usermod -s /usr/sbin/nologin usernameBloquear y desbloquear un usuario
# Bloqueamos el acceso con contraseña
usermod -L username
# Quitamos el bloqueo
usermod -U username
# Desactivamos la cuenta por completo con una fecha de caducidad en el pasado
usermod -e 1 username
# Quitamos la fecha de caducidad
usermod -e "" usernameBloquear la contraseña no cierra el acceso con clave
usermod -L solo impide entrar con contraseña. Si el usuario tiene configurada una clave SSH, podrá seguir entrando. Para cerrar el acceso por completo, usa usermod -e 1 o borra sus claves de ~/.ssh/authorized_keys.
Cambiar el UID
# Asignamos al usuario el UID 1050. El número no debe estar ocupado
usermod -u 1050 usernameusermod cambia por sí solo el propietario de los archivos de la carpeta personal del usuario. Los archivos de otros sitios se quedan con el UID antiguo, y puedes encontrarlos y corregirlos así.
# En lugar de 1001, pon el UID antiguo del usuario
find / -xdev -user 1001 -exec chown -h username {} \;Chuleta
| Comando | Qué hace |
|---|---|
usermod -aG grupo nombre | Añadir a un grupo adicional |
gpasswd -d nombre grupo | Quitar de un grupo |
usermod -g grupo nombre | Cambiar el grupo principal |
usermod -l nuevo antiguo | Cambiar el nombre del usuario |
usermod -d ruta -m nombre | Mover la carpeta personal |
usermod -s shell nombre | Cambiar la shell |
usermod -L nombre / -U | Bloquear o desbloquear la contraseña |
usermod -e 1 nombre | Desactivar la cuenta por completo |
usermod -u UID nombre | Cambiar el UID |
Preguntas frecuentes
He añadido el usuario a un grupo, pero no tiene los permisos
Los grupos se aplican al iniciar sesión. El usuario tiene que cerrar la sesión y volver a conectarse, y después el comando id mostrará el grupo nuevo.
Dice que el grupo no existe
Primero crea el grupo con el comando groupadd nombre_grupo y después vuelve a ejecutar usermod. Puedes ver la lista de todos los grupos con el comando getent group.
No consigo cambiar el nombre del usuario
Lo más probable es que el usuario tenga la sesión iniciada o procesos en marcha. Míralos con el comando ps -u username, termina las sesiones y repite usermod -l.
He ejecutado por error usermod -G sin -a
El usuario se ha quedado solo en los grupos indicados. Devuélvele los grupos que necesita con el mismo comando y la opción -aG, por ejemplo usermod -aG sudo username. Si era tu único administrador y has perdido el acceso a sudo, entra en el servidor como root con el botón Console del área de cliente.
Nuestros recursos
Canal de Telegram: https://t.me/f3cloud_news
Web del hosting: https://f3cloud.com