官方原文索引: Approval Modes / Agent Approvals & Security / Sandbox
1. 核心架构与原理解析
Codex 的权限控制采用**"沙盒(Sandbox)× 审批策略(Approval Policy)"**双轨模型。这两个维度正交组合,产生 9 种实际权限状态:
| read-only | workspace-write | danger-full-access | |
|---|---|---|---|
| on-request | 只读分析,越界需确认 | ✅ 日常开发推荐 | 全权限但关键操作确认 |
| never | 只读,无确认打断 | CI 自动编辑 | ⚠️ 裸奔模式,极度危险 |
| untrusted | 每个操作都确认 | 每个写入都确认 | 每个操作都确认 |
沙盒的技术实现:
🛠️ 专家视角 / 架构思考: 新手最常犯的错误是混淆"审批模式"和"沙盒模式"。审批模式回答"什么时候问你",沙盒模式回答"能碰哪些文件"。最危险的组合不是
danger-full-access + on-request,而是workspace-write + never——因为网络访问在workspace-write下默认禁用,而danger-full-access的审批策略仍可能拦住高危操作。
2. 工程落地与代码示例
三种启动模式
# 模式 1:只读咨询(最安全)
codex --approval-mode suggest --sandbox read-only
# 或交互式切换:/approvals → Read Only
# 模式 2:日常开发(推荐)
codex --full-auto
# 等价于:--approval-mode on-request --sandbox workspace-write
# 模式 3:全自动(仅限隔离环境)
codex --approval-mode never --sandbox workspace-write
# 模式 4:裸奔(仅限 Docker/VM)
codex --yolo
# 等价于:--approval-mode never --sandbox danger-full-access交互式审批切换
在 Codex TUI 中输入:
/approvals
→ Read Only # 只看不动,适合审查
→ Auto # 工作区内自动,越界询问(默认)
→ Full Access # 更大权限,但仍有关键确认
企业强制策略(requirements.toml)
# 管理员强制,用户不可覆盖
allowed_sandbox_modes = ["read-only", "workspace-write"]
allowed_approval_policies = ["on-request", "untrusted"]
# 禁止自动审批模式(防止误操作)
blocked_approval_policies = ["never"]审批决策流程示例
3. 场景深入:不同场景下的权限配置
场景:代码审查会议
# 审查模式:只看不动,零风险
codex --sandbox read-only --approval-mode suggest
> /review main
> 请审查这些改动的安全性场景:CI/CD 自动修复
# CI 模式:自动但限定范围
codex exec \
--approval-mode never \
--sandbox workspace-write \
--model gpt-5.3-codex \
"修复 lint 错误并格式化代码"场景:新人 onboarding
# 新人模式:每个操作都确认
codex --approval-mode untrusted --sandbox workspace-write
# 等熟悉后再切到默认模式
> /approvals
> Auto4. 💡 核心避坑与最佳实践 (Takeaways)
- 新手起步三原则:① 先用 Read Only 探路 ② 熟悉后再切 Auto ③ 永远不要在未 git commit 的情况下切 Full Access
--yolo不是英雄模式:它是"you only live once"的缩写,意味着一旦出错可能无法挽回- Windows 用户特别注意:Windows 沙盒是用户态实现,安全性弱于 macOS/Linux,建议配合 WSL2 使用
- Git 是最终安全网:启用任何自动模式前,务必
git commit -m "pre-codex checkpoint" - 团队统一策略:通过
requirements.toml锁定团队最小权限,防止个人误配置