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 1534Shell 199Rust 109Markdown 993713 Definiciones

el mapeo por rango: se intentó cerrar y NO alcanzó — queda dicho dónde para

Se hicieron las dos cosas obvias: rango para sergio en /etc/subuid y /etc/subgid, y los ayudantes
newuidmap/newgidmap en setuid root y además con capacidades (cap_setuid=ep). El error SE MOVIÓ —ya no
dice «no hay rango para sergio»— pero sigue sin mapear: «newuidmap: open of uid_map failed:
Permission denied».

Lo descartado, medido: el setuid SÍ eleva en esta caja (sonda en C compilada con el cc nuevo:
uid=1001 euid=0), / no está nosuid, y el uid_map del proceso es suyo (-rw-r--r-- sergio:sergio). O
sea que no es ni el rango que faltaba ni el bit que no tomaba. La causa de fondo queda SIN
DETERMINAR, y se escribe así en vez de inventarla.

De paso, un detalle que cuesta un rato si no se sabe: `chown` BORRA el bit setuid, así que hay que
chownear primero y ponerlo después. La primera sonda salió sin bit por ese orden y parecía que el
setuid no funcionaba en la caja.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

f32f2f3543f73e223324648102670b6b401bc8ed · por Sergio · (hace 1 mes) · padre ff871f4a0 · ver el árbol en este commit

Delta semántico

Ninguna definición cambió: el cambio es de texto, documentación o datos.

1 archivos · +13 −4

diff --git a/scripts/servidor/claude-caja.sh b/scripts/servidor/claude-caja.sh
index 79934253..de463a28 100755
--- a/scripts/servidor/claude-caja.sh
+++ b/scripts/servidor/claude-caja.sh
@@ -21,10 +21,19 @@
 # setuid** en esta caja (`-r-xr-xr-x`). Resultado: el sandbox del build correría como 1001 y el
 # `install` que escribe `/out` con dueños se cae.
 #
-# Cerrarlo del todo son dos cosas con su precio: darle rango a `sergio` en `/etc/subuid`+`subgid`, y
-# volver setuid a esos dos ayudantes —que es lo normal en cualquier distro, pero es un binario
-# setuid más y, como el `/usr/bin` de acá está HIDRATADO del store, una rehidratación lo revierte—.
-# Es decisión, no trámite.
+# ⚠ SE INTENTÓ CERRARLO Y **NO ALCANZÓ** (2026-09-18). Se hicieron las dos cosas obvias:
+#   · rango para `sergio` en `/etc/subuid` y `/etc/subgid` (165536:65536);
+#   · `newuidmap`/`newgidmap` en setuid root **y además** con capacidades (`cap_setuid=ep`).
+# El error se MOVIÓ —ya no dice «no hay rango para sergio»— pero sigue sin mapear:
+#
+#     ⚠ sin mapeo por rango (newuidmap: open of uid_map failed: Permission denied)
+#
+# Lo que quedó descartado, medido: **el setuid sí eleva en esta caja** —sonda en C compilada con el
+# `cc` nuevo: `uid=1001 euid=0`—, `/` no está `nosuid`, y el `uid_map` del proceso es suyo
+# (`-rw-r--r-- sergio:sergio`). O sea que no es ni el rango que faltaba ni el bit que no tomaba.
+# ⚠ Y un detalle que cuesta un rato si no se sabe: **`chown` BORRA el bit setuid**, así que hay que
+# chownear primero y poner el bit después; la primera sonda salió sin bit por ese orden.
+# La causa de fondo queda SIN DETERMINAR, y se dice así en vez de inventarla.
 #
 # Mientras tanto el camino que sí anda es pedírselo al ANFITRIÓN por ssh:
 #