El guardián de la fortaleza

LinuxBeginner
Practicar Ahora

Introducción

¡Bienvenido al cuarto día en LabEx Corporation, guardián de la fortaleza! Ayer demostró un gran talento detectivesco al resolver los problemas críticos del Proyecto Phoenix. Ahora, el director de tecnología de la empresa le ha asignado personalmente la responsabilidad de dirigir la seguridad de todo el proyecto.

«No podemos permitirnos otro incidente de seguridad», explica el director de tecnología durante la reunión matutina. «Su investigación reveló que nuestra configuración de seguridad anterior era insuficiente. Sarah Chen y el equipo de desarrollo necesitan un entorno completamente protegido para terminar el Proyecto Phoenix a tiempo».

La crisis reciente ha puesto de relieve la necesidad de aplicar medidas de seguridad sólidas. Un nuevo contratista se incorporará al equipo para acelerar el desarrollo, y usted debe asegurarse de que los controles de acceso estén configurados correctamente. Tendrá que crear sistemas de archivos seguros, asignar la propiedad con precisión, establecer permisos detallados y preparar espacios de trabajo colaborativos que protejan la propiedad intelectual de TechNova.

El éxito del Proyecto Phoenix —y el futuro de la empresa— dependen ahora de la fortaleza digital que construirá hoy. ¡Protejamos este sistema!

Crear un archivo seguro para un proyecto nuevo

Su primera tarea consiste en crear un archivo que almacenará claves confidenciales del proyecto. Este archivo debe mantenerse estrictamente confidencial y solo su propietario debe poder acceder a él.

Tareas

  • Cree un archivo vacío nuevo llamado project_keys.txt dentro del directorio ~/project/phoenix_project.
  • Configure los permisos del archivo para que solo el propietario tenga acceso de lectura y escritura, y ninguna otra persona —ni siquiera los usuarios del mismo grupo— tenga acceso.

Requisitos

  • El archivo debe llamarse project_keys.txt.
  • El archivo debe estar ubicado en ~/project/phoenix_project/project_keys.txt.
  • Use el comando chmod con notación numérica para configurar los permisos.

Sugerencias

  • Puede crear un archivo vacío con el comando touch.
  • Recuerde los valores numéricos de los permisos: lectura (4), escritura (2) y ejecución (1).
  • El permiso final debe ser 600 (lectura y escritura para el propietario, y ningún permiso para el grupo ni para otros usuarios).

Ejemplos

Después de completar esta tarea, debería ver algo parecido a lo siguiente:

$ ls -l ~/project/phoenix_project/
-rw------- 1 labex labex 0 Sep 3 16:03 project_keys.txt

Los permisos del archivo muestran -rw-------, lo que indica lo siguiente:

  • El propietario tiene permisos de lectura y escritura.
  • El grupo no tiene permisos.
  • Los demás usuarios no tienen permisos.

Asignar la propiedad de los recursos del proyecto

El Proyecto Phoenix está dirigido por el equipo de desarrollo de Sarah Chen, cuyo responsable técnico, dev_lead, gestiona el trabajo principal de desarrollo. Este usuario pertenece al grupo developers, con el que ha trabajado durante toda la semana. Debe transferir la propiedad de todos los archivos y directorios del proyecto para garantizar un control de acceso adecuado.

Tareas

  • Cambie el propietario del directorio ~/project/phoenix_project y de todo su contenido al usuario dev_lead.
  • Cambie el grupo propietario del directorio ~/project/phoenix_project y de todo su contenido al grupo developers.

Requisitos

  • El propietario del usuario debe ser dev_lead.
  • El grupo propietario debe ser developers.
  • El cambio de propiedad debe aplicarse de forma recursiva a todos los archivos y subdirectorios dentro de ~/project/phoenix_project.
  • Debe usar el comando chown.

Sugerencias

  • El comando chown puede cambiar el usuario y el grupo al mismo tiempo mediante la sintaxis user:group.
  • Busque una opción del comando chown que permita operar de forma recursiva sobre archivos y directorios. El comando man chown puede ayudarle.
  • Como los archivos pertenecen actualmente a root, deberá usar sudo para cambiar la propiedad.

Ejemplos

Después de completar esta tarea, debería ver algo parecido a lo siguiente:

$ ls -ld ~/project/phoenix_project/
drwxrwxr-x 4 dev_lead developers 53 Sep 3 16:00 ~/project/phoenix_project/

$ ls -l ~/project/phoenix_project/
total 0
drwxrwxr-x 2 dev_lead developers 27 Sep 3 16:00 docs
-rw------- 1 dev_lead developers 0 Sep 3 16:03 project_keys.txt
drwxrwxr-x 2 dev_lead developers 6 Sep 3 16:00 src

A partir de ahora, todos los archivos y directorios deben tener:

  • Usuario: dev_lead
  • Grupo: developers

Proteger el directorio principal del proyecto

Ahora que la propiedad es correcta, debe establecer los permisos base del directorio principal del proyecto, ~/project/phoenix_project. La política es la siguiente: el propietario debe tener control total, el grupo debe poder listar los archivos y entrar en el directorio, y los usuarios externos no deben tener ningún acceso.

Tareas

  • Configure los permisos del directorio ~/project/phoenix_project.

Requisitos

  • El propietario (dev_lead) debe tener permisos de lectura, escritura y ejecución.
  • El grupo (developers) debe tener permisos de lectura y ejecución.
  • Los demás usuarios no deben tener ningún permiso.
  • Use el comando chmod para aplicar estos permisos únicamente al directorio ~/project/phoenix_project (no de forma recursiva).
  • Como el directorio pertenece a dev_lead, puede que necesite usar sudo para cambiar sus permisos.

Sugerencias

  • El permiso de «ejecución» sobre un directorio permite usar cd para entrar en él.
  • Calcule el valor numérico de los permisos para el propietario, el grupo y los demás usuarios.
  • Propietario (rwx) = 4+2+1 = 7
  • Grupo (r-x) = 4+0+1 = 5
  • Otros (---) = 0+0+0 = 0

Ejemplos

Después de completar esta tarea, debería ver algo parecido a lo siguiente:

$ ls -ld ~/project/phoenix_project/
drwxr-x--- 4 dev_lead developers 53 Sep 3 16:00 ~/project/phoenix_project/

Los permisos del directorio muestran drwxr-x---, lo que indica lo siguiente:

  • El propietario (dev_lead) tiene permisos de lectura, escritura y ejecución.
  • El grupo (developers) tiene permisos de lectura y ejecución.
  • Los demás usuarios no tienen permisos.

Esto significa que:

  • dev_lead puede acceder al directorio sin restricciones.
  • Los miembros del grupo developers pueden listar su contenido y entrar en él.
  • Los usuarios externos no tienen acceso al directorio.

Configurar permisos colaborativos para el equipo de desarrollo

Nota: asegúrese de haber completado primero el paso 2, que establece la propiedad de todos los directorios del proyecto, incluido src, como dev_lead:developers. Este paso se basa en esa configuración de propiedad.

El script de configuración añade el usuario labex al grupo developers, pero es posible que el shell actual no detecte automáticamente esa nueva pertenencia al grupo. Antes de probar el acceso en ~/project/phoenix_project/src, ejecute newgrp developers en el terminal. De lo contrario, podría ver errores Permission denied aunque la propiedad y los permisos sean correctos.

El equipo de desarrollo necesita colaborar de forma eficaz dentro del directorio ~/project/phoenix_project/src. Para facilitar esta colaboración, cualquier archivo o directorio nuevo que se cree dentro de src debe pertenecer automáticamente al grupo developers. Este permiso especial solo afecta al grupo propietario. El usuario propietario seguirá siendo la cuenta que cree el archivo, y los permisos de lectura y escritura del archivo seguirán dependiendo del umask de ese usuario.

Tareas

  • Establezca en el directorio ~/project/phoenix_project/src un permiso especial que obligue a todos los archivos y subdirectorios nuevos creados dentro de él a heredar la propiedad del grupo del propio directorio src (que es developers).

Requisitos

  • La solución debe garantizar que los archivos nuevos de ~/project/phoenix_project/src hereden automáticamente el grupo developers.
  • Los permisos finales deben permitir que tanto el propietario como el grupo developers lean, escriban y entren en el directorio src, mientras que los demás usuarios no deben tener acceso.
  • Debe usar el comando chmod para establecer este permiso especial.
  • Puede que necesite usar sudo para configurar los permisos de directorios que pertenecen a otros usuarios.

Sugerencias

  • Este permiso especial se denomina bit «set group ID» o setgid.
  • Puede aplicar el bit setgid mediante notación simbólica (g+s) o numérica.
  • En notación numérica, el bit setgid tiene el valor 2. Se coloca delante de los tres dígitos de permisos estándar (por ejemplo, 2770).

Ejemplos

Después de completar esta tarea, debería ver algo parecido a lo siguiente:

$ ls -ld ~/project/phoenix_project/src/
drwxrws--- 2 dev_lead developers 6 Sep 3 16:00 ~/project/phoenix_project/src/

La s en la posición de ejecución del grupo indica que el bit setgid está establecido y que el grupo tiene permiso de ejecución. A partir de ahora, cuando cree un archivo nuevo:

$ touch ~/project/phoenix_project/src/new_file.txt
$ ls -l ~/project/phoenix_project/src/new_file.txt
-rw-rw-r-- 1 labex developers 0 Apr 15 18:28 /home/labex/project/phoenix_project/src/new_file.txt

Observe que el archivo nuevo pertenece automáticamente al grupo developers, aunque haya iniciado sesión con otro usuario. El propietario del archivo sigue siendo el usuario que lo creó, mientras que el grupo propietario se hereda del directorio src. Así se facilita el trabajo colaborativo del equipo de desarrollo y se mantiene una propiedad de grupo adecuada.

Los permisos indican lo siguiente:

  • El propietario (dev_lead) tiene permisos de lectura, escritura y ejecución.
  • El grupo (developers) tiene permisos de lectura, escritura y ejecución.
  • Los demás usuarios no tienen permisos.
  • La s minúscula en la posición de ejecución del grupo indica que el bit setgid está establecido y que el grupo tiene permiso de ejecución.

Resumen

¡Excelente trabajo, guardián de la fortaleza! Ha construido correctamente una base de seguridad impenetrable para el Proyecto Phoenix. El director de tecnología y Sarah Chen están impresionados por la aplicación integral de las medidas de seguridad. El directorio del proyecto es ahora una fortaleza que protegerá la propiedad intelectual de TechNova y permitirá una colaboración fluida.

A lo largo de este desafío, ha adquirido habilidades esenciales de seguridad en Linux:

  • Creación de archivos y permisos básicos: protegió las claves confidenciales del proyecto mediante controles de permisos precisos.
  • Gestión de la propiedad: asignó correctamente la propiedad al equipo de desarrollo de Sarah y a su responsable técnico.
  • Seguridad de directorios: equilibró el acceso y la seguridad de la infraestructura principal del proyecto.
  • Permisos avanzados: configuró permisos setgid para crear espacios de trabajo colaborativos con herencia automática de la propiedad del grupo.
  • Espacios de trabajo colaborativos: configuró espacios de colaboración del equipo que mantienen la seguridad y permiten trabajar de forma productiva.

Estas habilidades avanzadas de seguridad demuestran que está preparado para asumir responsabilidades de administración de sistemas de nivel sénior. Mañana afrontará su desafío final como guardián de las claves: gestionará el componente humano de la seguridad del Proyecto Phoenix mediante el control del acceso de los usuarios al sistema.

✨ Revisar Solución y Practicar✨ Revisar Solución y Practicar✨ Revisar Solución y Practicar✨ Revisar Solución y Practicar