Comandos LinuxExplicados en español
/
Ficha25 / 104
Categoría
Permisos
Ejemplos
6
Ver también
useradd · groups · passwd · sudo

usermod

user modify (modificar usuario)

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.

Sintaxisusermod [opciones] USUARIO
Precaución

El 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.

§ 1

Despiece

6 ejemplos
Dar permisos de administrador

Dar permisos de administrador

5 piezas
Lámina01 / 06
Comandosudo usermod -aG sudo ana
Piezas5
Escala1:1
N.ºPiezaTipoQué hace
1sudoComandoNecesita root para modificar /etc/group.
2usermodComandoEl comando para modificar una cuenta existente.
3-aGOpciónLa a indica que se agregan y la G define la lista de grupos. Juntas conservan los grupos que la cuenta ya tenía.
4sudoValorEl grupo sudo, que en Debian y Ubuntu da permisos de administrador.
5anaArgumentoLa cuenta que vas a modificar. El nombre de usuario va al final.
Resultado

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

5 piezas
Lámina02 / 06
Comandosudo usermod -s /bin/bash ana
Piezas5
Escala1:1
N.ºPiezaTipoQué hace
1sudoComandoModificar el shell requiere root.
2usermodComandoEl comando para modificar una cuenta existente.
3-sOpciónIndica que va el shell.
4/bin/bashValorBash, el shell con historial, autocompletado y colores.
5anaArgumentoLa cuenta a la que le cambias el shell.
Resultado

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

5 piezas
Lámina03 / 06
Comandosudo usermod -aG docker,www-data ana
Piezas5
Escala1:1
N.ºPiezaTipoQué hace
1sudoComandoNecesita root.
2usermodComandoModifica la cuenta indicada.
3-aGOpciónAgrega (a) a la lista de grupos (G) sin quitar los que ya tenía.
4docker,www-dataValorLos grupos, separados por coma y sin espacios.
5anaArgumentoLa cuenta que se une a esos grupos.
Resultado

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

4 piezas
Lámina04 / 06
Comandosudo usermod -L ana
Piezas4
Escala1:1
N.ºPiezaTipoQué hace
1sudoComandoNecesita root para tocar /etc/shadow.
2usermodComandoModifica la cuenta indicada.
3-LOpciónBloquea la contraseña de la cuenta.
4anaArgumentoLa cuenta que quieres bloquear.
Resultado

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

5 piezas
Lámina05 / 06
Comandosudo usermod -e 2026-12-31 ana
Piezas5
Escala1:1
N.ºPiezaTipoQué hace
1sudoComandoNecesita root.
2usermodComandoModifica la cuenta indicada.
3-eOpciónIndica que va la fecha de caducidad.
42026-12-31ValorEl día en que la cuenta se desactiva, en formato AAAA-MM-DD.
5anaArgumentoLa cuenta a la que se le pone la fecha.
Resultado

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

5 piezas
Lámina06 / 06
Comandosudo usermod -l ana.torres ana
Piezas5
Escala1:1
N.ºPiezaTipoQué hace
1sudoComandoNecesita root para editar /etc/passwd y /etc/shadow.
2usermodComandoModifica la cuenta indicada.
3-lOpciónIndica el nombre de usuario nuevo.
4ana.torresValorEl nombre nuevo. No debe existir en el sistema.
5anaArgumentoLa cuenta vieja, que deja de existir con ese nombre.
Resultado

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).

§ 2

Opciones

Las que sí vas a usar
OpciónQué hace
-a--appendAgrega al grupo en vez de reemplazarlo. Solo hace algo junto con -G; sin la -a, -G borra los grupos anteriores.
-G--groupsLista de grupos, separados por coma y sin espacios. Combinada con -a suma; sola, deja al usuario únicamente en los grupos que escribiste.
-s--shellCambia el shell con el que la persona inicia sesión, por ejemplo /bin/bash.
-d--homeCambia la ruta de la carpeta personal. Agrégale -m (--move-home) para que también se muevan los archivos que tiene adentro.
-e--expiredateFecha en la que la cuenta se desactiva sola, en formato AAAA-MM-DD. Con comillas vacías se quita la fecha.
-l--loginCambia el nombre de usuario. El nombre nuevo no debe existir y los archivos de /home no se renombran.
-L--lockBloquea la cuenta sin borrarla: pone una ! antes de la contraseña en /etc/shadow.
-U--unlockQuita el bloqueo de una cuenta que estaba bloqueada con -L.
§ 3

Fallas comunes

FallaRemedio
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.
§ 4

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.
§ 5

Ver también