Codex 斜杠命令(三):权限与安全——精确控制 Codex 能做什么
系列目录
- (一)快速入门——最常用的基础命令
- (二)对话管理——让你的会话有条不紊
- (三)权限与安全——精确控制 Codex 能做什么(本文)
- (四)代码审查——提 PR 前的最后一道防线
- (五)模型与推理——为任务选择合适的大脑
- (六)并行工作与后台——让 Codex 同时处理多个任务
- (七)个性化与配置——打造你的专属 Codex
- (八)生态集成:插件、技能与 MCP
延伸阅读 · 插件商店完全指南 · Codex vs Claude Code 对比 · 2026 高级模式对比
为什么权限控制是 Codex 的核心竞争力
AI 编程工具最大的信任问题不是"它会不会写错代码",而是"它会不会在我不知情的情况下删文件、改配置、访问不该访问的网络"。Codex 的权限系统给出了一个分层、可审计的答案:沙箱模式决定 Codex 技术上能做什么,审批策略决定它做之前要不要问你。理解这两个维度,你就能在安全与效率之间找到自己的平衡点。
沙箱是 Codex 在本地执行命令时的隔离边界。它限定 Codex 能读哪些文件、能在哪些目录写、能不能访问网络——这些都由沙箱模式决定。审批策略则控制 Codex 执行操作前是否需要你的确认,从"完全自动"到"每次询问"都有对应的预设。
命令速查表
| 命令 | 参数 | 说明 |
|---|---|---|
| /permissions | 无 | 打开审批策略选择菜单 |
| /approve | 无 | 重试一次被自动审查拒绝的操作 |
| /sandbox-add-read-dir | 目录路径 | (Windows) 授予沙箱额外的读权限 |
| /debug-config | 无 | 诊断配置层级和策略要求 |
/permissions —— 精确控制审批粒度
/permissions
/permissions 打开一个策略选择菜单,你可以根据当前任务的信任级别实时切换:
- Auto:Codex 在 workspace 内自动读/写/执行命令,离开 workspace 或使用网络时请求确认。这是日常开发的推荐模式。
- Read Only:Codex 只能读文件,不能修改任何内容。适合查看代码、讨论方案、或让 Codex 解释现有逻辑时使用。
- Accept Edits:Codex 可以提议修改,但每次编辑都需要你手动接受。适合对代码库不熟悉或修改高风险模块时使用。
- Full Access:解除所有限制(等同于 danger-full-access 沙箱 + 免审批)。仅在完全受控的临时环境中使用。
切换到 Read Only 后,Codex 依然可以读取和分析代码,但任何写入操作都会被拦截——这是审查陌生代码库时的安全起点。
实际场景:第一次用 Codex 打开一个陌生仓库,先用 Read Only 模式让它熟悉项目结构、解释关键模块。确认它理解正确后,再切换到 Auto 开始动手修改。
沙箱模式的技术细节
Codex 的沙箱不是容器,而是一个基于操作系统原语的权限边界。它通过限制文件系统和网络访问来实现隔离。
沙箱的核心概念是 workspace(工作区)——通常是当前目录和临时目录如 /tmp。用 /status 可以看到当前工作区的可写根目录列表。
默认配置(workspace-write 沙箱)下:
- Codex 可以在工作区内自由读写和执行命令
- 离开工作区写文件需要审批
- 命令的网络访问默认受限
如果你需要 Codex 操作工作区外的文件(如全局配置文件),有两种方式:
- 用 /permissions 切换到更宽松的模式
- 在 config.toml 中配置额外的读写目录
/approve —— 当你不同意自动审查的判决
/approve
Codex 内置的自动审查机制会拒绝某些高风险操作。当你审查后认为这个操作是安全的,用 /approve 给它一次重试机会。
实际场景:Codex 想要修改 ~/.gitconfig 来设置项目级配置,自动审查拒绝了。你确认这个修改是必要且安全的,运行 /approve,Codex 重试该操作。
注意:/approve 只对最近一次被拒绝的操作生效,且只重试一次。如果再次被拒,你需要调整权限策略或手动执行。
/debug-config —— 当行为不符合预期时
/debug-config
/debug-config 打印当前会话的完整配置诊断信息,包括:
- 各层级配置文件的加载顺序和内容(全局 ~/.codex/config.toml -> 项目 .codex/config.toml -> profile)
- 生效的权限策略
- 实验性功能的开关状态
- 网络约束和沙箱参数
实际场景:你在项目级 config.toml 中设置了某个选项,但 Codex 似乎没有遵守。/debug-config 可以帮你快速定位是配置键写错了、被上层覆盖了,还是有其他策略在起作用。
安全最佳实践
最小权限起步:接到一个新任务时,从 Read Only 开始。让 Codex 先读代码、出方案,确认方案可行后再放宽权限。这比一开始就 Full Access 然后出了问题再收紧要安全得多。
项目级配置:把稳定的权限策略写在 .codex/config.toml 中,随仓库共享给团队。一个典型的项目级配置:
[permissions]
default = "workspace-write"
ask_before = ["network", "outside-workspace"]
[features]
goals = true
审查关键操作:即使使用 Auto 模式,也要留意 Codex 请求的审批弹窗。审批弹窗不是你工作的打扰——它是 Codex 在告诉你"我要做一件可能影响系统的事情,你确认一下"。
实操清单
- 打开一个陌生仓库,用
/permissions菜单将审批策略切换到 Read Only - 在 Read Only 模式下让 Codex 读取代码并解释关键模块,确认理解正确
- 确认无误后,再次用
/permissions切换到 Auto 模式,开始让 Codex 动手修改 - 触发一次工作区外写入(如让 Codex 修改
~/.gitconfig),观察审批弹窗弹出 - 确认操作安全后运行
/approve,让 Codex 重试刚才被拒绝的操作 - 在项目根目录创建
.codex/config.toml,写入[permissions]配置(default = "workspace-write"、ask_before = ["network", "outside-workspace"]) - 修改配置后运行
/debug-config,确认项目级配置已被正确加载且覆盖了全局设置 - 如果
/debug-config显示某项配置未生效,逐层检查全局与项目 config.toml 的键名拼写 - 在 Windows 环境下,若 Codex 需要读取工作区外目录,使用
/sandbox-add-read-dir <目录路径>授予额外读权限 - 体验 Accept Edits 模式:切换后让 Codex 修改一个文件,逐条手动接受或拒绝每处编辑