Una guía completa para el uso del comando 'usermod': 15 ejemplos prácticos con capturas de pantalla


En las distribuciones Unix/Linux, el comando " usermod " se usa para modificar o cambiar cualquier atributo de una cuenta de usuario ya creada a través de la línea de comando. El comando "usermod" es similar al "useradd" o "adduser", pero el inicio de sesión se otorga a un usuario existente.

El comando "useradd" o "adduser" se utiliza para crear cuentas de usuario en sistemas Linux. Para saber más sobre cómo crear usuarios del sistema, lea nuestra guía completa en:

  1. A Complete Guide to “useradd” Command in Linux

Después de crear cuentas de usuario, en algunos escenarios donde necesitamos cambiar los atributos de un usuario existente, como cambiar el directorio de inicio del usuario, el nombre de inicio de sesión, el shell de inicio de sesión, la fecha de caducidad de la contraseña, etc., donde en tal caso se usa el comando "usermod".

Cuando ejecutamos el comando "usermod" en la terminal, los siguientes archivos se utilizan y se ven afectados.

  1. /etc/passwd – User account information.
  2. /etc/shadow – Secure account information.
  3. /etc/group – Group account information.
  4. /etc/gshadow – Secure group account information.
  5. /etc/login.defs – Shadow password suite configuration..

La sintaxis básica del comando es:

usermod [options] username
  1. We must have existing user accounts to execute usermod command.
  2. Only superuser (root) is allowed to execute usermod command.
  3. The usermod command can be executed on any Linux distribution.
  4. Must have basic knowledge of usermod command with options

El comando "usermod" es fácil de usar con muchas opciones para realizar cambios en un usuario existente. Veamos cómo usar el comando usermod modificando algunos usuarios existentes en el cuadro de Linux con la ayuda de las siguientes opciones.

  1. -c = We can add comment field for the useraccount.
  2. -d = To modify the directory for any existing user account.
  3. -e = Using this option we can make the account expiry in specific period.
  4. -g = Change the primary group for a User.
  5. -G = To add a supplementary groups.
  6. -a = To add anyone of the group to a secondary group.
  7. -l = To change the login name from tecmint to tecmint_admin.
  8. -L = To lock the user account. This will lock the password so we can’t use the account.
  9. -m = moving the contents of the home directory from existing home dir to new dir.
  10. -p = To Use un-encrypted password for the new password. (NOT Secured).
  11. -s = Create a Specified shell for new accounts.
  12. -u = Used to Assigned UID for the user account between 0 to 999.
  13. -U = To unlock the user accounts. This will remove the password lock and allow us to use the user account.

En este artículo, veremos "15 comandos de usermod" con sus ejemplos prácticos y su uso en Linux, que le ayudarán a aprender y mejorar sus habilidades en la línea de comandos utilizando estas opciones.

1. Agregar información a la cuenta de usuario

La opción " -c " se utiliza para establecer un breve comentario (información) sobre la cuenta de usuario. Por ejemplo, agreguemos información sobre el usuario "tecmint", usando el siguiente comando.

# usermod -c "This is Tecmint" tecmint

Después de agregar información sobre el usuario, el mismo comentario se puede ver en el archivo/etc/passwd.

# grep -E --color 'tecmint' /etc/passwd

tecmint:x:500:500:This is Tecmint:/home/tecmint:/bin/sh

2. Cambiar el directorio de inicio del usuario

En el paso anterior podemos ver que nuestro directorio de inicio está en /home/tecmint/, si necesitamos cambiarlo a otro directorio podemos cambiarlo usando -d opción con el comando usermod.

Por ejemplo, quiero cambiar nuestro directorio de inicio a /var/www/, pero antes de cambiar, verifiquemos el directorio de inicio actual de un usuario, usando el siguiente comando.

# grep -E --color '/home/tecmint' /etc/passwd

tecmint:x:500:500:This is Tecmint:/home/tecmint:/bin/sh

Ahora, cambie el directorio de inicio de/home/tecmint a/var/www/y confirme el director de inicio después de cambiar.

# usermod -d /var/www/ tecmint
# grep -E --color '/var/www/' /etc/passwd

tecmint:x:500:500:This is Tecmint:/var/www:/bin/sh

3. Establecer la fecha de vencimiento de la cuenta de usuario

La opción "-e" se utiliza para establecer la fecha de caducidad en una cuenta de usuario con el formato de fecha AAAA-MM-DD. Antes de configurar una fecha de vencimiento para un usuario, primero verifiquemos el estado actual de vencimiento de la cuenta usando el comando "chage" (cambiar la información de vencimiento de la contraseña del usuario).

# chage -l tecmint

Last password change					: Nov 02, 2014
Password expires					: never
Password inactive					: never
Account expires						: Dec 01, 2014
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

El estado de vencimiento de un usuario 'tecmint' es 1 de diciembre de 2014 , cambiémoslo a 1 de noviembre de 2014 usando la opción 'usermod -e' y confirmemos la fecha de vencimiento con 'chage 'comando.

# usermod -e 2014-11-01 tecmint
# chage -l tecmint

Last password change					: Nov 02, 2014
Password expires					: never
Password inactive					: never
Account expires						: Nov 01, 2014
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

4. Cambiar el grupo principal de usuarios

Para configurar o cambiar un grupo primario de usuarios, usamos la opción "-g" con el comando usermod. Antes de cambiar el grupo principal del usuario, primero asegúrese de verificar el grupo actual para el usuario tecmint_test .

# id tecmint_test

uid=501(tecmint_test) gid=502(tecmint_test) groups=502(tecmint_test)

Ahora, configure el grupo babin como grupo principal para el usuario tecmint_test y confirme los cambios.

# usermod -g babin tecmint_test
# id tecmint_test

uid=501(tecmint_test) gid=502(babin) groups=502(tecmint_test)

5. Agregar grupo a un usuario existente

Si desea agregar un nuevo grupo llamado "tecmint_test0" al usuario "tecmint", puede usar la opción "-G" con el comando usermod como se muestra a continuación.

# usermod -G tecmint_test0 tecmint
# id tecmint

Nota: Tenga cuidado, al agregar nuevos grupos a un usuario existente con la opción "-G" solamente, se eliminarán todos los grupos existentes a los que pertenece el usuario. Por lo tanto, siempre agregue la opción "-a" (agregar) con "-G" para agregar o agregar nuevos grupos.

6. Agregar un grupo principal y complementario al usuario

Si necesita agregar un usuario a cualquiera del grupo complementario, puede usar las opciones "-a" y "-G". Por ejemplo, aquí vamos a agregar una cuenta de usuario tecmint_test0 con el usuario rueda .

# usermod -a -G wheel tecmint_test0
# id tecmint_test0

Entonces, el usuario tecmint_test0 permanece en su grupo primario y también en el grupo secundario (rueda). Esto hará que mi cuenta de usuario normal ejecute cualquier comando con privilegios de root en el cuadro de Linux.

eg : sudo service httpd restart

7. Cambiar el nombre de inicio de sesión del usuario

Para cambiar cualquier nombre de inicio de sesión de usuario existente, podemos utilizar la opción "-l" (nuevo inicio de sesión). En el siguiente ejemplo, cambiamos el nombre de inicio de sesión tecmint a tecmint_admin. Así que el nombre de usuario tecmint ha sido renombrado con el nuevo nombre tecmint_admin.

# usermod -l tecmint_admin tecmint

Ahora busque el usuario de tecmint, no estará presente porque lo hemos cambiado a tecmint_admin.

# id tecmint

Verifique que la cuenta tecmint_admin estará allí con el mismo UID y con el grupo existente que hemos agregado antes.

# id tecmint_admin

8. Bloquear cuenta de usuario

Para bloquear cualquier cuenta de usuario del sistema, podemos usar la opción '-L' (bloqueo). Una vez que la cuenta está bloqueada, no podemos iniciar sesión con la contraseña y verá un ! agregado antes del cifrado contraseña en el archivo/etc/shadow, significa que la contraseña está deshabilitada.

# usermod -L babin

Compruebe la cuenta bloqueada.

# grep -E --color 'babin' cat /etc/shadow

9. Desbloquear cuenta de usuario

La opción "-U" se utiliza para desbloquear a cualquier usuario bloqueado, esto eliminará el ! antes de la contraseña cifrada.

# grep -E --color 'babin' /etc/shadow
# usermod -U babin

Verifique al usuario después del desbloqueo.

# grep -E --color 'babin' /etc/shadow

10. Mueva el directorio de inicio del usuario a la nueva ubicación

Supongamos que tiene una cuenta de usuario como "meñique" con el directorio de inicio "/ inicio/meñique", y desea moverse a una nueva ubicación, diga "/ var/meñique". Puede utilizar las opciones "-d" y "-m" para mover los archivos de usuario existentes desde el directorio de inicio actual a un nuevo directorio de inicio.

Verifique la cuenta y su directorio de inicio actual.

# grep -E --color 'pinky' /etc/passwd

Luego enumere los archivos que son propiedad del usuario pinky.

# ls -l /home/pinky/

Ahora tenemos que mover el directorio de inicio de/home/pinky a/var/pinky.

# usermod -d /var/pinky/ -m pinky

A continuación, verifique el cambio de directorio.

# grep -E --color 'pinky' /etc/passwd

Busque los archivos en "/ home/pinky". Aquí hemos movido los archivos usando la opción -m para que no haya archivos. Los archivos de usuario de pinky estarán ahora en/var/pinky.

# ls -l /home/pinky/
# ls -l /var/pinky/

11. Cree una contraseña no cifrada para el usuario

Para crear una contraseña no cifrada, utilizamos la opción "-p" (contraseña). Para fines de demostración, estoy configurando una nueva contraseña que diga "redhat" en el meñique de un usuario.

# usermod -p redhat pinky

Después de configurar la contraseña, ahora verifique el archivo de sombra para ver si está en formato cifrado o no cifrado.

# grep -E --color 'pinky' /etc/shadow

Nota: ¿Viste en la imagen de arriba? La contraseña es claramente visible para todos. Por lo tanto, no se recomienda usar esta opción, porque la contraseña será visible para todos los usuarios.

12. Cambiar shell de usuario

El shell de inicio de sesión del usuario se puede cambiar o definir durante la creación del usuario con el comando useradd o con el comando "usermod" usando la opción "-s" (shell). Por ejemplo, el usuario "babin" tiene el shell/bin/bash por defecto, ahora quiero cambiarlo a/bin/sh.

# grep -E --color 'babin' /etc/passwd
# usermod -s /bin/sh babin

Después de cambiar el shell de usuario, verifique el shell de usuario con el siguiente comando.

# grep -E --color 'babin' /etc/passwd

13. Cambiar ID de usuario (UID)

En el siguiente ejemplo, puede ver que mi cuenta de usuario "babin" tiene el UID de 502, ahora quiero cambiarlo a 888 como mi UID. Podemos asignar UID entre 0 y 999.

# grep -E --color 'babin' /etc/passwd
OR
# id babin

Ahora, cambiemos el UID del usuario babin usando la opción "-u" (uid) y verifiquemos los cambios.

# usermod -u 888 babin
# id babin

14. Modificación de la cuenta de usuario con múltiples opciones

Aquí tenemos un jack de usuario y ahora quiero modificar su directorio de inicio, shell, fecha de caducidad, etiqueta, UID y grupo a la vez usando un solo comando con todas las opciones como discutimos anteriormente.

El usuario Jack tiene el directorio de inicio predeterminado /home/jack , ahora quiero cambiarlo a /var/www/html y asignar su shell como bash , establezca la fecha de caducidad como 10 de diciembre de 2014, agregue una nueva etiqueta como Este es jack , cambie el UID a 555 y él será miembro del grupo Apple.

Veamos cómo modificar la cuenta de jack usando la opción múltiple ahora.

# usermod -d /var/www/html/ -s /bin/bash -e 2014-12-10 -c "This is Jack" -u 555 -aG apple jack

Luego verifique los cambios en el UID y el directorio de inicio.

# grep -E --color 'jack' /etc/passwd

Verificación de caducidad de la cuenta.

# chage -l jack

Compruebe el grupo del que todos los gatos han sido miembros.

# grep -E --color 'jack' /etc/group

15. Cambiar UID y GID de un usuario

Podemos cambiar el UID y GID de un usuario actual. Para cambiar a un nuevo GID, necesitamos un grupo existente. Aquí ya hay una cuenta llamada naranja con GID de 777 .

Ahora mi cuenta de usuario de Jack quiere que se le asigne el UID de 666 y el GID de Orange ( 777 ).

Verifique el UID y GID actuales antes de modificar.

# id jack

Modifique el UID y GID.

# usermod -u 666 -g 777 jack

Verifique los cambios.

# id jack

Conclusión

Aquí hemos visto cómo usar el comando usermod con sus opciones de manera muy detallada. Antes de conocer el comando usermod, uno debe conocer el comando "useradd" y sus opciones para usar el comando usermod. Si me he perdido algún punto del artículo, avíseme a través de los comentarios y no olvide agregar sus valiosos comentarios.