Gestión de cuentas de usuario

LinuxLinuxBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

Este laboratorio lo guiará a través de las operaciones básicas de gestión de cuentas de usuario en sistemas Linux. Aprenderá cómo crear, modificar y eliminar cuentas de usuario, así como cómo establecer y cambiar contraseñas. Estas son habilidades fundamentales para la administración de sistemas Linux. No se preocupe si es nuevo en Linux, explicaremos todo paso a paso.

Creación de un nuevo usuario

Comencemos creando una nueva cuenta de usuario llamada "joker".

  1. Abra una terminal. En Linux, la terminal es una interfaz de texto donde puede ingresar comandos.
  2. Escriba el siguiente comando y presione Enter:
sudo useradd joker

Analicemos este comando:

  • sudo es un comando que le otorga privilegios temporales de superusuario (administrador). Lo usamos porque crear un nuevo usuario requiere estos permisos de nivel superior.
  • useradd es el comando para crear un nuevo usuario.
  • joker es el nombre de usuario que estamos creando.

Nota: Si intenta ejecutar este comando sin sudo, obtendrá un error de "permiso denegado". Esto se debe a que los usuarios normales no tienen permitido crear nuevas cuentas de usuario; es una tarea reservada para los administradores del sistema.

Esto destaca la diferencia entre un superusuario y un usuario común. Como usuario común, no puede crear nuevas cuentas de usuario, pero al usar sudo, puede elevar temporalmente sus privilegios para realizar esta tarea administrativa.

  1. Para verificar que el usuario se haya creado, examinaremos el archivo /etc/passwd:
sudo grep -w 'joker' /etc/passwd

El archivo /etc/passwd es como una guía telefónica para las cuentas de usuario. Cada línea representa una cuenta de usuario, con diferentes piezas de información separadas por dos puntos (:).

Debería ver una salida similar a:

joker:x:5001:5001::/home/joker:/bin/sh

Esta línea muestra:

  • Nombre de usuario: joker
  • Contraseña: x (la contraseña real se almacena de forma segura en otro lugar)
  • ID de usuario: 5001
  • ID de grupo: 5001
  • Directorio personal: /home/joker, pero aún no se ha creado
  • Shell predeterminado: /bin/sh

Creación de un usuario con directorio personal

Ahora, creemos otro usuario llamado "bob" y asignémosle un directorio personal.

  1. Ejecute el siguiente comando:
sudo useradd -m bob

La opción -m le indica al sistema que cree un directorio personal para el usuario. Un directorio personal es como una carpeta privada donde un usuario puede almacenar sus archivos y configuraciones.

  1. Verifiquemos que se haya creado el directorio personal:
sudo ls -ld /home/bob

Debería ver una salida similar a:

drwxr-x--- 2 bob bob 57 Jan 19 13:33 /home/bob

Esta salida muestra:

  • La d al principio indica que se trata de un directorio.
  • rwxr-x--- muestra quién puede leer, escribir o ejecutar en este directorio.
  • Las dos entradas de bob indican que tanto el usuario como el grupo propietarios de este directorio son bob.
  • 57 es el tamaño del directorio en bytes.
  • Jan 19 13:33 es la fecha y hora de creación del directorio.
  • /home/bob es la ubicación del directorio.

Establecimiento de una contraseña de usuario

Ahora necesitamos establecer una contraseña para nuestros nuevos usuarios. Establezcamos una contraseña para "joker".

  1. Ejecute el siguiente comando:
sudo passwd joker
  1. Se le pedirá que ingrese una nueva contraseña dos veces. Para este laboratorio, utilice una contraseña sencilla como "password123".

La contraseña no se mostrará mientras la escribe. Esta es una característica de seguridad para evitar que otros vean su contraseña mientras la escribe.

Importante: ¡Recuerde esta contraseña! La necesitará más adelante en el laboratorio.

  1. Si tiene éxito, verá un mensaje que dice "passwd: password updated successfully" (Contraseña actualizada con éxito).

Nota: En un escenario real, siempre utilice contraseñas fuertes y únicas.

Detrás de escena, Linux almacena las contraseñas cifradas en un archivo seguro llamado /etc/shadow. Esto es más seguro que almacenarlas en el archivo /etc/passwd, donde cualquiera podría verlas.

Modificación de propiedades de usuario

Linux nos permite cambiar varias configuraciones de una cuenta de usuario después de que se haya creado. Cambiemos el directorio personal de "joker" como ejemplo.

  1. Ejecute el siguiente comando:
sudo usermod -d /home/wayne joker

Esto es lo que hace este comando:

  • usermod es el comando para modificar la configuración de la cuenta de usuario.
  • -d /home/wayne especifica el nuevo directorio personal.
  • joker es el usuario que estamos modificando.
  1. Verifiquemos el cambio:
sudo grep -w 'joker' /etc/passwd

-w se utiliza para coincidir con la palabra completa, y grep se utiliza para buscar la palabra en el archivo. Debería ver que el directorio personal de "joker" se ha actualizado en la salida.

Cambio de la shell de usuario

Otra configuración importante que podemos modificar es la shell predeterminada del usuario. La shell es el programa que interpreta y ejecuta los comandos que escribes en la terminal.

Por defecto, el usuario 'joker' está utilizando /bin/sh como su shell. Si bien sh (Bourne Shell) es una shell básica que está presente en la mayoría de los sistemas similares a Unix, bash (Bourne Again Shell) ofrece más características y es generalmente más amigable para el usuario.

Cambiar la shell de 'joker' a bash ofrece varios beneficios:

  • Interfaz de línea de comandos más intuitiva.
  • Capacidades de scripting mejoradas.
  • Mejores opciones de personalización para el entorno del usuario.

Así es como se realiza el cambio:

  1. Cambie la shell predeterminada de 'joker' a bash:
sudo usermod -s /bin/bash joker
  1. Verifique el cambio:
sudo grep -w 'joker' /etc/passwd

Debería ver /bin/bash al final de la entrada de 'joker'. Esto significa que bash es ahora la shell predeterminada de 'joker'.

Después de realizar este cambio, 'joker' tendrá acceso al entorno bash más completo siempre que inicie sesión o abra una nueva sesión de terminal.

Agregar un usuario a un grupo

En Linux, utilizamos grupos para organizar usuarios y gestionar permisos. Un grupo importante es el grupo sudo, que otorga a los usuarios privilegios de administración. Vamos a agregar a 'joker' al grupo sudo como ejemplo.

¿Por qué agregaríamos un usuario al grupo sudo?

  1. Administración del sistema: Los usuarios del grupo sudo pueden realizar tareas de administración a nivel de sistema.
  2. Instalación de software: Los miembros del grupo sudo pueden instalar y actualizar paquetes de software.
  3. Cambios de configuración: Pueden modificar archivos de configuración del sistema.
  4. Gestión de usuarios: Pueden crear, modificar o eliminar otras cuentas de usuario.

Puedes preguntarte: "¿Por qué agregar a alguien al grupo sudo si siempre podemos usar el comando 'sudo'?" Aquí está la razón:

  • Conveniencia: Los usuarios del grupo sudo pueden usar sudo sin necesidad de conocer la contraseña de root. En su lugar, usan su propia contraseña.
  • Control granular: Los administradores del sistema pueden configurar sudo para permitir que usuarios específicos ejecuten solo ciertos comandos con privilegios de superusuario.
  • Rendición de cuentas: A diferencia de compartir la contraseña de root, sudo registra quién ejecutó qué comando, lo que mejora la seguridad y la trazabilidad.
  • Seguridad: En general, es más seguro tener cuentas nombradas con acceso sudo que compartir la contraseña de root entre varios administradores.

En un escenario real, normalmente agregarías un usuario al grupo sudo si:

  • Es un administrador de sistema o un miembro del personal de TI que necesita realizar tareas de mantenimiento regulares.
  • Es un desarrollador que necesita instalar software específico o realizar cambios en el sistema para su trabajo.
  • Es un usuario avanzado que necesita privilegios elevados para ciertas tareas, pero no quieres darles la contraseña de root.

Recuerda, agregar un usuario al grupo sudo les otorga un poder significativo sobre el sistema, por lo que esto debe hacerse con cautela y solo cuando sea necesario.

Ahora, agreguemos a 'joker' al grupo sudo:

  1. Ejecuta este comando:
sudo usermod -aG sudo joker

Esto es lo que hace este comando:

  • usermod es el comando para modificar cuentas de usuario.
  • -aG significa "agregar al Grupo" (agregar a un grupo sin eliminarlo de otros grupos).
  • sudo es el grupo al que estamos agregando al usuario.
  • joker es el usuario que estamos modificando.
  1. Verifica el cambio:
groups joker

Deberías ver sudo enumerado entre los grupos de 'joker'.

  1. Para ver el efecto de este cambio, necesitamos cambiar al usuario 'joker' y probar un comando que requiera privilegios sudo:
su - joker

Este comando cambia de tu usuario actual ('labex') al usuario 'joker'. Se te pedirá que ingreses la contraseña de 'joker'. Recuerda, esta es la contraseña que estableciste anteriormente (password123). Mientras escribes la contraseña, no verás ningún carácter en la pantalla, esto es una característica de seguridad.

  1. Una vez que hayas iniciado sesión como 'joker', intentemos ver un archivo que normalmente requiere privilegios de root:
sudo cat /etc/shadow

Ingresa la contraseña de 'joker' nuevamente cuando se te solicite. Deberías poder ver el contenido del archivo /etc/shadow, que normalmente solo es accesible para root. Esto confirma que 'joker' ahora tiene privilegios sudo.

  1. Después de terminar, escribe exit para volver a tu cuenta de usuario original ('labex').

Nota: En un entorno de producción, debes tener mucho cuidado con quién agregas al grupo sudo. Con gran poder viene gran responsabilidad.

Bloqueo y desbloqueo de cuentas de usuario

A veces, es posible que necesites deshabilitar temporalmente una cuenta de usuario sin eliminarla.

  1. Bloquee la cuenta de 'joker':
sudo passwd -l joker

La opción -l bloquea la contraseña.

  1. Intente cambiar al usuario 'joker':
su - joker

Se le pedirá una contraseña. Ingrese la contraseña que estableció para 'joker' anteriormente ("password123" si siguió nuestra sugerencia).

Debería ver un mensaje de "fallo de autenticación". Esto significa que la cuenta se ha bloqueado correctamente.

  1. Ahora, desbloqueemos la cuenta:
sudo passwd -u joker

La opción -u desbloquea la contraseña.

  1. Intente cambiar al usuario 'joker' nuevamente:
su - joker

Ingrese la contraseña cuando se le solicite. Esta vez, debería poder cambiar al usuario 'joker' con éxito.

Escriba exit para volver a su cuenta de usuario original antes de continuar con el siguiente paso.

Eliminación de un usuario

Finalmente, aprendamos cómo eliminar un usuario. Eliminaremos al usuario "bob" que creamos anteriormente.

  1. Elimina a "bob" y su directorio personal:
sudo userdel -r bob

El comando userdel elimina cuentas de usuario. La opción -r elimina el directorio personal del usuario y el buzón de correo.

  1. Verifica que el usuario se haya eliminado:
sudo grep -w 'bob' /etc/passwd
sudo ls -ld /home/bob

Ambos comandos no deben devolver resultados. Esto significa que el usuario y su directorio personal se han eliminado correctamente.

Resumen

¡Felicidades! Has completado el laboratorio de gestión de cuentas de usuario de Linux. Has aprendido cómo:

  1. Crear nuevas cuentas de usuario
  2. Establecer contraseñas de usuario
  3. Modificar propiedades de usuario como el directorio personal y la shell predeterminada
  4. Agregar usuarios a grupos
  5. Bloquear y desbloquear cuentas de usuario
  6. Eliminar cuentas de usuario

También se te han presentado conceptos importantes de Linux como el archivo /etc/passwd, los directorios personales, las shells y los grupos de usuarios. Estas son habilidades fundamentales para la administración de sistemas Linux. Recuerda, en escenarios del mundo real, siempre sigue las políticas de seguridad de tu organización al gestionar cuentas de usuario.