Skip to content

建立 2026-09-15 更新 2026-09-15

沙盒與權限

Codex 能跑指令、改檔案,所以權限要分開看兩層:

  • Sandbox(沙盒):它實際碰得到哪些檔案與網路。
  • Approval(核准):越界或高風險動作要不要先問你。

官方說明:Agent approvals & security進階設定

設定放在 ~/.codex/config.toml(使用者)或受信任專案的 .codex/config.toml。CLI 也可用 /permissions 或啟動旗標覆寫。

沙盒模式

sandbox_mode 能做什麼 適合
read-only 讀檔、分析,不寫入工作區 先摸清專案、問問題
workspace-write 在工作區寫檔與跑指令 一般開發(建議預設)
danger-full-access 幾乎不限制檔案系統 僅限你已另外隔離的環境

workspace-write 預設沒有外連網路。需要下載套件或打 API 時再打開:

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

[sandbox_workspace_write]
network_access = true

即使工作區可寫,有些環境仍會把 .git/ 當保護路徑,所以 git commit 可能還是會跳出沙盒並要求核准。這是刻意的。

核准政策

現行日常用這兩個:

approval_policy 行為
on-request 需要更高權限或越界時暫停問你
never 不再詢問;搭配寬鬆沙盒風險最高

舊的 untrusted 已淘汰,留在設定檔可能讓客戶端無法啟動,請刪掉。非互動的 codex exec 常用 never,但沙盒仍應收斂。

互動開發的實用組合:

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

對應旗標大致是 --sandbox workspace-write --ask-for-approval on-request

Cloud 的兩階段

Cloud 不共用你的本機沙盒,而是:

  1. Setup:可上網,安裝你列出的依賴,此時可用 secrets。
  2. Agent:預設離線;secrets 在這階段前移除。

要讓雲端代理上網,在該 environment 另外開,並限制網域。這跟本機 network_access = true 是兩套開關。

實務建議

  1. 新 repo 先 read-only 問清楚,再切 workspace-write
  2. 不要為了少按幾次核准就開 danger-full-access
  3. 網路預設關閉,用到再開。
  4. 密鑰放環境變數或 Cloud setup secrets,不要寫進 AGENTS.md 或 prompt。
  5. 任務前後靠 Git checkpoint;權限再寬,回退仍要靠版本控制。