Gestionar permisos y propiedad de archivos estándar

LinuxBeginner
Practicar Ahora

Introducción

Los permisos en Linux determinan quién puede leer, modificar o ejecutar archivos. Las tareas del RHCSA suelen requerir que inspecciones cadenas de permisos, establezcas modos numéricos y simbólicos, cambies la propiedad y configures directorios para que los archivos sean utilizables por el grupo correspondiente.

En este laboratorio, trabajarás directamente dentro de /home/labex/project. Inspeccionarás archivos preparados, aplicarás modos de archivo estándar con chmod, habilitarás un script de forma segura, tomarás posesión de un archivo propiedad de root y configurarás un directorio compartido con setgid.

Inspeccionar los campos de permisos de archivo

En este paso, inspeccionarás los permisos antes de modificarlos. El primer campo en la salida de ls -l muestra el tipo de archivo y los permisos; los campos de propietario y grupo muestran quién controla el archivo.

Muévete al directorio del proyecto de LabEx.

cd /home/labex/project

Lista el árbol de archivos del laboratorio.

ls -l permissions-lab

Inspecciona los archivos de configuración preparados. El modo, el propietario y el grupo son visibles en el listado detallado.

ls -l permissions-lab/configs

Usa stat para una vista compacta de un archivo. %a imprime el modo numérico, %U imprime el nombre del propietario y %G imprime el nombre del grupo.

stat -c '%n %a %U %G' permissions-lab/configs/private.conf

Inspecciona el archivo de transferencia propiedad de root. Observa que el propietario y el grupo son actualmente root.

ls -l permissions-lab/shared/handoff.txt

Establecer modos de archivo con chmod numérico

En este paso, utilizarás modos numéricos con chmod. Los tres dígitos describen los permisos del usuario, grupo y otros. Por ejemplo, 600 significa solo lectura/escritura para el usuario, y 644 significa lectura/escritura para el usuario mientras que el grupo y otros solo pueden leer.

Comienza desde el directorio del proyecto.

cd /home/labex/project

Haz que private.conf sea legible y escribible solo por su propietario. Esto es adecuado para un archivo que contiene configuraciones sensibles.

chmod 600 permissions-lab/configs/private.conf

Haz que readme.txt sea legible por todos, pero escribible solo por el propietario.

chmod 644 permissions-lab/configs/readme.txt

Inspecciona los modos con stat.

stat -c '%n %a' permissions-lab/configs/private.conf permissions-lab/configs/readme.txt

Deberías ver 600 para private.conf y 644 para readme.txt.

Habilitar la ejecución de scripts con chmod simbólico

En este paso, utilizarás permisos simbólicos. El modo simbólico te permite añadir o eliminar un permiso específico sin tener que reescribir todo el modo numérico.

Comienza desde el directorio del proyecto.

cd /home/labex/project

Inspecciona el script antes de cambiarlo. Debería ser legible pero no ejecutable.

ls -l permissions-lab/scripts/check-inventory.sh

Añade permiso de ejecución para el usuario y el grupo. En u+x,g+x, u significa usuario, g significa grupo y +x significa añadir permiso de ejecución.

chmod u+x,g+x permissions-lab/scripts/check-inventory.sh

Ejecuta el script desde su ruta.

permissions-lab/scripts/check-inventory.sh

Salida esperada:

inventory check ok

Inspecciona el modo final. Ahora debería incluir los bits de ejecución para el usuario y el grupo.

stat -c '%n %a' permissions-lab/scripts/check-inventory.sh

Cambiar la propiedad de un archivo de transferencia

En este paso, tomarás posesión de un archivo propiedad de root usando sudo chown. Cambiar la propiedad generalmente requiere privilegios administrativos, por lo que sudo es apropiado para este archivo de práctica.

Comienza desde el directorio del proyecto.

cd /home/labex/project

Inspecciona el propietario y grupo actuales. El archivo comienza como root:root.

stat -c '%n %U:%G %a' permissions-lab/shared/handoff.txt

Cambia el propietario y el grupo a labex:labex. El formato usuario:grupo establece ambos campos en un solo comando.

sudo chown labex:labex permissions-lab/shared/handoff.txt

Restringe el archivo a lectura/escritura para el propietario y acceso de lectura para el grupo.

chmod 640 permissions-lab/shared/handoff.txt

Añade una línea operativa ahora que labex es dueño del archivo.

printf 'Handled by labex after ownership update.\n' >> permissions-lab/shared/handoff.txt

Inspecciona el propietario, grupo, modo y contenido finales.

stat -c '%n %U:%G %a' permissions-lab/shared/handoff.txt
cat permissions-lab/shared/handoff.txt

Configurar un directorio compartido con setgid

En este paso, configurarás un directorio compartido. Los directorios necesitan permiso de ejecución para poder entrar y buscar en ellos. El bit setgid en un directorio hace que los nuevos archivos hereden el grupo del directorio, lo que ayuda a los equipos a mantener el contenido compartido agrupado de manera consistente.

Comienza desde el directorio del proyecto.

cd /home/labex/project

Inspecciona el modo actual del directorio.

stat -c '%n %a %U:%G' permissions-lab/teamdrop

Establece el modo del directorio en 2775. El 2 inicial habilita setgid, 775 otorga acceso completo al propietario y al grupo, y otorga acceso de lectura/ejecución a otros.

chmod 2775 permissions-lab/teamdrop

Crea un archivo dentro del directorio compartido.

printf 'team handoff ready\n' > permissions-lab/teamdrop/status.txt

Establece el modo del archivo para que el propietario y el grupo puedan leerlo y escribirlo.

chmod 664 permissions-lab/teamdrop/status.txt

Inspecciona el directorio y el nuevo archivo.

stat -c '%n %a %U:%G' permissions-lab/teamdrop permissions-lab/teamdrop/status.txt
cat permissions-lab/teamdrop/status.txt

Resumen

Has practicado los permisos y la propiedad estándar de Linux para la preparación del RHCSA. Has inspeccionado campos de permisos, aplicado modos de archivo numéricos, utilizado chmod simbólico para habilitar la ejecución de scripts, cambiado la propiedad con sudo chown, establecido modos de archivo seguros y configurado un directorio compartido con setgid para que los nuevos archivos hereden el grupo deseado.