-->

Permisos de acceso

Los permisos de acceso son mecanismos de seguridad implementados por el subsistema de archivos del sistema operativo para regular qué usuarios y procesos tienen autorización para realizar operaciones específicas sobre un archivo o directorio (como leer su contenido, modificarlo o ejecutarlo).

Para un profesional técnico, dominar la gestión de permisos es indispensable para garantizar el principio de mínimo privilegio, proteger la confidencialidad de los datos corporativos frente a accesos indebidos y evitar que software malicioso altere ficheros críticos del sistema.

Modelos Principales de Control de Acceso

Los sistemas operativos modernos utilizan diferentes paradigmas matemáticos y estructurales para evaluar y hacer cumplir las políticas de seguridad:

Modelo de Permisos Descripción y Funcionamiento Ámbito de Aplicación
Modelo POSIX (Tradicional UNIX) Divide a los sujetos en tres categorías estrictas: Propietario (User), Grupo (Group) y Otros (Others). Asigna permisos básicos de Lectura (r), Escritura (w) y Ejecución (x). Sistemas Linux, UNIX y macOS.
Listas de Control de Acceso (ACL - Access Control Lists) Evolución avanzada que permite asociar a un archivo una lista detallada de usuarios y grupos específicos con permisos granulares independientes, superando la rigidez del modelo clásico. Sistemas de archivos modernos (NTFS en Windows, EXT4, XFS).
Control de Acceso Basado en Roles (RBAC) Asigna permisos a roles o funciones laborales dentro de una organización (ej. Administrador, Operador, Auditor), y los usuarios heredan dichos privilegios según su puesto. Entornos corporativos, bases de datos y sistemas en red.

El Sistema de Permisos en Entornos POSIX (Linux/UNIX)

En los sistemas operativos basados en POSIX, cada archivo y directorio cuenta con un conjunto de bits de permisos que definen con exactitud matemática el nivel de acceso:

  • Lectura (Read - r / valor 4): Permite abrir y leer el contenido de un archivo o listar los elementos contenidos dentro de un directorio.
  • Escritura (Write - w / valor 2): Permite modificar, sobrescribir o borrar el archivo, así como crear o eliminar archivos dentro de un directorio.
  • Ejecución (Execute - x / valor 1): Permite ejecutar un archivo como programa o script, o atravesar (entrar) un directorio para acceder a sus rutas internas.
  • Representación Octal: Los permisos se calculan sumando los valores numéricos de cada categoría (ej. 755 significa que el propietario tiene permisos de lectura, escritura y ejecución ($4+2+1=7$), mientras que el grupo y los demás solo lectura y ejecución ($4+1=5$)).

Analogía: Imagina las taquillas de seguridad de una cámara acorazada bancaria. El propietario es el titular de la taquilla, que tiene la llave maestra para abrirla, cambiar su contenido o destruirla. El grupo es un comité de compañeros autorizado para revisar algunos informes en días señalados, y otros representa al público general, que tiene prohibido el paso por completo. Las letras y números de permisos actúan como los cerrojos físicos que limitan exactamente qué puede tocar cada persona según su categoría.

Actividad práctica

Objetivo:

Auditar, modificar y comprobar los permisos de acceso de un archivo o directorio mediante la terminal del sistema operativo.

Tareas:

  1. Abre la terminal de comandos (PowerShell en Windows o Terminal en Linux/macOS).
  2. Crea un archivo de prueba y lista sus atributos de seguridad detallados utilizando ls -l (Linux) o el comando equivalente de gestión de seguridad en Windows.
  3. Modifica los permisos del archivo utilizando la representación octal (ej. aplicando chmod 644 o chmod 700) y comprueba cómo restringen el acceso a otros usuarios.
  4. Reflexiona sobre qué riesgos de seguridad implica otorgar permisos totales de ejecución o escritura (como el famoso chmod 777) a archivos o directorios compartidos en un servidor.

Preguntas de reflexión:

  1. ¿Por qué el modelo de permisos POSIX tradicional (basado en Propietario, Grupo y Otros) puede resultar insuficiente en entornos corporativos complejos con decenas de usuarios diferentes?
  2. ¿Qué diferencia técnica existe entre otorgar permiso de lectura (r) y permiso de ejecución (x) sobre un directorio en un sistema Linux?
  3. ¿Cómo funcionan las Listas de Control de Acceso (ACL) para superar las limitaciones de los permisos estándar de archivos?
  4. ¿Qué significa a nivel de seguridad aplicar una máscara de permisos restrictiva (como umask 027) al crear nuevos archivos en el sistema?
  5. ¿Por qué asignar permisos de escritura o ejecución universales sin control a directorios públicos del sistema expone gravemente la máquina a ataques de escalada de privilegios?
Haz clic aquí para ver las soluciones y explicaciones

1. ¿Por qué el modelo de permisos POSIX tradicional (basado en Propietario, Grupo y Otros) puede resultar insuficiente en entornos corporativos complejos con decenas de usuarios diferentes?

Porque solo permite definir reglas para una sola categoría de grupo y otra para el resto del mundo. Si un archivo necesita ser leído por el usuario A, modificado por el usuario B y totalmente oculto para el usuario C, el modelo clásico no puede expresar esa combinación granular sin crear grupos artificiales complejos para cada caso.


2. ¿Qué diferencia técnica existe entre otorgar permiso de lectura (r) y permiso de ejecución (x) sobre un directorio en un sistema Linux?

El permiso de lectura (r) permite listar los nombres de los archivos que contiene el directorio (hacer un ls). El permiso de ejecución (x), en cambio, permite atravesar o entrar en el directorio (hacer un cd) para acceder a archivos internos de los cuales ya se conoce la ruta exacta, incluso si no se tiene permiso para listar todo el contenido de la carpeta.


3. ¿Cómo funcionan las Listas de Control de Acceso (ACL) para superar las limitaciones de los permisos estándar de archivos?

Las ACL permiten añadir entradas adicionales asociadas a usuarios o grupos específicos directamente en los metadatos del archivo, otorgándoles privilegios personalizados (ej. lectura y escritura) de forma independiente al propietario y al grupo principal, lo que aporta una flexibilidad total en la gestión de la seguridad.


4. ¿Qué significa a nivel de seguridad aplicar una máscara de permisos restrictiva (como umask 027) al crear nuevos archivos en el sistema?

El umask actúa restando permisos por defecto a los nuevos archivos o carpetas que se crean. Con una máscara 027, se asegura que los archivos recién creados no tengan permisos de escritura para el grupo y carezcan de cualquier permiso (lectura, escritura o ejecución) para el resto de usuarios externos, reforzando la privacidad por defecto.


5. ¿Por qué asignar permisos de escritura o ejecución universales sin control a directorios públicos del sistema expone gravemente la máquina a ataques de escalada de privilegios?

Porque si cualquier usuario con pocos privilegios puede escribir o modificar archivos dentro de una carpeta compartida del sistema (como directorios temporales mal protegidos), un atacante podría reemplazar binarios legítimos o scripts de inicio ejecutados por el administrador (root), logrando que el sistema ejecute código malicioso con privilegios elevados y comprometiendo toda la seguridad de la red.