Document --dangerously-skip-permissions (YOLO) mode in README
Explains why YOLO is reasonable inside this specific container (bind-mount scope, firewall allow-list, non-root user, no host secrets mounted) and flags the residual risks worth knowing: uncommitted work in /workspace, exfiltration via GitHub / Anthropic, no CPU/RAM limits. Key advice: commit before long autonomous runs.
This commit is contained in:
parent
c451a50349
commit
5146798f5c
1 changed files with 46 additions and 1 deletions
47
README.md
47
README.md
|
|
@ -143,6 +143,51 @@ ls .automation_runs/smoke/screens/ # 01_loaded.png, 02_placed.png, ...
|
||||||
Le harness Python détecte automatiquement Linux et enveloppe Godot dans
|
Le harness Python détecte automatiquement Linux et enveloppe Godot dans
|
||||||
`xvfb-run`. Aucune variable d'environnement à positionner.
|
`xvfb-run`. Aucune variable d'environnement à positionner.
|
||||||
|
|
||||||
|
### Mode YOLO (`--dangerously-skip-permissions`)
|
||||||
|
|
||||||
|
Dans le container, tu peux lancer Claude Code sans prompt de confirmation à
|
||||||
|
chaque action :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
claude --dangerously-skip-permissions
|
||||||
|
```
|
||||||
|
|
||||||
|
Avec ce flag Claude **n'affiche plus de "Allow this tool use? (y/n)"** avant
|
||||||
|
chaque appel d'outil (Bash, Edit, Write, etc.). Il agit en continu.
|
||||||
|
|
||||||
|
Pourquoi c'est raisonnable **dans ce container précis** :
|
||||||
|
|
||||||
|
| Frontière | Protection |
|
||||||
|
|-----------|-----------|
|
||||||
|
| Ton OS Windows, `C:\Users\…`, `~/.ssh`, autres projets | Inaccessibles — seul `/workspace` est bind-mounté |
|
||||||
|
| Réseau sortant | `iptables` en DROP par défaut ; allow-list : GitHub, npm, Anthropic, NuGet, Sentry, Statsig. Le reste est REJECTé |
|
||||||
|
| Privilèges | Claude tourne en user `node` (UID 1000), pas root. `sudo` whitelisté **uniquement** pour `init-firewall.sh` |
|
||||||
|
| Secrets | Aucun `~/.ssh`, `~/.aws`, cookies navigateur ou `.env` système montés |
|
||||||
|
|
||||||
|
Risques résiduels à garder en tête :
|
||||||
|
|
||||||
|
- **Perte de travail non committé dans `/workspace`.** Le mount est
|
||||||
|
read-write, donc un `rm -rf` ou un `git reset --hard` écrase tes fichiers
|
||||||
|
locaux. **Commit fréquemment** — c'est la seule garantie contre la perte.
|
||||||
|
- **Exfiltration via les domaines autorisés.** GitHub reste joignable : un
|
||||||
|
Claude compromis pourrait créer un gist public ou pousser sur un fork. Si
|
||||||
|
tu veux réduire ce vecteur, ne fais pas `gh auth login` dans le container,
|
||||||
|
ou utilise un PAT fine-grained limité à ce seul repo.
|
||||||
|
- **Capabilities `NET_ADMIN`/`NET_RAW`.** Actives pour le container (requis
|
||||||
|
par iptables). Exploitables uniquement via root, qui n'est pas accessible
|
||||||
|
à Claude en utilisation normale.
|
||||||
|
- **Pas de limites CPU/RAM.** Un process qui part en vrille peut saturer ta
|
||||||
|
machine jusqu'au prochain `docker stop`. Pas dramatique, juste gênant.
|
||||||
|
|
||||||
|
Ce que tu **ne risques pas** même en YOLO :
|
||||||
|
- Perte de données en dehors du projet
|
||||||
|
- Accès à tes autres dépôts, credentials personnelles, réseau domestique
|
||||||
|
- Modification de ton OS Windows
|
||||||
|
|
||||||
|
En pratique, le scénario à éviter : tu as des modifs locales importantes
|
||||||
|
non-pushées et Claude fait un `git reset --hard HEAD`. Donc : `git commit`
|
||||||
|
avant de lancer un long run autonome.
|
||||||
|
|
||||||
### Personnaliser la version de Godot
|
### Personnaliser la version de Godot
|
||||||
|
|
||||||
L'image par défaut pose Godot 4.6.2-stable. Pour changer, modifier
|
L'image par défaut pose Godot 4.6.2-stable. Pour changer, modifier
|
||||||
|
|
@ -167,7 +212,7 @@ Puis `devcontainer up --workspace-folder . --build-no-cache`.
|
||||||
| Screenshot tout noir | Aucun DISPLAY + pas d'xvfb | Vérifier `which xvfb-run` ; utiliser `godot-xvfb` au lieu de `godot` directement |
|
| Screenshot tout noir | Aucun DISPLAY + pas d'xvfb | Vérifier `which xvfb-run` ; utiliser `godot-xvfb` au lieu de `godot` directement |
|
||||||
| `dotnet restore` bloque | Firewall bloque `api.nuget.org` | Vérifier que `init-firewall.sh` s'est bien exécuté avec les changements récents |
|
| `dotnet restore` bloque | Firewall bloque `api.nuget.org` | Vérifier que `init-firewall.sh` s'est bien exécuté avec les changements récents |
|
||||||
| Build Docker échoue au download de Godot | Réseau restreint côté hôte | Retry, ou installer Godot manuellement et commenter les lignes correspondantes |
|
| Build Docker échoue au download de Godot | Réseau restreint côté hôte | Retry, ou installer Godot manuellement et commenter les lignes correspondantes |
|
||||||
| Claude Code demande `--dangerously-skip-permissions` | Comportement normal en container sandbox | Accepter si tu es conscient du modèle de confiance |
|
| Claude Code demande confirmation à chaque action | Comportement normal hors YOLO | Voir la section *Mode YOLO* ci-dessus |
|
||||||
|
|
||||||
## Licence
|
## Licence
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue