gioser

sergio/takana

> Una distribución Linux construida con un laboratorio funcional y hermético en el > sótano, y una terminal mutable, clásica y anárquica en el piso de arriba — diseñada > desde el suelo para que una IA programadora entienda, modifique y co…

TOML 1572Shell 203Rust 109Markdown 993728 Definiciones

⎇ 478b3bd3e9611c67abb419420bbb3c61215d366a recipes/linux-pam.toml TOML · 39 líneas · 2.3 KB Historia crudo

fix(privilegio): el bit de los reemplazos de busybox, y el symlink del piso que los tapaba c51c2bf32 · sergio ·

1# Linux-PAM 1.6.1 — biblioteca de autenticación (libpam). La pide `mirada-greeter` vía auth-core →
2# crate `pam` → `pam-sys` (bindgen sobre `security/pam_appl.h`, enlaza libpam). Provee los headers
3# `security/pam_*.h` + libpam.so para el build, y libpam en runtime para el login.
4# Build mínimo: sin docs (evita xmlto/docbook), sin NLS, sin examples. autotools split (como expat).
5name    = "linux-pam"
6version = "1.6.1"
7license = "BSD-2-Clause"
8
9[source]
10tarball = "https://github.com/linux-pam/linux-pam/releases/download/v1.6.1/Linux-PAM-1.6.1.tar.xz"
11sha256  = "f8923c740159052d719dbfc2a2f81942d68dd34fcaf61c706a02c9b80feeef8e"
12
13[build]
14compiler = "gcc"
15target   = "x86_64-linux-musl"
16link     = "dynamic"
17flags    = []
18
19[build.phases]
20configure = './configure --build=$CBUILD --host=$CHOST --prefix=/usr --disable-doc --disable-nls --disable-examples --disable-Werror'
21compile   = 'make'
22install   = 'make DESTDIR=/out install'
23
24[deps]
25build = ["flex", "pkgconf", "make"]
26
27# ── EL BIT DE PRIVILEGIO (SDD 28 §5.11, `[[setuid]]`) ─────────────────────────────────────────────
28# Declarado el 2026-10-15, al medir los artefactos del store: los binarios de abajo salen todos
29# `-rwxr-xr-x` y en cualquier otra distro son setuid. El hueco estaba ANOTADO —el encabezado de
30# `crates/takana-core/src/setuid.rs` los lista uno por uno— y era LATENTE mientras el instalador
31# solo pusiera contrasena de root. Desde que `lib/cuenta.sh` crea una cuenta de persona, dejo de
32# ser latente: hay un humano no-root que los choca a todos.
33#
34# Es metadato (fuera de `hash_inputs`), asi que entra en una receta YA SELLADA sin mover un solo
35# `ArtifactHash` — comprobado con `takana hash --check` antes y despues.
36[[setuid]]
37path = "sbin/unix_chkpwd"
38mode = "4755"
39why  = "es con lo que PAM verifica una contrasena cuando el que pregunta NO es root, y por eso es el mas grave de la lista: sin el bit, `pam_unix` no puede leer /etc/shadow y el greeter de mirada no puede autenticar a NADIE — con la contrasena correcta. El sintoma no menciona el privilegio, dice que la contrasena esta mal. Ver SDD 28 §5.11, que lo anticipo: «fallan a la vez el cambio de contrasena, el mount de usuario, FUSE, ping y —peor— unix_chkpwd»."