Ce face Sandbox-ul Codex și codex sandbox
Local, Codex folosește un sandbox impus de sistemul de operare, nu containere Docker: Seatbelt (sandbox-exec) pe macOS, bwrap plus seccomp pe Linux și MXC pe Windows, cu elevated și unelevated ca variante de rezervă. În WSL2 se folosește sandbox-ul Linux; WSL1 nu mai este suportat din versiunea 0.115.
Modul se alege cu --sandbox (-s) sau cu sandbox_mode în config.toml. În modul implicit workspace-write, accesul la rețea este oprit până îl activezi cu [sandbox_workspace_write] network_access = true, iar căi ca .git, .agents, .codex și .aws rămân protejate. danger-full-access dezactivează sandbox-ul complet.
codex sandbox rulează o comandă oarecare sub aceleași politici pe care Codex le folosește intern, ca să vezi ce se întâmplă. Subcomenzile sunt macos, linux și windows (cu aliasuri precum seatbelt și landlock); comanda de testat vine după --. Dacă sandbox-ul Linux nu merge într-un container Docker, documentația recomandă izolarea din container și --sandbox danger-full-access în interiorul lui.
Sintaxă și opțiuni
| Opțiune / Parametru | Descriere |
|---|---|
read-only |
Comenzile pot doar citi fișiere. |
workspace-write |
Scriere doar în workspace și în directoarele adăugate cu --add-dir; rețea oprită implicit. |
danger-full-access |
Fără sandbox: acces complet la sistem. |
sandbox_mode (config.toml) |
Modul implicit salvat în configurație. |
codex sandbox --permission-profile, -P <nume> |
Aplică un profil de permisiuni cu nume. |
codex sandbox --profile, -p <nume> |
Adaugă $CODEX_HOME/<nume>.config.toml peste configurația de bază. |
codex sandbox --cd, -C <dir> |
Directorul de lucru; cere --permission-profile. |
codex sandbox --include-managed-config |
Include cerințele gestionate la rezolvarea profilului; cere --permission-profile. |
--allow-unix-socket <cale> (macOS) |
Permite socketuri Unix sub calea dată (repetabil). |
--log-denials (macOS) |
Capturează refuzurile sandbox-ului cu log stream și le afișează la final. |
codex sandbox -c cheie=valoare |
Suprascrieri de configurație pentru rularea în sandbox. |
Exemple practice
Exemplul 1: Rulare în CI cu scriere doar în proiect
codex exec --sandbox workspace-write "rulează npm test și repară erorile"
Exemplul 2: Rețea permisă în workspace-write
# ~/.codex/config.toml
sandbox_mode = "workspace-write"
[sandbox_workspace_write]
network_access = true
Exemplul 3: Testarea unei comenzi în sandbox-ul macOS
codex sandbox macos --log-denials -- npm test
Greșeli frecvente și bune practici
- Folosești
danger-full-accesssau--yolope calculatorul personal, cu un repository necunoscut. - Treci la
danger-full-accessdoar ca să scrii într-un director în plus; folosește--add-dir.