Búsqueda de sitios web

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


En distribuciones Unix/Linux, el comando 'usermod' se utiliza 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 a '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. Una guía completa para el comando "useradd" en 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 vencimiento de la contraseña, etc., 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 – Información de la cuenta de usuario.
  2. /etc/shadow: información segura de la cuenta.
  3. /etc/group – Información de la cuenta del grupo.
  4. /etc/gshadow: información segura de la cuenta del grupo.
  5. /etc/login.defs – Configuración del conjunto de contraseñas ocultas.

La sintaxis básica del comando es:

usermod [options] username

Requisitos

  1. Debemos tener cuentas de usuario existentes para ejecutar el comando usermod.
  2. Sólo el superusuario (root) puede ejecutar el comando usermod.
  3. El comando usermod se puede ejecutar en cualquier distribución de Linux.
  4. Debe tener conocimientos básicos del comando usermod con opciones.

Opciones de Usermod

El comando 'usermod' es fácil de usar y tiene 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=Podemos agregar un campo de comentarios para la cuenta de usuario.
  2. -d=Para modificar el directorio de cualquier cuenta de usuario existente.
  3. -e=Usando esta opción podemos hacer que la cuenta caduque en un período específico.
  4. -g=Cambiar el grupo principal de un usuario.
  5. -G=Para agregar grupos suplementarios.
  6. -a=Para agregar a cualquiera del grupo a un grupo secundario.
  7. -l=Para cambiar el nombre de inicio de sesión de tecmint a tecmint_admin.
  8. -L=Para bloquear la cuenta de usuario. Esto bloqueará la contraseña para que no podamos usar la cuenta.
  9. -m=mover el contenido del directorio de inicio del directorio de inicio existente al nuevo directorio.
  10. -p=Para utilizar una contraseña no cifrada para la nueva contraseña. (NO asegurado).
  11. -s=Crear un shell especificado para cuentas nuevas.
  12. -u=Se utiliza para asignar el UID a la cuenta de usuario entre 0 y 999.
  13. -U=Para desbloquear las cuentas de usuario. Esto eliminará el bloqueo de contraseña y nos permitirá utilizar la cuenta de usuario.

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 de 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 algún 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 del cambio.

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 vencimiento 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 de vencimiento de la cuenta actual 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 caducidad de un usuario 'tecmint' es 1 de diciembre de 2014, cambiémoslo al 1 de noviembre de 2014 usando 'usermod -e ' y confirme la fecha de vencimiento con el comando 'chage'.

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 de usuarios, primero asegúrese de verificar el grupo actual del 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 un 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 abajo.

usermod -G tecmint_test0 tecmint
id tecmint

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

6. Agregar grupo primario y suplementario 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 wheel.

usermod -a -G wheel tecmint_test0
id tecmint_test0

Así, 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 el nombre de inicio de sesión de cualquier usuario existente, podemos usar 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. Por lo tanto, el nombre de usuario tecmint ha sido renombrado con el nuevo nombre tecmint_admin.

usermod -l tecmint_admin tecmint

Ahora busque el usuario tecmint. No estará presente porque lo hemos cambiado a tecmint_admin.

id tecmint

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

id tecmint_admin

8. Bloquear cuenta de usuario

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

usermod -L babin

Verifique la cuenta bloqueada.

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

9. Desbloquear cuenta de usuario

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

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

Verifique el usuario después del desbloqueo.

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

10. Mover el directorio de inicio del usuario a una nueva ubicación

Digamos que tiene una cuenta de usuario como 'pinky' con el directorio de inicio '/home/pinky', 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 pertenecen al 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 queden 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 dice "redhat" en un usuario pinky.

usermod -p redhat pinky

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

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 utilizar esta opción, ya que la contraseña será visible para todos los usuarios.

12. Cambiar el 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 cambiar con el comando 'usermod' usando la opción '-s' ( caparazón). 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 usando 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 para el usuario babin usando la opción '-u' (uid) y verifiquemos los cambios.

usermod -u 888 babin
id babin

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

Aquí tenemos un usuario jack 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 comentamos 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 vencimiento como el 10 de diciembre de 2014, agregue una nueva etiqueta como Este es jack, cambie el UID a 555 y será miembro del grupo Apple.

Veamos ahora cómo modificar la cuenta jack usando opciones múltiples.

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

chage -l jack

Verifique el grupo del que todos Jack han sido miembros.

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

15. Cambiar UID y GID de un usuario

Podemos cambiar UID y GID de un usuario actual. Para cambiar a un nuevo GID necesitamos un grupo existente. Aquí ya existe una cuenta denominada 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 modificarlos.

id jack

Modifique el UID y el GID.

usermod -u 666 -g 777 jack

Consulta 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 usermod. Si me perdí algún punto del artículo, házmelo saber a través de los comentarios y no olvides agregar tus valiosos comentarios.