usermod
Modifica una cuenta existente: grupos, shell, nombre o bloqueo.
Cambia cosas de una cuenta que ya existe: los grupos a los que pertenece, su shell, su nombre de usuario, su carpeta personal o si está bloqueada. Necesita sudo, porque modifica archivos del sistema como /etc/passwd y /etc/group. Los cambios de grupos y de shell no afectan la terminal que ya tienes abierta: aplican en el siguiente inicio de sesión. Para crear la cuenta desde cero está useradd.
usermod [opciones] USUARIOEl error más caro es sudo usermod -G sudo ana sin la -a: en vez de agregar un grupo, reemplaza todos los grupos de la cuenta y la persona puede perder sudo, docker y lo demás.
Despiece
6 ejemplosDar permisos de administrador
| N.º | Pieza | Tipo | Qué hace |
|---|---|---|---|
| 1 | sudo | Comando | Necesita root para modificar /etc/group. |
| 2 | usermod | Comando | El comando para modificar una cuenta existente. |
| 3 | -aG | Opción | La a indica que se agregan y la G define la lista de grupos. Juntas conservan los grupos que la cuenta ya tenía. |
| 4 | sudo | Valor | El grupo sudo, que en Debian y Ubuntu da permisos de administrador. |
| 5 | ana | Argumento | La cuenta que vas a modificar. El nombre de usuario va al final. |
ana entra al grupo sudo y ya puede usar sudo en su próxima sesión. El cambio no afecta la terminal que tienes abierta: para comprobarlo, cierra sesión y entra de nuevo, o usa newgrp sudo en esa shell. Verifica con groups ana.
Cambiar el shell de un usuario
| N.º | Pieza | Tipo | Qué hace |
|---|---|---|---|
| 1 | sudo | Comando | Modificar el shell requiere root. |
| 2 | usermod | Comando | El comando para modificar una cuenta existente. |
| 3 | -s | Opción | Indica que va el shell. |
| 4 | /bin/bash | Valor | Bash, el shell con historial, autocompletado y colores. |
| 5 | ana | Argumento | La cuenta a la que le cambias el shell. |
Desde su próximo inicio de sesión, ana entra con Bash. Si escribes la ruta de un shell que no existe, usermod lo acepta y ana ya no podrá iniciar sesión, así que revisa antes con cat /etc/shells.
Agregar varios grupos de golpe
| N.º | Pieza | Tipo | Qué hace |
|---|---|---|---|
| 1 | sudo | Comando | Necesita root. |
| 2 | usermod | Comando | Modifica la cuenta indicada. |
| 3 | -aG | Opción | Agrega (a) a la lista de grupos (G) sin quitar los que ya tenía. |
| 4 | docker,www-data | Valor | Los grupos, separados por coma y sin espacios. |
| 5 | ana | Argumento | La cuenta que se une a esos grupos. |
ana queda en docker y www-data, y conserva los grupos que ya tenía gracias a la -a. Sin espacios: -aG docker,www-data. Si escribes -aG docker www-data, la parte www-data se toma como otro nombre de usuario y usermod falla.
Bloquear una cuenta sin borrarla
| N.º | Pieza | Tipo | Qué hace |
|---|---|---|---|
| 1 | sudo | Comando | Necesita root para tocar /etc/shadow. |
| 2 | usermod | Comando | Modifica la cuenta indicada. |
| 3 | -L | Opción | Bloquea la contraseña de la cuenta. |
| 4 | ana | Argumento | La cuenta que quieres bloquear. |
La contraseña de ana queda con una ! al inicio en /etc/shadow y el inicio de sesión se rechaza con Authentication failure. Nada se borra y los procesos que ya usaban esa cuenta siguen corriendo; para terminar esos, búscalos con ps -u ana. Para revertirlo, usa sudo usermod -U ana.
Poner fecha de caducidad
| N.º | Pieza | Tipo | Qué hace |
|---|---|---|---|
| 1 | sudo | Comando | Necesita root. |
| 2 | usermod | Comando | Modifica la cuenta indicada. |
| 3 | -e | Opción | Indica que va la fecha de caducidad. |
| 4 | 2026-12-31 | Valor | El día en que la cuenta se desactiva, en formato AAAA-MM-DD. |
| 5 | ana | Argumento | La cuenta a la que se le pone la fecha. |
Esa es la fecha en que la cuenta deja de permitir iniciar sesión y el login avisa que está expirada. Para quitarla: sudo usermod -e "" ana. Tiene sentido en cuentas de personas; los usuarios de servicio, que usan /usr/sbin/nologin, no pueden entrar de todos modos.
Cambiar el nombre de usuario
| N.º | Pieza | Tipo | Qué hace |
|---|---|---|---|
| 1 | sudo | Comando | Necesita root para editar /etc/passwd y /etc/shadow. |
| 2 | usermod | Comando | Modifica la cuenta indicada. |
| 3 | -l | Opción | Indica el nombre de usuario nuevo. |
| 4 | ana.torres | Valor | El nombre nuevo. No debe existir en el sistema. |
| 5 | ana | Argumento | La cuenta vieja, que deja de existir con ese nombre. |
La cuenta ahora se llama ana.torres y se entra con ese nombre. La carpeta /home/ana no se renombra ni cambia de dueño, así que además hay que corregirlo: sudo chown -R ana.torres /home/ana. Para cambiar la ruta, usa -d (y -m para mover los archivos).
Opciones
Las que sí vas a usar| Opción | Qué hace |
|---|---|
| -a--append | Agrega al grupo en vez de reemplazarlo. Solo hace algo junto con -G; sin la -a, -G borra los grupos anteriores. |
| -G--groups | Lista de grupos, separados por coma y sin espacios. Combinada con -a suma; sola, deja al usuario únicamente en los grupos que escribiste. |
| -s--shell | Cambia el shell con el que la persona inicia sesión, por ejemplo /bin/bash. |
| -d--home | Cambia la ruta de la carpeta personal. Agrégale -m (--move-home) para que también se muevan los archivos que tiene adentro. |
| -e--expiredate | Fecha en la que la cuenta se desactiva sola, en formato AAAA-MM-DD. Con comillas vacías se quita la fecha. |
| -l--login | Cambia el nombre de usuario. El nombre nuevo no debe existir y los archivos de /home no se renombran. |
| -L--lock | Bloquea la cuenta sin borrarla: pone una ! antes de la contraseña en /etc/shadow. |
| -U--unlock | Quita el bloqueo de una cuenta que estaba bloqueada con -L. |
Fallas comunes
| Falla | Remedio |
|---|---|
| Usar -G sin -a y perder todos los grupos del usuario. | sudo usermod -G sudo ana reemplaza la lista completa: la persona queda solo en sudo y su grupo principal, y pierde docker, www-data o lo que tuviera. La forma correcta es sudo usermod -aG sudo ana. Para recuperar lo perdido, vuelve a agregar cada grupo con -aG. |
| Correr usermod sin sudo. | Da permission denied, porque usermod modifica archivos del sistema (/etc/passwd, /etc/shadow, /etc/group). Escribe sudo usermod ... y el nombre del usuario al final. |
| Poner espacios entre los grupos: sudo usermod -aG sudo, docker ana. | El espacio corta la lista, así que docker se toma como otro nombre de usuario y usermod dice que esa cuenta no existe. Los grupos van separados por coma y sin espacio: sudo usermod -aG sudo,docker ana. |
| Ejecutarlo y ver que los grupos no cambian en esa terminal. | Tu sesión sigue con los grupos que tenía al abrirse; lo que cambió es /etc/group. Cierra sesión y vuelve a entrar para que tome efecto, o usa newgrp docker en esa shell para probarlo sin salir. |
Preguntas frecuentes
- ¿Cómo le doy permisos de administrador a un usuario?
- Agrégalo al grupo sudo: sudo usermod -aG sudo USUARIO. La -a es lo importante: sin ella, -G reemplaza todos los grupos del usuario en vez de sumarle uno. El cambio aplica al siguiente inicio de sesión.
- ¿Cuál es la diferencia entre -G y -aG?
- -G define la lista completa de grupos suplementarios y reemplaza los que había. -a indica que se agreguen a esa lista sin borrar nada. Usadas juntas (-aG) suman; usadas por separado (-G sola), te dejan al usuario únicamente en los grupos que escribiste.
- ¿Cómo cambio el shell de un usuario?
- Con sudo usermod -s /bin/bash USUARIO. Aplica en el próximo inicio de sesión. Usa una ruta que aparezca en /etc/shells: si el shell no existe, la persona no podrá entrar.
- ¿Cómo bloqueo una cuenta sin borrarla?
- Con sudo usermod -L USUARIO (o sudo passwd -l USUARIO). La contraseña queda deshabilitada y el inicio de sesión se rechaza, pero el archivo del usuario y sus procesos siguen ahí. Para desbloquear, usa sudo usermod -U USUARIO.
- ¿Cómo cambio el nombre de un usuario?
- Con sudo usermod -l NUEVO USUARIO, donde el nombre nuevo no debe existir. Eso renombra la cuenta en /etc/passwd, pero no la carpeta personal: corrige el dueño con sudo chown -R NUEVO /home/ANTIGUO, o usa -d y -m para cambiar la ruta y mover los archivos.