本文根據 OpenAI 官方 Codex 文檔(learn.chatgpt.com)的《Permissions》《Sandbox》《Agent approvals & security》《Auto-review》《Windows sandbox》和幫助中心整理,資料核對於 2026-10-07。適用於 ChatGPT 桌面 App 裏的 Codex、Codex CLI 和 IDE 插件這些本地運行方式。
適用於誰
- 不知道 Codex 為什麼老是彈窗問「能不能運行這個命令」,想調整的人;
- 想「權限全開」讓 Codex 自己跑完,又擔心出事的人;
- 遇到「沙箱啟動失敗」「Windows 錯誤 1385」「approval_policy = untrusted 不再支持」這類報錯的人。
結論先說
- 兩個開關一起決定 Codex 能做什麼:沙箱(sandbox) 管它在技術上能碰哪些文件、能不能聯網;審批(approval) 管它什麼時候必須停下來問你。改審批的人選不會擴大沙箱。
- 預設就夠用:大多數工作用 Ask for approval(請求批准)——在當前工作區裏自由讀寫、跑命令,越界(改工作區外的文件、聯網)才問你。對應配置是
sandbox_mode = "workspace-write"+approval_policy = "on-request"。 - 嫌彈窗多:開 Approve for me(設定裏叫 Auto-review),由另一個審查智能體替你判斷要不要放行,沙箱邊界不變。
- 權限全開(Full access /
--yolo)= 沒有沙箱 + 從不詢問。官方標為「不推薦」,只建議在專門的沙箱虛擬機裏用。需要更多權限時,優先用「加可寫目錄」「規則(rules)」這種精確放行。 - 沙箱起不來:Linux 先裝
bubblewrap;Windows 優先用elevated沙箱,起不來時臨時改unelevated。
一、三種權限模式
| 模式 | 沙箱 | 何時詢問 | 適合 |
|---|---|---|---|
| Ask for approval | 工作區可寫 | 越過工作區邊界時問你 | 大多數日常開發(預設) |
| Approve for me(Auto-review) | 同上,不變 | 越界請求交給審查智能體判斷 | 長任務、不想一直盯着 |
| Full access | 無沙箱 | 從不詢問 | 一次性的隔離環境、專用虛擬機 |
在哪改:
- 桌面 App / IDE 插件:輸入框下方的權限控件。第一次用桌面 App 時,Approve for me 和 Full access 預設不在選單裏,需要到 Settings → General → Permissions 把它們打開;打開只是讓它出現在選單裏,不會自動切換。
- CLI:會話裏輸入
/permissions,在 Auto、Read Only 等預設之間切換;如果配置了自定義權限配置(permission profiles),也會出現在這裏。 - 公司管理的裝置上,被管理員禁止的模式會顯示為灰色。
Codex 第一次打開一個文件夾時:如果是 Git 管理的文件夾,推薦 Auto(工作區可寫 + 按需詢問);不是 Git 文件夾則推薦只讀。有時會先以只讀啟動,直到你明確信任這個目錄。輸入 /status 可以看到當前哪些目錄算「工作區」。
二、用 config.toml 設預設值
配置文件在 ~/.codex/config.toml(桌面 App、CLI、IDE 共用)。三個關鍵項:
沙箱模式 sandbox_mode
read-only:只能看文件,改文件、跑命令都要先批准;workspace-write:可以讀、在工作區內修改、跑常規命令(預設的低打擾模式);danger-full-access:沒有沙箱,取消文件和網絡邊界。
審批策略 approval_policy
on-request:在沙箱裏自由幹活,要越界時詢問;never:從不詢問(配合什麼沙箱由你決定)。
誰來審批 approvals_reviewer:user(你,預設)或 auto_review(審查智能體)。
常用組合(來自官方文檔):
| 意圖 | 命令行參數 / 配置 | 效果 |
|---|---|---|
| Auto(預設預設) | 不加參數,或 --sandbox workspace-write --ask-for-approval on-request | 工作區內讀寫、跑命令;工作區外改動和聯網要批准 |
| 只讀瀏覽 | --sandbox read-only --ask-for-approval on-request | 只讀,越界可詢問 |
| 只讀、無人值守(CI) | --sandbox read-only --ask-for-approval never | 只讀,從不詢問 |
| 自動審查 | 在 Auto 基礎上加 -c approvals_reviewer=auto_review | 邊界同 Auto,越界請求交審查智能體 |
| 危險的完全訪問 | --dangerously-bypass-approvals-and-sandbox(別名 --yolo) | 無沙箱、無審批(不推薦) |
推薦的預設配置:
toml
sandbox_mode = "workspace-write"
approval_policy = "on-request"
approvals_reviewer = "user" # 想少彈窗可改成 "auto_review"
[sandbox_workspace_write]
network_access = false # 預設不聯網,確實需要再改成 true
writable_roots = ["/Users/YOU/.pyenv/shims"] # 額外允許寫入的目錄(示例)
幾點細節:
- 預設不聯網:
workspace-write下命令預設沒有網絡,要聯網就把network_access設為true。還可以開network_proxy功能,只放行指定域名。 - 受保護路徑:即使在可寫的工作區裏,
.git、.agents、.codex目錄也是隻讀的。 - 非交互運行:
codex exec --sandbox workspace-write;舊的codex exec --full-auto寫法仍兼容但已棄用,會打印警告。 - 可以把一套設定存成 profile 文件,用
codex --profile 名字調用。
三、權限全開的風險,先看這一節
把 sandbox_mode = "danger-full-access" 和 approval_policy = "never" 放在一起,或者加 --yolo,就是「完全訪問」。官方文檔對它的提醒可以歸納為:
- 不再侷限於項目目錄,Codex 可能執行意料之外的破壞性操作,導致數據丟失;
- 網絡邊界也沒了;而且在完全訪問下,網頁搜尋預設改為實時抓取網頁,被網頁裏的「提示注入」誘導去執行不可信指令的風險更高;
- 官方 CLI 建議:除非你在專門的沙箱虛擬機裏,否則不要用
--dangerously-bypass-approvals-and-sandbox。
更穩妥的替代做法:
- 需要寫別的目錄 → 用
--add-dir或writable_roots加可寫目錄,而不是直接danger-full-access; - 某個命令總要越界(比如
gh pr view)→ 寫一條規則(rules),對這個命令前綴單獨設「允許 / 詢問 / 禁止」,規則文件放在~/.codex/rules/default.rules(規則功能目前為實驗性); - 不想被打擾 → 用 Approve for me,或在沙箱內把審批設為
never,讓 Codex 在邊界內自己想辦法; - 不管哪種模式,開工前先 Git 提交一次,出問題能回退。
關於自動審查:它只審查本來就需要批准的動作(越界命令、被攔的網絡請求、有副作用的 MCP / 應用工具調用等),會攔截外傳私隱數據和密鑰、試探憑據、長期削弱安全設定、高風險不可逆操作這類行為;審查失敗時預設不放行。幫助中心寫明用 ChatGPT 帳號登入時,自動審查的安全檢查免費、不計入額度(開發者文檔另提到它會額外調用模型,以實際用量頁面為準)。
四、沙箱報錯與啟動失敗
Linux / WSL2:提示缺少 bwrap 或無法創建用戶命名空間
先用包管理器裝 bubblewrap(Ubuntu / Debian:sudo apt install bubblewrap;Fedora:sudo dnf install bubblewrap)。Ubuntu 24.04 裝完仍提示無法創建用戶命名空間時,官方給出的辦法是加載 bwrap-userns-restrict 這個 AppArmor 配置;Ubuntu 25.04 直接裝包一般就行。macOS 用系統自帶的 Seatbelt,開箱即用。
Windows:elevated 沙箱設定失敗
Windows 原生(PowerShell)有兩種沙箱:
toml
[windows]
sandbox = "elevated" # 推薦,更強
# sandbox = "unelevated" # 備用:沒有管理員權限或 elevated 設定失敗時
elevated 設定失敗的常見原因:UAC / 管理員彈窗被拒絕、機器不允許創建本地用戶或組、不允許改防火牆規則、組策略不給沙箱用戶登入權限。處理順序:
- 重新執行 elevated 設定並同意管理員彈窗(CLI 裏可以用
/setup-default-sandbox); - 公司電腦被策略攔住的,請 IT 確認是否允許上面幾項;
- 還不行就先改
unelevated繼續工作——它仍有文件邊界,但網絡隔離更弱,不是長期方案。
其他 Windows 報錯:
- 錯誤 1385:Windows 拒絕了沙箱用戶需要的登入類型,通常是組策略問題;找 IT,臨時可用
unelevated,並提供CODEX_HOME/.sandbox/sandbox.log(不要發.sandbox-secrets目錄裏的內容)。 - 提示有文件夾對 Everyone 可寫:這些文件夾權限太寬,沙箱保護不全,去掉 Everyone 的寫權限後重啟 Codex。
- 命令讀不到某個目錄:在會話裏輸入
/sandbox-add-read-dir C:\絕對路徑,本次會話內就能讀。 - 以前好好的,突然不行:常見於挪動了倉庫、改了系統權限或組策略之後;重啟 Codex → 重新執行 elevated 設定 → 臨時用 unelevated。
- 系統版本:官方推薦 Windows 11;較新的、更新齊全的 Windows 10(1809 及以上)盡力支持。需要 Linux 工具鏈時可以改用 WSL2。
命令聯網失敗
先確認當前模式本來就不允許聯網(workspace-write 預設不聯網)。確實需要就在配置裏開 network_access,或者在彈窗裏批准這次聯網。
啟動報錯「approval_policy = "untrusted" is no longer supported」
untrusted 審批策略已被移除(CLI 0.149.0、桌面 App 和 VS Code 插件 26.818.31338 起)。打開 config.toml(Windows 在 %USERPROFILE%\.codex\config.toml)刪掉這一行,也檢查 profile 文件、啟動腳本里的 --ask-for-approval untrusted。想保持嚴格,可改成:
toml
sandbox_mode = "read-only"
approval_policy = "on-request"
注意:項目級的 trust_level = "untrusted" 是另一個設定,仍然支持。
常見問題
Q:ChatGPT 網頁版的 Work 也有這些權限模式嗎?
沒有。網頁版 Work 在託管的隔離環境裏運行代碼,不提供本地沙箱和審批模式選擇;可用時在 Settings → Data controls → Work network access 裏管理代碼和命令的聯網權限。
Q:Approve for me 會不會比 Full access 更危險?
不會。它不擴大沙箱,只是換成審查智能體來批准越界請求;Full access 則是直接拆掉沙箱。
Q:為什麼改了 config.toml 某個模式還是用不了?
公司裝置可能有管理員下發的 requirements.toml,例如禁止 approval_policy = "never" 或 danger-full-access,這種限制優先級高於個人配置。
Q:MCP 工具的審批在哪設?
在每個 MCP 伺服器的 default_tools_approval_mode 和單個工具的 approval_mode 裏設,見 Codex 怎麼配置 MCP。
參考資料
- 官方文檔:Permissions(權限模式)— https://learn.chatgpt.com/docs/permission-modes
- 官方文檔:Sandbox — https://learn.chatgpt.com/docs/sandboxing
- 官方文檔:Agent approvals & security — https://learn.chatgpt.com/docs/agent-approvals-security
- 官方文檔:Auto-review — https://learn.chatgpt.com/docs/sandboxing/auto-review
- 官方文檔:Windows sandbox — https://learn.chatgpt.com/docs/windows/windows-sandbox
- 官方文檔:Rules — https://learn.chatgpt.com/docs/agent-configuration/rules
- 官方文檔:Config basics — https://learn.chatgpt.com/docs/config-file/config-basic
- 官方文檔:命令行參考 — https://learn.chatgpt.com/docs/developer-commands
- OpenAI 幫助中心:Using Codex with your ChatGPT plan(Auto-review、untrusted 報錯)— https://help.openai.com/en/articles/11369540-using-codex-with-your-chatgpt-plan
0 條評論
還沒有評論,來搶沙發~