Codex 權限與沙箱設定:審批模式怎麼選、權限全開的風險、沙箱啟動失敗怎麼辦

Codex 權限由沙箱和審批兩部分組成。按官方文檔講清三種權限模式與 config.toml 寫法、權限全開(--yolo)的風險,以及 Windows / Linux 沙箱啟動失敗、聯網被攔、untrusted 報錯怎麼處理。

NNathaniel bigo··原創首發·AI 輔助撰寫
14 分鐘讀完
資料核對於 2026-10-07 · 依據官方文檔與公開資料整理 Plus 帳號
本文根據 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 不再支持」這類報錯的人。

結論先說

  1. 兩個開關一起決定 Codex 能做什麼:沙箱(sandbox) 管它在技術上能碰哪些文件、能不能聯網;審批(approval) 管它什麼時候必須停下來問你。改審批的人選不會擴大沙箱。
  2. 預設就夠用:大多數工作用 Ask for approval(請求批准)——在當前工作區裏自由讀寫、跑命令,越界(改工作區外的文件、聯網)才問你。對應配置是 sandbox_mode = "workspace-write" + approval_policy = "on-request"。
  3. 嫌彈窗多:開 Approve for me(設定裏叫 Auto-review),由另一個審查智能體替你判斷要不要放行,沙箱邊界不變。
  4. 權限全開(Full access / --yolo)= 沒有沙箱 + 從不詢問。官方標為「不推薦」,只建議在專門的沙箱虛擬機裏用。需要更多權限時,優先用「加可寫目錄」「規則(rules)」這種精確放行。
  5. 沙箱起不來: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。

更穩妥的替代做法:

  1. 需要寫別的目錄 → 用 --add-dir 或 writable_roots 加可寫目錄,而不是直接 danger-full-access;
  2. 某個命令總要越界(比如 gh pr view)→ 寫一條規則(rules),對這個命令前綴單獨設「允許 / 詢問 / 禁止」,規則文件放在 ~/.codex/rules/default.rules(規則功能目前為實驗性);
  3. 不想被打擾 → 用 Approve for me,或在沙箱內把審批設為 never,讓 Codex 在邊界內自己想辦法;
  4. 不管哪種模式,開工前先 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 / 管理員彈窗被拒絕、機器不允許創建本地用戶或組、不允許改防火牆規則、組策略不給沙箱用戶登入權限。處理順序:

  1. 重新執行 elevated 設定並同意管理員彈窗(CLI 裏可以用 /setup-default-sandbox);
  2. 公司電腦被策略攔住的,請 IT 確認是否允許上面幾項;
  3. 還不行就先改 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
需要開通或續費?ChatGPT Plus 充值 →

Nathaniel 的更多內容

  1. 01

    AI 學習路線:零基礎從哪開始,6 個階段、每階段該讀哪幾篇教學(2026)

    AI 學習路線怎麼走?給零基礎的人一條循序漸進的路徑:先選一個助手用順,再學提問,再用進日常工作,按需學做圖做影片,守住私隱與版權,最後進階自動化和編程。每個階段都配了本站對應的教學。

    其他 AI 工具0
  2. 02

    AI 瀏覽器有哪些:Perplexity Comet、Opera Neon、Dia、Brave Leo 與 Edge Copilot 的官方說法對照

    AI 瀏覽器有哪些?按官方頁面整理 Perplexity Comet、Opera Neon、Dia、Brave Leo 和 Edge 裏的 Copilot:官方自述的定位、支持的平台、免費還是訂閱,以及 Gemini、Claude 的 Chrome 方案和已停用的 ChatGPT Atlas。

    其他 AI 工具0
  3. 03

    即夢國際版 Dreamina 是什麼:官方站入口、能生成什麼、免費積分和模型(2026)

    即夢國際版 Dreamina 是什麼?官方站是 dreamina.capcut.com,是一個圖片、影片和數字人一體的 AI 創作平台。按官方首頁和 FAQ 講:能生成什麼、免費用戶每天 120 積分、列出的 Seedance 與 Seedream 模型,以及和國內即夢怎麼區分。

    其他 AI 工具0
  4. 04

    Kimi K3 Coding Plan 是什麼、怎麼用:Kimi Code 會員、模型 ID、套餐價格和額度規則

    Kimi K3 Coding Plan 是什麼?按 Kimi 官方文檔核對:官方現在叫 Kimi Code,是 Kimi 會員權益裏的編程服務,Plus 及以上才有;講 K3 等模型 ID、國內新套餐價格、三種客戶端、第三方工具接入和額度規則。

    Kimi0
  5. 05

    DeepSeek V4 Pro 和 Flash 的區別與 API 價格:官方價格頁逐項對照(高峰與空閒時段)

    DeepSeek V4 Pro 和 Flash 有什麼區別、API 怎麼收費?按 DeepSeek 官方價格頁(2026-10-19 查詢)列出兩個模型的版本、上下文、圖像理解、並發和每百萬 token 價格,說明高峰與空閒時段的計費差別和舊模型名怎麼處理。

    其他 AI 工具0
  6. 06

    GPT-6 Pro(Astra)怎麼用、哪些套餐有:怎麼選到 Pro 檔、用量限制和 Pro 三檔價格

    GPT-6 Pro(Astra)怎麼用、哪些套餐有?按 OpenAI 幫助中心核對:聊天裏 Pro 檔給 Pro 100、Pro 200、Business 和 Enterprise;Plus 在 Work 和 Codex 裏含 Astra。講怎麼選到、用量上限和官方 Pro 價格。

    ChatGPT0

同產品的其他教學

  1. 01

    Codex CLI 怎麼安裝、怎麼更新:官方 4 種安裝命令(腳本、npm、Homebrew)、查看版本和 codex update

    Codex CLI 怎麼裝、怎麼更新?官方有 macOS/Linux 與 Windows 的安裝腳本、npm、Homebrew 四種方式,更新多是重跑同一條命令。本文原樣列出官方命令,講查版本、codex update 和首次登入。

    ChatGPTCodex0
  2. 02

    用 ChatGPT 寫代碼怎麼用:代碼塊的複製、編輯、預覽、運行 Python,報錯了怎麼辦

    用 ChatGPT 寫代碼:代碼放進代碼塊,可複製、編輯;HTML、React、SVG、Mermaid 點 Preview 預覽,支持的 Python 點 Run 運行。講各按鈕用法、沒有按鈕怎麼辦、何時換 Codex。

    ChatGPTCodex0
  3. 03

    ChatGPT 更新日誌在哪看、怎麼知道現在最新的模型和功能:官方發佈說明怎麼讀

    ChatGPT 更新了什麼、最新模型是哪個?官方答案在幫助中心的發佈說明裏:ChatGPT release notes、Model Release Notes、Business 和 Enterprise 的更新日誌、桌面 App 和 Codex 的更新記錄。本文講各份日誌看什麼、怎麼讀、怎麼確認自己帳號有沒有。

    ChatGPTCodex0
  4. 04

    Codex 無法登入、無法發送消息、無法連接怎麼辦:ChatGPT 帳號還是 API 密鑰登入,官方排查步驟

    Codex 登入不了或發不出消息?按官方文檔:它支持 ChatGPT 帳號和 API 密鑰兩種登入,雲端只能用 ChatGPT;電郵密碼帳號要先開 MFA;退出登入、被管理員限制、網絡不放行 WebSocket 都會導致連不上。本文按順序對照排查,並附 CLI 的安裝和更新命令。

    ChatGPTCodex0
  5. 05

    Codex 怎麼刪除對話、清理任務:桌面 App 先歸檔再刪除,CLI 用 /archive 和 /delete

    Codex 的對話沒有「直接刪除」,要先歸檔再刪除。按 OpenAI 幫助中心和 Codex 文檔:桌面 App 在 Settings → Archived chats 裏點垃圾桶,CLI 用 /archive、/delete。本文講步驟、刪除後多久清除、能不能恢復,以及找不到舊對話時怎麼查。

    ChatGPTCodex0
  6. 06

    ChatGPT 桌面版打不開、更新後打不開、更新失敗怎麼辦:官方給出的更新、重置和網絡排查步驟

    ChatGPT 桌面版打不開、空白轉圈、更新後出問題?官方沒有「打不開」專門文章,但幫助中心有這些依據:Menu → Check for Updates 要反覆檢查並完全重啟、Windows 可以重置、Mac 的 SSL 報錯先升級再查網絡、系統要求。本文按順序整理。

    ChatGPTCodex0

0 條評論

登入 後參與評論

還沒有評論,來搶沙發~