usermod
es una utilidad de línea de comandos que le permite modificar la información de inicio de sesión de un usuario.
Este artículo cubre cómo utilizar el comando 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 comando usermod
tiene la siguiente forma:
usermod USER
Sólo root o los usuarios con sudo
acceso pueden invocar usermod
y modificar una cuenta de usuario. En caso de éxito, el comando no muestra ninguna salida.
Añadir un usuario a un grupo #
El caso de uso más típico del usermod
es añadir un usuario a un grupo.
Para añadir un usuario existente a un grupo secundario, utilice las opciones -a -G
seguidas del nombre del grupo y del nombre de usuario:
usermod -a -G GROUP USER
Si desea añadir el usuario a varios grupos a la vez, especifique los grupos después de la opción -G
separados con ,
(comas) sin espacios en blanco intermedios.
Por ejemplo, para añadir el usuario linuxize
al grupo games
, deberá ejecutar el siguiente comando:
sudo usermod -a -G games linuxize
Utilice siempre la opción -a
(append) cuando añada un usuario a un nuevo grupo. Si omite la opción -a
, el usuario se eliminará de los grupos que no figuren en la lista después de la opción -G
.
Si el usuario o grupo no existe, el comando le avisará.
Cambiar el grupo primario del usuario #
Para cambiar el grupo primario de un usuario, invoque el comando usermod
con la opción -g
seguida del nombre del grupo y el nombre de usuario:
sudo usermod -g GROUP USER
En el siguiente ejemplo, estamos cambiando el grupo primario del usuario linuxize
a developers
:
usermod -g developers linuxize
Cada usuario puede pertenecer exactamente a un grupo primario y a cero o más grupos secundarios.
Cambiar la información del usuario #
Para cambiar la información de GECOS (el nombre completo del usuario), ejecute el comando con la opción -c
seguido del nuevo comentario y nombre de usuario:
usermod -c "GECOS Comment" USER
Aquí se muestra un ejemplo de cómo añadir información adicional al usuario linuxize:
usermod -c "Test User" linuxize
Esta información se almacena en el archivo /etc/passwd
.
Cambiar un directorio de inicio de usuario #
En la mayoría de los sistemas Linux, los directorios de inicio de usuario se denominan con el nombre del usuario y se crean bajo el directorio /home
.
Si, por alguna razón, desea cambiar el directorio raíz del usuario, invoque el comando usermod
con la opción -d
seguida de la ruta absoluta del nuevo directorio raíz y el nombre del usuario:
usermod -d HOME_DIR USER
Por defecto, el comando no mueve el contenido del directorio raíz del usuario al nuevo. Para mover el contenido, utilice la opción -m
. Si el nuevo directorio no existe ya, se crea:
usermod -d HOME_DIR -m USER
Aquí hay un ejemplo que muestra cómo cambiar el directorio raíz del usuario www-data
a /var/www
:
usermod -d /var/www www-data
Cambiar el shell por defecto de un usuario #
El shell por defecto es el que se ejecuta después de iniciar la sesión en el sistema. Por defecto, en la mayoría de los sistemas Linux, el shell por defecto se establece en Bash Shell.
Para cambiar el shell por defecto del usuario, ejecute el comando con la opción -s
seguido de la ruta absoluta del shell y el nombre del usuario:
usermod -s SHELL USER
En el ejemplo siguiente, estamos cambiando el shell del usuario a Zsh:
sudo usermod -s /usr/bin/zsh linuxize
Puede averiguar qué shells están disponibles en su sistema mostrando el contenido del archivo /etc/shells
.
Cambiar un UID de usuario #
El 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 opción -u
seguido del nuevo UID y el nombre del usuario:
usermod -u UID USER
El ejemplo siguiente muestra cómo cambiar el número «UID» a «1050»:
sudo usermod -u 1050 linuxize
El UID de los archivos que son propiedad del usuario y que se encuentran 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 un nombre de usuario #
Aunque no es muy frecuente, a veces puede querer cambiar el nombre de un usuario existente. La opción -l
se utiliza para cambiar el nombre de usuario:
usermod -l NEW_USER USER
En el ejemplo siguiente, estamos cambiando el nombre del usuario linuxize
a lisa
a «1050»:
sudo usermod -l linuxize lisa
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.
Establecimiento de una fecha de caducidad del usuario #
La fecha de caducidad es la fecha en la que la cuenta de usuario se desactivará. Para establecer la fecha de caducidad del usuario, utilice la opción -e
:
sudo usermod -e DATE USER
La fecha de caducidad debe establecerse utilizando el formato YYYY-MM-DD
.
Por ejemplo, para desactivar el usuario linuxize
en 2022-02-21
, se ejecutaría el siguiente comando:
sudo usermod -e "2022-02-21" linuxize
Para desactivar la caducidad de una cuenta, establezca una fecha de caducidad vacía:
sudo usermod -e "" linuxize
Use el comando chage -l
para ver la fecha de caducidad del usuario:
sudo chage -l linuxize
Last password change: Jul 24, 2018Password expires: neverPassword inactive: neverAccount expires: neverMinimum number of days between password change: 0Maximum number of days between password change: 99999Number of days of warning before password expires: 7
La fecha de caducidad se almacena en el archivo /etc/shadow
.
Bloqueo y desbloqueo de una cuenta de usuario #
La opción -L
permite bloquear una cuenta de usuario:
usermod -L USER
Los comandos insertarán un signo de exclamación (!
) delante de la contraseña cifrada. Cuando el campo de la contraseña en el archivo /etc/shadow
contiene un signo de exclamación, el usuario no podrá iniciar sesión en el sistema utilizando la autenticación por contraseña. Otros métodos de inicio de sesión, como la autenticación basada en claves o el cambio de usuario, siguen estando permitidos. Si desea bloquear la cuenta y desactivar todos los métodos de inicio de sesión, también debe establecer la fecha de caducidad en 1.
Los siguientes ejemplos muestran cómo bloquear el usuario linuxize
:
sudo usermod -L linuxize
sudo usermod -L -e 1 linuxize
Para desbloquear un usuario, ejecute usermod
con la opción -U
:
usermod -U USER
Conclusión #
Le hemos mostrado cómo utilizar el comando usermod
para establecer la información de la cuenta de usuario.