3.
Autorización
Definición: Una vez autenticado el usuario, la autorización determina qué recursos
(archivos, procesos, dispositivos) puede usar y qué operaciones (leer, escribir, ejecutar,
eliminar) puede realizar. Responde a "¿Qué puedes hacer?".
Modelos comunes (basados en Cap. 14 "Protección"):
● ACL (Access Control Lists): Lista por objeto (archivo/directorio) que especifica
permisos por usuario o grupo. Ejemplo clásico de Unix: rwxr-xr-x
(dueño/grupo/otros). Windows usa ACL más granulares con SIDs (Security
Identifiers). Ventaja: fácil de implementar por objeto. Desventaja: gestión compleja
en sistemas grandes (administración por objeto).
● RBAC (Role-Based Access Control): Permisos asignados a roles (no
directamente a usuarios). Un usuario hereda permisos del rol. Escalable para
organizaciones.
● ABAC (Attribute-Based Access Control): Decisiones dinámicas basadas en
atributos (usuario: rol=estudiante, ubicación=universidad, hora=diurna; recurso:
sensibilidad=alta). Muy flexible para entornos nube/móviles.
Otros: DAC (Discretionary - dueño decide), MAC (Mandatory - políticas centralizadas, ej.
SELinux), RBAC híbrido.
Del libro: La matriz de acceso (dominio × objeto) es el modelo general. Las listas de acceso
implementan columnas; capacidades implementan filas. En Windows/Linux se usan ACL; el
principio de mínimo privilegio dicta conceder solo lo necesario.
Ejemplo práctico:
En Linux:
1. Crea usuarios: sudo useradd -m estudiante; sudo useradd -m docente.
2. Crea carpeta: mkdir /proyecto_academico.
3. Asigna permisos diferenciados:
text
sudo chown docente:docente /proyecto_academico
sudo chmod 750 /proyecto_academico # Docente: rwx; Grupo: rx; Otros: ---
4. sudo usermod -aG docente estudiante # Estudiante en grupo
○ Docente puede leer/escribir/ejecutar.
○ Estudiante puede leer pero no modificar (si se ajusta grupo).
○ Prueba: su - estudiante e intenta touch archivo → denegado si permisos
correctos.
En Windows (PowerShell):
text
New-Item -Path C:\Recursos -ItemType Directory
$acl = Get-Acl C:\Recursos
$rule = New-Object
[Link]("Estudiante","Read","Allow")
$[Link]($rule)
Set-Acl C:\Recursos $acl
Prueba accesos con cuentas diferentes y compara con icacls.
Ventajas/desventajas y mejores prácticas: ACL simples pero difíciles de escalar;
RBAC/ABAC mejor para grandes sistemas. Siempre aplica principio de mínimo privilegio y
audita cambios (logs). En SO modernos combina con capabilities (Linux) o AppLocker
(Windows). (aprox. 3500 caracteres).
4. RBAC (Role-Based Access Control)
Concepto: RBAC asigna permisos a roles organizacionales en lugar de usuarios
individuales. Un usuario se asigna a uno o más roles y hereda sus permisos. Es el modelo
más usado en empresas (estándar ANSI INCITS 359-2004).
Componentes clave:
● Roles: Conjuntos de permisos (ej. "Administrador", "Docente", "Estudiante").
● Usuarios: Asignados a roles (muchos usuarios por rol).
● Sesiones: Un usuario activa un subconjunto de sus roles en una sesión.
● Jerarquías: Roles heredan de otros (ej. "Profesor" hereda de "Docente").
Ventajas (del libro y práctica):
● Escalabilidad: Administrar roles (pocos) es más fácil que permisos por usuario
(miles).
● Menor error humano: Menos riesgo de otorgar permisos excesivos.
● Claridad en políticas: Roles reflejan estructura organizacional (principio de
separación de deberes).
● Auditoría sencilla: Revisar qué rol permite qué acción.
Desventajas: Roles estáticos pueden no capturar atributos dinámicos (hora, ubicación) →
complemento con ABAC.
Ejemplo:
● Rol Administrador: Acceso total (todos los archivos, procesos, configuración).
● Rol Docente: Lectura/escritura en materiales académicos, ejecución de
herramientas educativas.
● Rol Estudiante: Lectura limitada a materiales compartidos, sin modificación de
calificaciones.
Práctica sugerida (en servidor Linux con sudo):
1. Instala herramientas si es necesario (en sistemas modernos usa pam o herramientas
como ansible para RBAC).
2. Usa grupos como aproximación simple:
text
sudo groupadd admin
sudo groupadd docentes
sudo usermod -aG admin root_user
3. sudo usermod -aG docentes profesor1
4. Configura carpetas:
text
mkdir -p /recursos/academicos /recursos/calificaciones
chgrp docentes /recursos/academicos
chmod 770 /recursos/academicos # Solo dueños y grupo
5. chgrp admin /recursos/calificaciones
6. Prueba accesos:
○ Como profesor1 (rol docente): puede leer/escribir académicos.
○ Como estudiante: solo lectura si se añade a grupo lector.
○ Usa sudo -u profesor1 y verifica con groups.
En entornos reales (Active Directory, FreeIPA, Okta) configura roles con GUI o políticas.
Prueba escalada: un estudiante sin rol adecuado no debe modificar calificaciones. Registra
logs (auditd en Linux) para auditoría.
RBAC alinea perfectamente con el principio de mínimo privilegio del Cap. 14. En la nube se
combina con IAM policies.