Grupos de usuarios y permisos de archivos en Linux

LinuxBeginner
Practicar Ahora

Introducción

Linux es un sistema operativo multiusuario. Esto significa que varios usuarios pueden utilizar el mismo equipo Linux simultáneamente, cada uno con su propio espacio privado y archivos, mientras comparten algunos recursos del sistema. Este laboratorio te introducirá en los conceptos básicos de la gestión de usuarios y los permisos de archivos en Linux, los cuales son cruciales para la administración y la seguridad del sistema.

Avanzarás a través de estos conceptos en un orden práctico: identificar usuarios, crear un usuario, gestionar grupos y, finalmente, aplicar cambios en la propiedad y los permisos de los archivos. Si es la primera vez que utilizas comandos de administración de Linux, ejecuta cada comando uno por uno y compara tu resultado con los ejemplos antes de continuar.

Ver información del usuario actual

En Linux, cada usuario tiene un nombre de usuario único. Comencemos identificando con qué usuario hemos iniciado sesión actualmente.

Abre la terminal e introduce el siguiente comando:

whoami

El comando whoami es una herramienta sencilla que muestra el nombre del usuario actual.

Deberías ver un resultado similar a este:

labex:project/ $ whoami
labex

Esto indica que actualmente has iniciado sesión como el usuario "labex".

Crear un nuevo usuario

Ahora, vamos a crear un nuevo usuario. En Linux, la creación de nuevos usuarios requiere privilegios administrativos. Utilizaremos el comando sudo para obtener estos privilegios.

sudo significa "Superuser Do" (hacer como superusuario). Permite a los usuarios normales ejecutar comandos como superusuario (o usuario root).

Antes de crear un nuevo usuario, hablemos del concepto de grupos primarios. En Linux, cada usuario pertenece a un grupo primario y puede pertenecer a múltiples grupos secundarios. El grupo primario se utiliza normalmente como el propietario del grupo para los archivos que crea el usuario.

Cuando creas un nuevo usuario con adduser, el sistema crea automáticamente un grupo primario para ese usuario con el mismo nombre que el nombre de usuario. Esto se conoce como esquema de Grupo Privado de Usuario (UPG, por sus siglas en inglés).

Introduce el siguiente comando para crear un nuevo usuario llamado "jack":

sudo adduser jack

Este comando realizará lo siguiente:

  1. Creará un nuevo usuario llamado "jack".
  2. Creará un nuevo grupo llamado "jack" (el grupo primario).
  3. Añadirá al usuario "jack" al grupo "jack" como su grupo primario.
  4. Creará un directorio personal para jack en /home/jack.

Se te pedirá que establezcas una contraseña para jack y proporciones información adicional. Puedes establecer una contraseña sencilla (como "password") y presionar Enter para usar los valores predeterminados para el resto de la información.

Nota: Al introducir la contraseña, no verás ningún carácter en la pantalla; esto es un comportamiento normal por razones de seguridad. Simplemente escribe tu contraseña y presiona Enter.

Después de crear el usuario, confirmemos que se ha creado un directorio personal para jack y verifiquemos su grupo primario:

ls /home
id jack

El comando id te mostrará el ID de usuario (UID) de jack, el ID de grupo primario (GID) y cualquier grupo secundario al que pertenezca.

Explorar grupos de usuarios

En Linux, los grupos de usuarios son una forma de organizar a varios usuarios para la gestión de permisos. Cada usuario tiene un grupo primario y puede pertenecer a múltiples grupos secundarios. Exploremos los grupos a los que pertenece nuestro usuario actual:

id labex

Deberías ver un resultado similar a:

uid=5000(labex) gid=5000(labex) groups=5000(labex),27(sudo),121(ssl-cert),5002(public)

Esto muestra que:

  • El usuario labex tiene un ID de usuario (UID) de 5000.
  • El grupo primario para labex también se llama labex con un ID de grupo (GID) de 5000.
  • labex pertenece a varios grupos secundarios, incluidos sudo, ssl-cert y public.

Ahora, veamos todos los grupos en el sistema:

cat /etc/group | sort

El comando cat muestra el contenido de los archivos, /etc/group es donde se almacena la información de los grupos, y | sort ordena el resultado alfabéticamente.

Para ver solo los grupos relacionados con labex, utiliza:

grep "labex" /etc/group

grep es una potente herramienta de búsqueda. Este comando busca líneas que contengan "labex" en el archivo de grupos.

Crear un nuevo grupo y añadir un usuario a él

Vamos a crear un nuevo grupo llamado "developers" y añadir a nuestro nuevo usuario "jack" a este grupo:

Primero, crea el nuevo grupo:

sudo groupadd developers

Ahora, añade a jack al grupo developers:

sudo usermod -aG developers jack

El comando usermod modifica las cuentas de usuario. La opción -aG añade al usuario a un grupo suplementario.

Para verificar que jack es ahora miembro del grupo developers, utiliza:

groups jack

Deberías ver "developers" listado entre los grupos de jack.

Añadir un usuario al grupo sudo

Ahora que hemos creado el usuario jack, vamos a darle privilegios de sudo añadiéndolo al grupo sudo. Pero primero, entendamos por qué esto es importante:

Añadir un usuario al grupo sudo le permite ejecutar comandos con privilegios de superusuario o root. Esto es útil por varias razones:

  1. Seguridad: Permite al usuario realizar tareas administrativas sin iniciar sesión como usuario root, lo cual se considera generalmente un riesgo de seguridad.
  2. Responsabilidad: Cuando los usuarios utilizan sudo, sus acciones quedan registradas, proporcionando una pista de auditoría de las acciones administrativas.
  3. Comodidad: Elimina la necesidad de cambiar a la cuenta de usuario root para tareas administrativas ocasionales.
  4. Control granular: La configuración de sudo se puede personalizar para permitir que usuarios específicos ejecuten solo ciertos comandos con privilegios elevados.

Para añadir a jack al grupo sudo, utiliza este comando:

sudo usermod -aG sudo jack

Este comando utiliza usermod para modificar la cuenta de usuario. La opción -aG significa "append to group" (añadir al grupo), por lo que añade a jack al grupo sudo sin eliminarlo de otros grupos.

Después de añadir a jack al grupo sudo, puedes verificar su pertenencia al grupo con:

groups jack

Deberías ver sudo listado entre los grupos de jack.

Al añadir a jack al grupo sudo, le hemos dado la capacidad de realizar tareas administrativas en el sistema. Sin embargo, es importante recordar que un gran poder conlleva una gran responsabilidad. Los usuarios con privilegios de sudo deben ser de confianza y comprender las implicaciones de sus acciones, ya que pueden afectar potencialmente a todo el sistema.

Comprender y manipular los permisos y la propiedad de los archivos

En Linux, los permisos y la propiedad de los archivos son cruciales para la seguridad del sistema. Exploremos estos conceptos y aprendamos a manipularlos.

  1. Primero, examinemos los permisos actuales en el directorio /home:
ls -l /home

Nota: En ls -l, el segundo carácter es una letra l minúscula, no el número 1.

Verás un resultado similar a:

total 8
drwxr-xr-x 2 jack  jack  4096 Jul 30 10:00 jack
drwxr-xr-x 5 labex labex 4096 Jul 30 09:55 labex

Analicemos qué significa esto:

  • El primer carácter indica el tipo de archivo (d para directorio, - para archivo regular).
  • Los siguientes 9 caracteres representan los permisos para el propietario, el grupo y otros (en ese orden).
  • r significa permiso de lectura, w significa permiso de escritura y x significa permiso de ejecución.
  • El nombre de usuario después de estos caracteres es el propietario del archivo, seguido por el grupo propietario.
  1. Ahora, creemos un nuevo archivo y cambiemos su propiedad:
touch /home/labex/testfile
ls -l /home/labex/testfile
sudo chown jack:jack /home/labex/testfile
ls -l /home/labex/testfile

El comando touch crea un archivo vacío. Inicialmente, el archivo será propiedad de labex. Luego utilizamos chown para cambiar la propiedad a jack tanto para el usuario como para el grupo.

¿Por qué cambiar la propiedad? En Linux, los propietarios de los archivos tienen privilegios especiales sobre ellos. Al cambiar la propiedad, le estamos dando a jack el control total sobre este archivo.

  1. Finalmente, modifiquemos los permisos del archivo:
sudo chmod 750 /home/labex/testfile
ls -l /home/labex/testfile

El comando chmod cambia los permisos del archivo. El número 750 es una forma abreviada de establecer permisos:

  • 7 (propietario): Lectura (4) + Escritura (2) + Ejecución (1) = 7
  • 5 (grupo): Lectura (4) + Ejecución (1) = 5
  • 0 (otros): Sin permisos

Este conjunto de permisos significa:

  • El propietario (jack) puede leer, escribir y ejecutar el archivo.
  • Los miembros del grupo jack pueden leer y ejecutar el archivo.
  • Otros no tienen permisos sobre el archivo.

¿Por qué establecer estos permisos? Este es un conjunto de permisos común que permite al propietario acceso total, da al grupo acceso limitado y restringe el acceso a todos los demás. Es un equilibrio entre usabilidad y seguridad.

Comprender los permisos y la propiedad de los archivos es fundamental en Linux. Te permite controlar quién puede leer, modificar o ejecutar archivos, lo cual es esencial para la seguridad del sistema y la privacidad del usuario. A medida que continúes trabajando con Linux, te encontrarás utilizando estos comandos con frecuencia para gestionar el acceso a archivos y directorios.

Resumen

¡Felicidades! Has completado el laboratorio de Grupos de usuarios y permisos de archivos en Linux. Has aprendido a:

  1. Ver información de usuario.
  2. Crear nuevos usuarios y comprender los grupos primarios.
  3. Explorar y modificar grupos de usuarios.
  4. Crear nuevos grupos y añadir usuarios a ellos.
  5. Conceder privilegios de sudo a los usuarios.
  6. Ver y comprender los permisos de archivos.
  7. Cambiar la propiedad de los archivos.
  8. Modificar los permisos de los archivos.

Estas habilidades son fundamentales para gestionar usuarios y proteger archivos en un entorno Linux. A medida que continúes tu viaje en Linux, encontrarás que estos conceptos son esenciales para la administración y la seguridad del sistema.