Introducción
Usermod es una utilidad de línea de comandos que le permite cambiar la información de inicio de sesión de un usuario.
Este artículo explica cómo usar el usermod
para agregar un usuario a un grupo, cambiar un shell de usuario, nombre de inicio de sesión, directorio de inicio y más.
Comando Usermod
La sintaxis del usermod
tiene la siguiente forma:
usermod [options] USER
Solo root o usuarios con sudo
pueden invocar usermod
y modificar una cuenta de usuario. Si tiene éxito, el comando no muestra ningún resultado.
Agregar un usuario a un grupo
El caso de uso más típico de usermod
es agregar un usuario a un grupo.
Para agregar un usuario existente a un grupo secundario, use las -a -G
seguidas del nombre del grupo y el nombre de usuario:
usermod -a -G GROUP USER
Si desea agregar el usuario a varios grupos a la vez, especifique los grupos después de la -G
separados por ,
(comas) sin espacios en blanco.
Por ejemplo, para agregar el usuario noviello
games
, debe ejecutar el siguiente comando:
sudo usermod -a -G games noviello
Utilice siempre la -a
(agregar) cuando agregue un usuario a un grupo nuevo. Si omite la -a
, el usuario será eliminado de los grupos que no aparecen después de la opción -G
Si el usuario o grupo no existe, el comando le advertirá.
Cambiar el grupo principal de un usuario
Para cambiar el grupo principal de un usuario, invoque el usermod
con la -g
seguida del nombre del grupo y el nombre de usuario:
sudo usermod -g GROUP USER
En el siguiente ejemplo, cambiemos el grupo principal del usuario noviello
developers
:
usermod -g developers noviello
Cada usuario puede pertenecer exactamente a un grupo primario y a cero o más grupos secundarios.
Cambiar la información de un usuario
Para cambiar la información de GECOS (el nombre completo del usuario), ejecute el comando con la -c
seguida del nuevo comentario y nombre de usuario:
usermod -c "GECOS Comment" USER
A continuación, se muestra un ejemplo que muestra cómo agregar más información al usuario de noviello
usermod -c "Test User" noviello
Esta información se almacena en el /etc/passwd
.
Cambiar el directorio de inicio de un usuario
En la mayoría de los sistemas Linux, los directorios de inicio del usuario se nombran después del nombre del usuario y se crean en el directorio /home
Si, por alguna razón, desea cambiar el directorio de inicio del usuario, emita el usermod
con la -d
seguida de la ruta absoluta al nuevo directorio de inicio y el nombre del usuario:
usermod -d HOME_DIR USER
De forma predeterminada, el comando no mueve el contenido del directorio de inicio del usuario al nuevo. Para mover el contenido, use la opción -m
Si el nuevo directorio aún no existe, se crea:
usermod -d HOME_DIR -m USER
Aquí hay un ejemplo que muestra cómo cambiar el directorio de inicio del usuario de www-data
/var/www
:
usermod -d /var/www www-data
Cambiar el shell predeterminado del usuario
El shell predeterminado es el que se ejecuta después de iniciar sesión en el sistema. De forma predeterminada, en la mayoría de los sistemas Linux, el shell predeterminado está configurado en Bash Shell.
Para cambiar el shell predeterminado del usuario, ejecute el comando con la -s
seguida de la ruta absoluta al shell y el nombre del usuario:
usermod -s SHELL USER
En el siguiente ejemplo, estamos cambiando el shell de usuario a Zsh:
sudo usermod -s /usr/bin/zsh noviello
Puede averiguar qué shells están disponibles en su sistema viendo el contenido de /etc/shells
.
Cambiar el UID de un usuario
UID (el identificador de usuario) es un número asignado a cada usuario. Es utilizado por el sistema operativo para referirse a un usuario.
Para cambiar el UID del usuario, invoque el comando con la -u
seguida del nuevo UID y el nombre del usuario:
usermod -u UID USER
El siguiente ejemplo muestra cómo cambiar el número "UID" a "1050":
sudo usermod -u 1050 noviello
El UID de los archivos propiedad del usuario ubicados en el directorio de inicio del usuario y el archivo del buzón del usuario se cambiarán automáticamente. La propiedad de todos los demás archivos debe cambiarse manualmente.
Cambiar el nombre de usuario
A veces, es posible que desee cambiar el nombre de un usuario existente. La -l
se usa para cambiar el nombre de usuario:
usermod -l NEW_USER USER
En el siguiente ejemplo, cambiamos el nombre del usuario de noviello
alice
:
sudo usermod -l noviello alice
Al cambiar el nombre de usuario, es posible que también desee cambiar el directorio de inicio del usuario para reflejar el nuevo nombre de usuario.
Establecer una fecha de vencimiento de usuario
La fecha de vencimiento es la fecha en la que se desactivará la cuenta de usuario. Para establecer la fecha de vencimiento del usuario, use la opción -e
sudo usermod -e DATE USER
La fecha de vencimiento debe establecerse con el YYYY-MM-DD
.
Por ejemplo, para desactivar el noviello
usuario en 2022-02-21
, se debe ejecutar el siguiente comando:
sudo usermod -e "2022-02-21" noviello
Para deshabilitar el vencimiento de la cuenta, establezca una fecha de vencimiento en blanco:
sudo usermod -e "" noviello
Use el chage -l
para ver la fecha de vencimiento del usuario:
sudo chage -l noviello
Last password change: Jul 24, 2018
Password expires: never
Password inactive: never
Account expires: never
Minimum number of days between password change: 0
Maximum number of days between password change: 99999
Number of days of warning before password expires: 7
La fecha de vencimiento se almacena en el /etc/shadow
.
Bloquear y desbloquear una cuenta de usuario
La -L
permite bloquear una cuenta de usuario:
usermod -L USER
Los comandos colocarán un signo de exclamación ( !
) Delante de la contraseña cifrada. Cuando el campo de contraseña en el /etc/shadow
contiene un signo de exclamación, el usuario no podrá iniciar sesión en el sistema mediante la autenticación de contraseña. Sin embargo, todavía se permiten otros métodos de acceso, como la autenticación basada en claves o el traspaso de usuarios. Si desea bloquear la cuenta y deshabilitar todos los métodos de inicio de sesión, también debe establecer la fecha de vencimiento en 1
.
Los siguientes ejemplos muestran cómo bloquear al usuario de noviello
sudo usermod -L noviello
sudo usermod -L -e 1 noviello
Para desbloquear un usuario, ejecute usermod
con la opción -U
usermod -U USER
Conclusión
Le mostramos cómo usar el usermod
para configurar la información de la cuenta de usuario.