codex --dangerously-bypass-approvals-and-sandbox

Chia sẻ bài viết

Mục lục

codex --dangerously-bypass-approvals-and-sandbox (alias --yolo) là cờ chạy Codex CLI ở chế độ tự duyệt mọi action và bỏ qua sandbox isolation. Đây là phiên bản tương đương --dangerously-skip-permissions của Claude Code - nhưng tên dài hơn, có chủ ý, để bạn phải nghĩ kỹ trước khi gõ.

Codex khác Claude và Gemini ở chỗ nào

Codex CLI tách approval và sandbox thành ba setting riêng biệt, không phải một switch:

  • approval_policy: khi nào dừng hỏi user (untrusted / on-request / on-failure / never)
  • sandbox_mode: scope của filesystem isolation (read-only / workspace-write / danger-full-access)
  • sandbox_workspace_write.network_access: có cho phép network egress không

Cờ --dangerously-bypass-approvals-and-sandbox set cùng lúc cả ba về mức tự do tối đa: approval_policy = never, sandbox_mode = danger-full-access, network egress mở.

Cú pháp cơ bản

codex --dangerously-bypass-approvals-and-sandbox "Refactor auth module and run tests"

Hoặc dùng alias:

codex --yolo "Refactor auth module"

Trong script CI nên dùng dạng dài để intent rõ ràng, đỡ người maintain sau lầm tưởng --yolo chỉ là vui đùa.

Headless cho CI/CD

Codex có sub-command codex exec (viết tắt codex e) chuyên cho scripted/non-interactive run:

codex exec --dangerously-bypass-approvals-and-sandbox \
  --cd /workspace \
  -m gpt-5.4 \
  "Apply the migration and commit the result"

Kết hợp --json--output-last-message để CI parse được kết quả:

codex exec --dangerously-bypass-approvals-and-sandbox \
  --json --output-last-message result.txt \
  "Build and deploy"

Bốn cấp độ tự do - chọn cấp đủ dùng

Đừng default nhảy thẳng vào full bypass. Codex có sẵn các mode mềm hơn nhưng vẫn nhanh:

Cấp 1 - --full-auto (recommend cho daily):

codex --full-auto "Run unit tests and fix failures"

Tương đương --ask-for-approval on-request --sandbox workspace-write. Network egress vẫn off mặc định. Tốt cho 90% task.

Cấp 2 - workspace-write có network:

codex -a never -s workspace-write \
  -c 'sandbox_workspace_write.network_access=true' \
  "Update deps and run migrate"

Khi cần npm install hoặc fetch API nhưng vẫn muốn sandbox khoá filesystem ngoài workspace.

Cấp 3 - danger-full-access có approval:

codex -a on-request -s danger-full-access "Deploy to production"

Bỏ sandbox nhưng vẫn prompt action nguy hiểm. Dùng khi cần touch system file ngoài workspace nhưng chưa muốn auto-execute.

Cấp 4 - full bypass:

codex --dangerously-bypass-approvals-and-sandbox "task"

Tự do tối đa. Chỉ dùng trong container/VM isolated.

Config profiles - khỏi gõ flag mỗi lần

Codex đọc ~/.codex/config.toml và support named profile. Setup file này một lần:

approval_policy = "on-request"
sandbox_mode = "workspace-write"

[profiles.networked]
approval_policy = "never"
sandbox_mode = "workspace-write"

[profiles.networked.sandbox_workspace_write]
network_access = true

[profiles.yolo]
approval_policy = "never"
sandbox_mode = "danger-full-access"

Sau đó:

codex -p networked "Update dependencies"
codex -p yolo "Non-interactive build"

Resolution order: CLI flag > profile > config.toml default > built-in default. Nếu setting không có hiệu lực, check xem có lớp cao hơn đang override không.

Permissions menu trong session

Trong session interactive, gõ /permissions để switch giữa Read-only / Auto / Full Access mà không cần restart CLI.

Protected paths - cái sandbox vẫn giữ

Ngay cả trong workspace-write, các path này vẫn read-only protected:

  • /.git - kể cả khi là pointer file gitdir
  • /.agents
  • /.codex

Recursive nên mọi thứ bên dưới các path này cũng readonly. Nếu agent cần ghi .git/config (vd push tag) thì phải dùng danger-full-access hoặc --add-dir.

Network whitelist nếu cần granular

Codex hỗ trợ DNS-based allowlist cho egress trong workspace-write:

[sandbox_workspace_write]
network_access = true
allowed_hosts = ["registry.npmjs.org", "api.github.com", "*.amazonaws.com"]

Codex check DNS lookup trước khi cho phép connect, block các hostname resolve về non-public IP. Không bullet-proof với DNS rebinding nhưng đủ để chặn data exfil cơ bản.

Bug đã biết

1. Trust prompt vẫn xuất hiện (v0.114.0+): kể cả với --dangerously-bypass-approvals-and-sandbox, Codex vẫn hỏi "Do you trust the contents of this directory?" khi chạy ở directory mới. Workaround: pre-register directory vào trust list, hoặc downgrade về v0.112.0.

2. app-server ignore bypass flag (v0.112.0): khi chạy codex app-server thay vì codex exec, tool command vẫn run trong read-only sandbox dù app-server start với bypass flag. Bug được track ở issue #14068.

3. WSL2 + drvfs path: nếu working directory ở /mnt/c/..., sandbox có thể intermittently re-enter mid-session. Workaround: copy project sang native Linux fs (~/workspace/...) hoặc dùng dev container.

Devcontainer chuẩn của OpenAI

OpenAI ship sẵn devcontainer config tại github.com/openai/codex/tree/main/.devcontainer. Bao gồm:

  • Codex CLI pre-installed
  • Bubblewrap cho sandbox layer
  • Firewall rule whitelist outbound (npm, GitHub, OpenAI API)
  • Default-deny tất cả egress còn lại

Trong devcontainer này, bạn có thể chạy:

codex --dangerously-bypass-approvals-and-sandbox "task"

Tương đối an toàn vì Docker container đã làm việc isolation rồi - Codex không cần tạo thêm sandbox layer thứ hai.

Cảnh báo bảo mật từ chính OpenAI

OpenAI document ghi rõ: "Devcontainer cung cấp substantial protection nhưng không ngăn được mọi attack. Nếu chạy Codex với --dangerously-bypass-approvals-and-sandbox bên trong container, một malicious project vẫn có thể exfiltrate bất cứ thứ gì available trong devcontainer, bao gồm Codex credential."

Nghĩa là: container không phải end-of-story. Đừng mount ~/.codex/auth.json, .ssh/, .aws/, browser keyring vào container chạy YOLO.

Recommendation

Daily work: --full-auto. Đủ nhanh, vẫn có sandbox.

Networked task (npm install, fetch API): -a never -s workspace-write -c 'sandbox_workspace_write.network_access=true'.

Unattended automation trong isolated CI: --dangerously-bypass-approvals-and-sandbox.

Đừng dùng full bypass làm default. Codex tách 3 trục approval/sandbox/network ra để bạn tune được risk - khai thác nó.

Tóm lại

So với Claude và Gemini, Codex có architecture an toàn hơn vì sandbox bật mặc định và 3 trục độc lập. Cờ --dangerously-bypass-approvals-and-sandbox chỉ là last resort, không phải first choice. Container + git checkpoint + profile config = workflow ổn định. Cứ --full-auto cho 90% task, nâng cấp lên bypass khi thật sự cần và môi trường đã đủ isolated.

2009
15+ năm vận hành liên tục
10+
tập đoàn lớn tin dùng
100+
doanh nghiệp SMB Việt
30 ngày
đổi key lỗi miễn phí
Phần mềm bản quyền chính hãng chúng tôi cung cấp
Bản quyền chính hãng Hóa đơn VAT đầy đủ Đổi key lỗi 30 ngày Vận hành từ 2009 MST 0200994870 Hotline 0225.999.6666