Modificación de usuarios en Linux

LinuxBeginner
Practicar Ahora

Introducción

La gestión de usuarios es un aspecto fundamental de la administración de sistemas Linux. Ya sea que esté configurando una computadora personal, administrando un servidor o trabajando en un entorno multiusuario, es esencial entender cómo crear, modificar y administrar cuentas de usuario.

En este laboratorio (lab), aprenderá cómo utilizar el comando usermod para modificar atributos de usuario, como el nombre de usuario, el directorio de inicio y la pertenencia a grupos. Adquirirá experiencia práctica con comandos clave utilizados para la administración de usuarios en Linux, lo que le proporcionará las habilidades necesarias para administrar eficientemente cuentas de usuario en cualquier entorno Linux.

Este es un Guided Lab, que proporciona instrucciones paso a paso para ayudarte a aprender y practicar. Sigue las instrucciones cuidadosamente para completar cada paso y obtener experiencia práctica. Los datos históricos muestran que este es un laboratorio de nivel principiante con una tasa de finalización del 92%. Ha recibido una tasa de reseñas positivas del 100% por parte de los estudiantes.

Creación y cambio de nombre de un usuario

En este paso, creará un nuevo usuario y aprenderá a cambiarle el nombre. Esta es una tarea común cuando los usuarios cambian de rol o cuando necesita estandarizar los nombres de usuario en todo su sistema.

Primero, abra su terminal. Ya debería estar en el directorio ~/project. Comencemos creando un nuevo usuario llamado temporaryuser:

sudo useradd temporaryuser

Este comando crea una nueva cuenta de usuario en el sistema. Por defecto, useradd no crea un directorio de inicio ni establece una contraseña.

Ahora, verifiquemos si el usuario se creó correctamente:

grep temporaryuser /etc/passwd

Debería ver una entrada para temporaryuser en la salida, confirmando que el usuario ha sido creado.

A continuación, cambiaremos el nombre de este usuario de temporaryuser a permanentuser utilizando el comando usermod:

sudo usermod -l permanentuser temporaryuser

La opción -l especifica que queremos cambiar el nombre de inicio de sesión (login name). Después de ejecutar este comando, el usuario anteriormente conocido como temporaryuser ahora se conocerá como permanentuser.

Verifiquemos que el nombre de usuario ha sido cambiado:

grep permanentuser /etc/passwd

Debería ver la entrada de usuario con el nuevo nombre permanentuser.

Ahora, creemos y asignemos un directorio de inicio (home directory) para este usuario:

sudo usermod -d /home/permanentuser -m permanentuser

En este comando:

  • -d especifica la nueva ruta del directorio de inicio (home directory path)
  • -m crea el nuevo directorio de inicio si no existe, o mueve el contenido del antiguo directorio de inicio al nuevo si ambos existen

Verifiquemos que el directorio de inicio ha sido creado:

ls -ld /home/permanentuser

Debería ver el directorio de inicio recién creado para permanentuser.

Agregar un usuario a grupos

En Linux, los grupos se utilizan para organizar usuarios y gestionar permisos. Agregar un usuario a grupos específicos es una forma esencial de otorgarle acceso a ciertos recursos o capacidades.

Primero, veamos a qué grupos pertenece actualmente nuestro usuario:

groups permanentuser

Por defecto, cuando se crea un usuario con useradd, el usuario se asigna a un grupo primario con el mismo nombre que el nombre de usuario.

Ahora, veamos si el grupo sudo existe en tu sistema:

grep sudo /etc/group

Debes ver una entrada para el grupo sudo. Este grupo especial permite a sus miembros ejecutar comandos con privilegios de superusuario utilizando el comando sudo.

Vamos a agregar nuestro usuario al grupo sudo:

sudo usermod -aG sudo permanentuser

En este comando:

  • -a significa "agregar" (append), lo que asegura que estamos agregando el usuario al grupo sin eliminarlo de otros grupos
  • -G especifica el o los grupos a los que se debe agregar el usuario
  • sudo es el nombre del grupo
  • permanentuser es el usuario que estamos modificando

Verifiquemos que el usuario se haya agregado al grupo sudo:

groups permanentuser

La salida ahora debe incluir sudo en la lista de grupos.

También puedes comprobar la pertenencia al grupo mirando el archivo /etc/group:

grep sudo /etc/group

La salida debe incluir permanentuser en la lista de miembros del grupo sudo.

Cambiar la shell de un usuario

Cada usuario en Linux tiene una shell predeterminada que determina la interfaz de línea de comandos que utiliza al iniciar sesión. En este paso, aprenderás cómo cambiar la shell de inicio de sesión de un usuario.

Primero, veamos la shell actual asignada a nuestro usuario:

grep permanentuser /etc/passwd

Observa el último campo de la salida. Debería mostrar la shell actual, que suele ser /bin/sh para los usuarios creados con useradd sin opciones adicionales.

Ahora, cambiemos la shell a Bash, que es una shell con más funcionalidades:

sudo usermod -s /bin/bash permanentuser

La opción -s especifica la nueva shell de inicio de sesión para el usuario.

Verifiquemos que la shell se haya cambiado:

grep permanentuser /etc/passwd

El final de la línea ahora debería mostrar /bin/bash como la shell para permanentuser.

Diferentes shells ofrecen diferentes funcionalidades y experiencias de usuario. Bash es una de las shells más populares porque ofrece características avanzadas como:

  • Autocompletado de comandos
  • Navegación por el historial de comandos
  • Prompts personalizables
  • Capacidades de scripting con funciones y estructuras de control

Otras shells comunes en Linux incluyen:

  • /bin/sh - La Bourne Shell, una shell básica
  • /bin/zsh - Z Shell, con características adicionales más allá de Bash
  • /bin/dash - Debian Almquist Shell, una shell ligera

Los usuarios pueden cambiar entre las shells instaladas durante su sesión utilizando el comando chsh o tener su shell predeterminada cambiada por un administrador utilizando usermod, como acabamos de hacer.

Establecer la fecha de vencimiento de la cuenta y ver la información del usuario

Los administradores de sistemas a menudo necesitan crear cuentas temporales o asegurarse de que las cuentas se revisen periódicamente. En este paso, aprenderás cómo establecer una fecha de vencimiento para una cuenta y ver información detallada del usuario.

Establecer la fecha de vencimiento de una cuenta

Vamos a establecer una fecha de vencimiento para la cuenta permanentuser. Esto es útil para usuarios temporales o contratistas que solo deben tener acceso durante un período específico.

sudo usermod -e 2023-12-31 permanentuser

La opción -e establece la fecha de vencimiento en el formato AAAA-MM-DD. Después de esta fecha, la cuenta se deshabilitará automáticamente.

Para verificar que se haya establecido la fecha de vencimiento:

sudo chage -l permanentuser

El comando chage -l muestra información sobre la caducidad de la cuenta. La salida incluirá una línea "Account expires" que muestra la fecha que acabas de establecer.

Ver información detallada del usuario

Hay varios comandos para ver información de usuario en Linux. Exploremos algunos de ellos:

  1. Verificar el ID de usuario, el ID de grupo y la pertenencia a grupos:
id permanentuser

Este comando muestra el ID de usuario numérico (UID), el ID de grupo primario (GID) y todos los grupos a los que pertenece el usuario.

  1. Ver el estado de la contraseña y la información de caducidad:
sudo passwd -S permanentuser

Este comando muestra el estado de la contraseña (bloqueada, caducada, etc.) y cuándo se cambió por última vez.

  1. Ver todos los usuarios del sistema:
cat /etc/passwd | grep -v nologin | grep -v false

Este comando filtra el archivo de contraseñas para mostrar solo los usuarios que pueden iniciar sesión (excluyendo usuarios del sistema).

  1. Ver todos los grupos del sistema:
cat /etc/group

Esto muestra todos los grupos definidos en el sistema, incluyendo grupos del sistema y grupos de usuarios.

Comprender cómo recuperar información de usuario de manera eficiente es crucial para la administración del sistema y la resolución de problemas de acceso de usuarios.

Resumen

En este laboratorio, has aprendido tareas esenciales de gestión de usuarios en Linux:

  1. Crear un usuario y cambiar su nombre con el comando usermod -l
  2. Configurar un directorio personal para un usuario con usermod -d -m
  3. Añadir un usuario a grupos adicionales con usermod -aG
  4. Cambiar la shell de inicio de sesión de un usuario con usermod -s
  5. Establecer fechas de vencimiento de cuentas con usermod -e
  6. Ver información de usuario con comandos como id, chage y examinando archivos del sistema

Estas habilidades de gestión de usuarios son fundamentales para cualquier administrador de Linux. El comando usermod proporciona un conjunto de herramientas versátiles para modificar atributos de usuarios sin tener que eliminar y volver a crear cuentas de usuario.

Al dominar estos comandos, puedes gestionar eficientemente cuentas de usuario en cualquier entorno Linux, ya sea una estación de trabajo de un solo usuario, un servidor multi - usuario o un entorno empresarial con muchos usuarios que requieren diferentes niveles de acceso.