Codex 默认建议 Auto:工作区可写+越界/联网要审批;用 /permissions、.rules 禁高危命令,勿开全放行。

要点
- 两层控制:沙箱(sandbox)管“命令技术上能碰什么”(写哪些目录、能否联网);审批策略(approval policy)管“越界时要不要问你”(Agent approvals & security、Sandbox,核验日 2026-10-30)。
- 日常默认(官方 Auto 预设):
--sandbox workspace-write --ask-for-approval on-request。工作目录内读改与常规本地命令可自动跑;改工作区外文件或需要网络时会要审批。有版本控制的文件夹官方更倾向 Auto;无版本控制更倾向read-only。 - 会话内切换:TUI/会话里用
/permissions可切到只读浏览;用/status看当前工作区含哪些目录。菜单文案以当前客户端为准(待核)。 - 高危习惯清单(人工纪律,非完整黑名单):
rm -rf/递归删除、git push --force、乱改权限(chmod/chown大范围)、管道下装(curl … | sh)、任意外网脚本。应用.rules的prefix_rule+forbidden/prompt收紧沙箱外命令(Rules)。 - 不要默认开的:
--dangerously-bypass-approvals-and-sandbox(别名--yolo)=无沙箱+无审批,官方表标 Elevated Risk/不推荐;仅在你自备隔离环境时才考虑,本稿不展开绕过手法。 - Cursor 对照:Settings → Agents → Approvals & Execution,多数人优先 Auto-review;另有 File-Deletion/External-File 等保护项。Cloud Agents 不走本地 Run Modes(Run Modes)。
- 证据强度:沙箱/审批组合与
.rules行为来自 OpenAI Learn 官方文档(高);“高危命令清单”为工程常识+官方 rules/链式拆分说明的归纳(中高);具体按钮中文名标待核。
正文
场景
Agent 能自己跑终端后,真正吓人的通常不是“写错一行代码”,而是它在你没盯着时执行了删除、强推、改权限或从外网拉脚本。审批不是为了刁难,而是把越界动作从自动变成“先问再跑”。
下文以 OpenAI Codex CLI/本地会话为主(含文档所述 IDE 扩展同套沙箱思路),并对照 Cursor 本地 Agent 的 Run Modes。目标是入门可跟做:默认怎么设、哪些操作要当高危、可抄的配置纪律。不写如何绕过安全边界。
可跟做步骤/可抄工作流
证据强度:高(OpenAI Learn approvals/sandbox/rules,核验日 2026-10-30);UI 入口名标待核。
- 先认两层词
– 沙箱:命令实际被允许写哪里、能不能出网。常见档位:read-only(偏只看)、workspace-write(工作区内可写,默认联网关)、danger-full-access(去掉文件系统与网络边界,高风险)。
– 审批:on-request(越界才问)、never(不再弹审批;仍受沙箱约束,除非你同时放开沙箱)。
- 个人开发机默认建议(可抄)
有 Git 的项目目录直接:
codex --sandbox workspace-write --ask-for-approval on-request
或写入 ~/.codex/config.toml/profile(键名以当前 Configuration Reference 为准):
approval_policy = "on-request"
sandbox_mode = "workspace-write"
# 默认不要开网络;确有需要再显式打开并收窄
# [sandbox_workspace_write]
# network_access = true
只想先摸清仓库、暂不改文件:
codex --sandbox read-only --ask-for-approval on-request
- 会话里用
/permissions,别一上来全开
官方:Auto 下可在工作区自动读改跑命令;要聊天/规划不改文件时切 read-only。用 /status 确认工作区根与临时目录。审批提示若提供“仅一次/本会话”等范围,选最窄能继续任务的那档。
- 把“沙箱外仍危险”的命令写进
.rules
规则文件示例路径:~/.codex/rules/default.rules(项目层另有 .codex/rules/,仅在项目层受信任时加载;细则见官方 Rules 页)。示例意图:对删除、强推、curl 管道等使用 forbidden 或至少 prompt。以下为可抄纪律模板,落地前用本机 codex execpolicy check 自测。
# 示例:禁止以 rm 开头的命令在沙箱外直接执行(按需收紧 pattern)
prefix_rule(
pattern = ["rm"],
decision = "forbidden",
justification = "删除请人工确认后本地执行,不要让 Agent 自动 rm",
)
prefix_rule(
pattern = ["git", "push"],
decision = "prompt",
justification = "推远程前人工确认;尤其警惕 --force",
)
prefix_rule(
pattern = ["curl"],
decision = "prompt",
justification = "外网下载与管道执行需人工看清目标",
)
官方说明:多条规则命中时取最严(forbidden > prompt > allow)。对 bash -lc '… && …' 这类线性安全链,Codex 会拆成子命令分别评估,避免“前面 git add、后面 rm -rf”被一条 allow 带过;含重定向/变量展开等复杂脚本时则整段保守处理。
- 验收三条(建议写进个人 checklist)
– 故意让 Agent 提一次“需要联网/写工作区外”的动作,确认会弹审批或被拒。
– codex execpolicy check --rules … -- 看决策是否符合预期。
– 改完看 git status/git diff;高风险操作宁可自己在终端敲。
- Cursor 本地 Agent 对照(同日可记一笔)
Settings → Agents → Approvals & Execution:
– Auto-review:允许列表立即跑;能进沙箱的 shell 进沙箱;其余交分类器。官方称对多数人最有用且相对稳妥。
– Allowlist:只自动跑你列出的动作。
– Run Everything:全部自动、无沙箱分类器——接受风险才用。
另有 Browser/删文件/工作区外写文件等独立保护。Cloud Agents 在独立机器跑,不适用本地 Run Modes。
真实用户诀窍/反例
- 诀窍:先保留
on-request,再用规则收窄,而不是先关审批。 官方组合表把“workspace-write + on-request”标成日常 Auto;把never叠在danger-full-access上才是全放行。 - 诀窍:网络默认关。 文档写 workspace-write 默认无网络;需要装依赖时再开,并考虑域名策略/代理类选项(企业环境另遵托管配置)。
- 诀窍:
.git等在可写根下仍可能被标成受保护只读。 不要假设 Agent 能随便改 hooks/config;版本操作用你自己的 Git 流程更稳。 - 反例:为少点几次确认直接
--yolo。 省掉的点击可能换成难回滚的删除或外泄。 - 反例:把“信任这个文件夹”理解成“所有危险 shell 都免审”。 信任/工作区边界与沙箱外命令规则是不同层。
- 反例:在无 Git 的目录开满写权限大改。 官方对无版本控制目录更倾向只读起步。
适用边界
- 本稿覆盖:Codex 本地沙箱+审批默认、会话
/permissions、用.rules约束沙箱外命令、Cursor Run Modes 对照。不覆盖企业 MDM/托管requirements.toml全表,也不评测模型“会不会主动搞破坏”。 - Auto-review/分类器(Codex 的
approvals_reviewer=auto_review与 Cursor 的 Auto-review)会误判;官方均写明它不是绝对安全边界,关键操作仍要人审。 - Windows/WSL2/Linux
bwrap等平台差异以当前 Sandbox 文档为准;容器内若宿主机拦了命名空间,沙箱可能不可用,此时应先修好隔离,而不是习惯性全放行。 - UI 中文名、设置路径、默认预设标签:以你安装版本界面与官方文档为准(待核)。
【来源与编译】
- Agent approvals & security|ChatGPT Learn/Codex|https://learn.chatgpt.com/docs/agent-approvals-security|核验日 2026-10-30(沙箱与审批两层、Auto 预设、组合表、yolo 风险标注、受保护路径、网络默认)
- Sandbox|ChatGPT Learn|https://learn.chatgpt.com/docs/sandboxing|核验日 2026-10-30(沙箱与审批如何配合、模式释义)
- Rules|ChatGPT Learn|https://learn.chatgpt.com/docs/agent-configuration/rules|核验日 2026-10-30(prefix_rule、forbidden/prompt/allow、链式命令拆分、execpolicy check)
- Running Codex safely at OpenAI|OpenAI|https://openai.com/index/running-codex-safely/|核验日 2026-10-30(沙箱+审批+rules 工程实践旁证)
- Run Modes|Cursor Docs|https://cursor.com/docs/agent/security/run-modes|核验日 2026-10-30(Auto-review/Allowlist/Run Everything、删文件保护、Cloud Agents 不适用)
- 本文说明:中文编译“默认 Auto+规则收紧高危+勿全放行”;高危命令清单为纪律归纳而非官方穷尽黑名单;未提供绕过沙箱/审批的步骤;UI 标待核。