cierre §3: lección casper aterrizada — clases de servicio declaradas + mapa clase→permiso musl (plan-freebsd T2.1-T2.2 HECHAS)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -65,6 +65,25 @@ convierte en política atestada sin inventar formato. Filosofía de referencia:
|
||||
wawa "capacidad = frontera física, no tabla de permisos" (WAWA.md §4.2). Lado runtime:
|
||||
`pacha-core` / `sandokan-lifecycle`.
|
||||
|
||||
**La lección casper (plan-freebsd T2.1–T2.2).** Capsicum, más puro que Landlock, terminó
|
||||
necesitando demonios auxiliares (`casper`) porque hay una clase — *servicios del mundo* —
|
||||
que no son paths y no caben en ninguna jaula por-fichero. La clausura de build **no
|
||||
contiene esa clase** (builds offline por `--unshare-all`): derivarla a ciegas produce
|
||||
binarios que revientan en el primer `getaddrinfo`. Política runtime = clausura de build
|
||||
**+ clases de servicio declaradas por nombre** (D3 aplica en runtime: no se ensancha en
|
||||
silencio). El mapa clase→permiso en musl cabe aquí porque musl no tiene nsswitch ni
|
||||
dlopen de módulos NSS — la mitad de por qué casper existe no aplica:
|
||||
|
||||
| clase | permiso concreto (musl) |
|
||||
|---|---|
|
||||
| `dns` | leer `/etc/resolv.conf` + `/etc/hosts`, socket UDP/TCP :53 |
|
||||
| `tls-certs` | leer `/etc/ssl/certs/` |
|
||||
| `random` | `getrandom(2)` — ni path necesita |
|
||||
| `locale` / `tz` | leer `/etc/TZ`, `/usr/share/zoneinfo/` (locale va embebido en musl) |
|
||||
| `syslog` | socket unix `/dev/log` |
|
||||
|
||||
La clase viaja como campo de la `ConcesionCapacidad` — sin formato nuevo.
|
||||
|
||||
### 4. CVE por grafo
|
||||
|
||||
`hammer affected CVE-X` exacto (grafo fuente→artefacto→instalado) + frontera mínima de
|
||||
|
||||
Reference in New Issue
Block a user