# usermod

* [usermod](https://manpages.debian.org/bookworm/passwd/usermod.8.en.html) - Modificar una cuenta de usuario.

Usermod es una herramienta muy importante en la gestión de usuarios, ya que podemos cambiar y actualizar toda la información y grupos a los que pertenecen los usuarios.

Por ejemplo si queremos agregar un usuario estándar al grupo `wheel/sudo`, lo hacemos combinando las opciones `-aG`. Usar estas dos opciones también nos permite agregar el usuario en varios grupos al mismo tiempo.

```bash
# usermod -aG grupo1,grupo2,grupo3 usuario
```

Si queremos deshabilitar un usuario usamos la opción `-L`. Esto es lo mismo que ejecutar `# passwd -l usuario`.

```bash
# usermod -L usuario
```

Si queremos habilitar un usuario usamos la opción `-U`. Esto es lo mismo que ejecutar `# passwd -u usuario`.

```bash
# usermod -U usuario
```

También es posible cambiar el ID de un usuario con la opción `-u`, esto cambia automáticamente el ID del directorio del usuario y todo su contenido, sin embargo, los cambios de ID fuera de estos directorios se debe hacer manualmente.

```bash
# usermod -u 1002 usuario
```

Si queremos cambiar el nombre del usuario, se debe usar la opción `-l`, de este modo cuando iniciemos sesión, tendremos que hacerlo con el nuevo nombre. Una vez hecho esto, será necesario crear un grupo con el nuevo nombre y agregar al usuario a este.

```bash
# usermod -l nombre_nuevo nombre_viejo
```

Pero en el próximo inicio de sesión nos mostrará un error, ya que no encuentra el directorio del usuario, para corregir esto, usamos las opciones `-m` y `-d`, esto lleva al sistema a mover el directorio viejo al nuevo. Si el directorio no existe, lo crea. Esto es como ejecutar el comando `mv`, pero al hacerlo con `usermod`, los cambios de grupo y usuario se hace automáticamente en todo el contenido del directorio.

```bash
# usermod -m usuario_nuevo -d /home/usuario_nuevo
```

Otro punto interesante, es modificar la fecha de expiración del usuario con la opción `-e`, la fecha se debe indicar en el formato *YYYY-MM-DD*.

```bash
# usermod -e 2024-01-01 usuario
```

Ahora si queremos evitar que un usuario expire, debemos usar el valor `-1`.

```bash
# usermod -e -1 usuario
```

Por último, si queremos agregar información, como el nombre completo del usuario, lo hacemos con la opción `-c`.

```bash
# usermod -c "Nombre Usuario" usuario
```
