Cambio de usuarios en Linux

LinuxBeginner
Practicar Ahora

Introducción

Linux es un sistema operativo multiusuario en el que múltiples usuarios pueden trabajar simultáneamente. Comprender cómo navegar entre diferentes cuentas de usuario es una habilidad fundamental para los administradores de sistemas y los usuarios de Linux. Esta práctica (lab) te introduce en el cambio de usuario en Linux utilizando el comando su (substitute user, sustituir usuario).

En esta práctica, aprenderás cómo crear un nuevo usuario, cambiar entre usuarios, realizar operaciones como diferentes usuarios y volver a tu cuenta de usuario original. Estas habilidades son esenciales para las tareas de administración de sistemas, las prácticas de seguridad y la comprensión de los permisos de usuario en entornos 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 81%. Ha recibido una tasa de reseñas positivas del 94% por parte de los estudiantes.

Comprender los usuarios de Linux y crear un nuevo usuario

En Linux, cada usuario tiene su propia cuenta con permisos específicos y un directorio personal (home directory). Antes de poder cambiar entre usuarios, necesitamos crear una segunda cuenta de usuario.

Crear un nuevo usuario

Vamos a crear un nuevo usuario llamado apprentice utilizando el comando adduser. Este comando requiere privilegios de administrador, por lo que usaremos sudo para ejecutarlo con permisos elevados:

sudo adduser apprentice

Cuando ejecutes este comando, se te pedirá que establezcas una contraseña para el nuevo usuario y que proporciones alguna información opcional. Para esta práctica, establezcamos la contraseña en password123 y puedes presionar Enter para omitir los campos de información opcional:

Adding user `apprentice' ...
Adding new group `apprentice' (1001) ...
Adding new user `apprentice' (1001) with group `apprentice' ...
Creating home directory `/home/apprentice' ...
Copying files from `/etc/skel' ...
New password: password123
Retype new password: password123
passwd: password updated successfully
Changing the user information for apprentice
Enter the new value, or press ENTER for the default
        Full Name []:
        Room Number []:
        Work Phone []:
        Home Phone []:
        Other []:
Is the information correct? [Y/n] Y

Conceder privilegios de sudo

Ahora, vamos a darle al usuario apprentice privilegios de sudo para que pueda realizar tareas de administración:

sudo usermod -aG sudo apprentice

Este comando agrega al usuario apprentice al grupo sudo. No habrá ninguna salida si el comando se ejecuta correctamente.

Verificar la existencia del usuario

Para verificar que nuestro nuevo usuario se ha creado correctamente, podemos listar el contenido del directorio /home:

ls -l /home

Deberías ver un directorio para el usuario apprentice:

total 8
drwxr-xr-x 5 apprentice apprentice 4096 Oct 15 12:34 apprentice
drwxr-xr-x 5 labex      labex      4096 Oct 15 12:00 labex

También podemos verificar la lista de usuarios en el sistema viendo el archivo /etc/passwd:

grep apprentice /etc/passwd

Esto debería mostrarte información sobre el usuario apprentice:

apprentice:x:1001:1001:,,,:/home/apprentice:/bin/bash

Cambio de usuario con el comando su

Ahora que hemos creado el usuario apprentice, aprendamos cómo cambiar a este usuario utilizando el comando su.

Comprender el comando su

El comando su (substitute user, sustituir usuario) te permite cambiar a otra cuenta de usuario durante una sesión de inicio de sesión. Hay dos formas comunes de usar el comando su:

  1. su username - Cambia al usuario especificado pero mantiene las variables de entorno actuales.
  2. su - username - Cambia al usuario especificado y también carga el entorno de ese usuario.

Generalmente se prefiere usar la segunda opción con el guión (-) ya que proporciona un cambio completo de entorno, haciéndote sentir como si realmente estuvieras iniciando sesión como ese usuario.

Cambiar al usuario Apprentice

Cambiemos al usuario apprentice con un cambio completo de entorno:

su - apprentice

Se te pedirá la contraseña del usuario apprentice. Ingresa la contraseña que estableciste durante la creación del usuario (password123):

Password: password123

Después de una autenticación exitosa, tu indicador de comando cambiará para indicar que ahora has iniciado sesión como el usuario apprentice. El indicador podría verse así:

apprentice@ubuntu:~$

Verificar el cambio de usuario

Para confirmar que ahora estás operando como el usuario apprentice, ejecuta el comando whoami:

whoami

La salida debería ser:

apprentice

También puedes verificar el directorio de trabajo actual con el comando pwd:

pwd

La salida debería mostrar que estás en el directorio personal (home directory) del usuario apprentice:

/home/apprentice

Creación de archivos como el usuario 'apprentice'

Ahora que hemos iniciado sesión como el usuario apprentice, creemos algunos archivos para demostrar que las acciones realizadas en esta sesión se ejecutan con los permisos del usuario apprentice.

Crear un directorio

Primero, creemos un directorio de proyecto en el directorio personal (home directory) del usuario apprentice:

mkdir -p ~/project

La opción -p asegura que el comando no produzca un error si el directorio ya existe. No habrá ninguna salida si el comando se ejecuta correctamente.

Crear un archivo de texto

Ahora, creemos un archivo de texto en el directorio del proyecto:

echo "This is my first file as the apprentice user." > ~/project/apprentice-journal.txt

No habrá ninguna salida al ejecutar este comando, pero creará un archivo con el contenido especificado.

Ver el contenido del archivo

Veamos el contenido del archivo que acabamos de crear:

cat ~/project/apprentice-journal.txt

La salida debería ser:

This is my first file as the apprentice user.

Verificar la propiedad del archivo

También podemos verificar que el archivo está propiedad del usuario apprentice:

ls -l ~/project/apprentice-journal.txt

La salida debería verse algo así:

-rw-rw-r-- 1 apprentice apprentice 44 Oct 15 13:45 /home/apprentice/project/apprentice-journal.txt

Observa que tanto el usuario como el grupo propietarios del archivo están establecidos en apprentice, lo que confirma que el archivo se creó con los permisos del usuario apprentice.

Volver al usuario original

Después de completar las tareas como el usuario apprentice, es hora de volver a tu cuenta de usuario original. Esta es una práctica común cuando necesitas realizar acciones temporalmente como otro usuario y luego regresar a tu cuenta principal.

Salir de la sesión del usuario Apprentice

Para volver a tu sesión de usuario original, simplemente escribe exit o presiona Ctrl+D:

exit

Deberías ver que el indicador de comando vuelve a ser el de tu usuario original, que podría verse así:

labex@ubuntu:~/project$

Verificar el cambio de usuario

Para confirmar que has vuelto exitosamente a tu cuenta de usuario original, ejecuta el comando whoami:

whoami

La salida debería ser:

labex

Acceder a archivos creados por otros usuarios

Aunque hayas vuelto a tu usuario original, todavía puedes acceder a los archivos creados por el usuario apprentice si tienes los permisos adecuados:

cat /home/apprentice/project/apprentice-journal.txt

La salida debería mostrar el contenido del archivo:

This is my first file as the apprentice user.

Comparar el contexto de usuario

Ahora que has experimentado el cambio entre usuarios, demosntremos la diferencia en el contexto de usuario verificando las rutas de los directorios personales (home directory):

echo "My home directory is: $HOME"

La salida debería mostrar el directorio personal de tu usuario original:

My home directory is: /home/labex

Si volvieras a cambiar al usuario apprentice y ejecutaras el mismo comando, la salida sería diferente:

su - apprentice                    ## (No ejecutes esto ahora, solo para ilustración)
echo "My home directory is: $HOME" ## Mostraría: My home directory is: /home/apprentice

Esto demuestra cómo el comando su con la opción - cambia completamente el entorno de usuario, incluyendo variables de entorno como $HOME.

Resumen

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

  1. Crear una nueva cuenta de usuario con el comando adduser
  2. Conceder privilegios de sudo a un usuario con el comando usermod
  3. Cambiar entre usuarios utilizando el comando su
  4. Crear archivos como un usuario diferente
  5. Verificar el contexto de usuario con comandos como whoami y comprobar variables de entorno
  6. Volver a tu usuario original con el comando exit

Estas habilidades son fundamentales para la administración de sistemas Linux y las operaciones diarias en entornos multi-usuario. El cambio de usuario permite a los administradores realizar tareas con diferentes niveles de permisos y mantener prácticas de seguridad adecuadas evitando el uso constante de la cuenta root.

Comprender la gestión de usuarios en Linux te ayuda a:

  • Mantener la seguridad del sistema utilizando permisos de usuario adecuados
  • Solucionar problemas relacionados con los permisos
  • Probar aplicaciones y configuraciones desde diferentes perspectivas de usuario
  • Administrar sistemas multi-usuario de manera efectiva

A medida que continúes tu viaje en Linux, estas habilidades servirán como base para tareas de administración de sistemas más avanzadas.