Fase 2: 04_sanitize.py - scrubbing de secretos de skills/agentes/plans (10 secretos unicos, gate en verde)

This commit is contained in:
2026-07-29 00:35:59 +00:00
parent 21bc219f31
commit 837f91060f
79 changed files with 10153 additions and 0 deletions
@@ -0,0 +1,84 @@
# Plan: Dockerfile user-agnostic con sudo
## Context
El Dockerfile hardcodea el usuario `aleleba` y no crea la imagen para múltiples usuarios. Cuando se ejecuta con `HOME_USER=aleleba-telus`, el entrypoint.sh intenta sourcear `/home/aleleba-telus/.bashrc` que no existe → "Permission denied".
**Objetivo:** Instalar todo como root en paths globales. Cualquier `HOME_USER` funciona — el entrypoint crea el usuario, le da sudo, y copia la configuración.
## Cambios (solo 3)
### 1. Eliminar creación hardcoded de usuario (líneas 7-11)
Eliminar estas líneas del Dockerfile:
```dockerfile
RUN sudo adduser --disabled-password --gecos "" --uid 1000 ${HOME_USER}
RUN sudo echo "$HOME_USER ALL=(ALL) NOPASSWD:ALL" | sudo tee -a /etc/sudoers.d/nopasswd > /dev/null
USER ${HOME_USER}
WORKDIR /home/${HOME_USER}
```
El entrypoint.sh ya hace todo esto al runtime:
- Crea el usuario si no existe (línea 56)
- Le da sudo (línea 58)
- Copia `/usr/bin/.bashrc` al home del usuario (línea 99)
### 2. Mover `.bashrc` a global (líneas 172-179)
Cambiar todos los `~/.bashrc` a `/usr/bin/.bashrc`:
```bash
# Antes
RUN echo "PATH=..." | sudo tee -a ~/.bashrc
RUN echo "export JAVA_HOME=..." | sudo tee -a ~/.bashrc
RUN echo "export ANDROID_HOME=..." | sudo tee -a ~/.bashrc
RUN echo "export ANDROID_SDK_ROOT=..." | sudo tee -a ~/.bashrc
RUN echo '[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"' | sudo tee -a ~/.bashrc
RUN echo "export EMSDK_QUIET=1" | sudo tee -a ~/.bashrc
RUN echo "source /emsdk/emsdk_env.sh" | sudo tee -a ~/.bashrc
RUN echo 'export PATH="$HOME/.local/bin:$PATH"' | sudo tee -a ~/.bashrc
# Después — todo a /usr/bin/.bashrc
RUN echo "PATH=..." | sudo tee -a /usr/bin/.bashrc
RUN echo "export JAVA_HOME=..." | sudo tee -a /usr/bin/.bashrc
RUN echo "export ANDROID_HOME=..." | sudo tee -a /usr/bin/.bashrc
RUN echo "export ANDROID_SDK_ROOT=..." | sudo tee -a /usr/bin/.bashrc
RUN echo '[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"' | sudo tee -a /usr/bin/.bashrc
RUN echo "export EMSDK_QUIET=1" | sudo tee -a /usr/bin/.bashrc
RUN echo "source /emsdk/emsdk_env.sh" | sudo tee -a /usr/bin/.bashrc
RUN echo 'export PATH="$HOME/.local/bin:$PATH"' | sudo tee -a /usr/bin/.bashrc
```
El entrypoint.sh ya se encarga de copiar `/usr/bin/.bashrc` a cada home.
### 3. Limpiar redundancias (líneas 155-159)
Eliminar comentarios de "already installed" — no aportan valor.
## Todas las herramientas siguen disponibles
Nada cambia en las instalaciones — todo está en paths globales:
| Herramienta | Dónde |
|---|---|
| `code` | `/usr/bin/code` (base image) |
| `docker` | `/usr/bin/docker` |
| `docker-compose` | `/usr/local/bin/docker-compose` |
| `gh` | `/usr/bin/gh` |
| `node`/`npm`/`nvm` | `/usr/local/bin/` + `/root/.nvm` |
| `python3`/`pip` | `/usr/bin/python3` |
| `pandas`/`numpy`/etc | `pip install` global |
| `kubectl` | `/usr/bin/kubectl` |
| `flux` | `/usr/bin/flux` |
| `conan` | `pip install` global |
| `emsdk` | `/emsdk` |
| `android-sdk` | `/opt/android-sdk` |
| `claude` | `/usr/local/bin/claude` |
Los binarios están en `/usr/bin` y `/usr/local/bin` — paths que **cualquier usuario** puede usar. Solo cambia que ya no está restringido al usuario `aleleba`.
## Verificación
1. `docker build` — sin errores
2. `docker run -e HOME_USER=aleleba` — funciona (mismo usuario)
3. `docker run -e HOME_USER=aleleba-telus` — funciona (nuevo usuario, sin permission denied)
4. Dos contenedores con diferente `HOME_USER` coexisten
5. Cada usuario tiene sudo: `sudo apt-get update` funciona
6. Todos los binarios accesibles: `code`, `docker`, `node`, `python3`, `adb`, `emcc`, `claude`, `gh`, `kubectl`