权限入口在聊天框下方,官方叫 permissions selector。它和沙盒是同一件事的两面,管的是 Codex 能读写哪些位置,哪些动作要停下来问你。App 里的四档权限分别是默认权限,自动审核,完全访问,自定义配置。
选哪一档不取决于胆量,取决于任务要碰什么。改文档和补测试,默认档就够。要调用本机 CLI 或者联网查东西,自动审核更顺。只有明确知道默认档卡在哪,才轮到完全访问出场。
四档各自挡什么
| 档位 | 对应配置 | 简单理解 |
|---|---|---|
| 默认权限 | workspace-write 加 on-request,审批人是你 | 只动当前工作区,越界就问你 |
| 自动审核 | 审批人改成 auto_review | 越界请求先交给审风险的助手判 |
| 完全访问 | danger-full-access 加 never | 不弹窗,直接执行 |
| 自定义配置 | 按本地 config.toml 里的设置走 | 边界由你自己拼 |

默认权限:先按项目边界跑
默认权限也叫请求批准。Codex 跑在沙盒里,只能读写你打开的那个文件夹,跑常规的本地命令。一旦动作超出这个文件夹,或者要访问网络,或者要碰更敏感的能力,它会停下来请求确认。确认方式有两种,在对话里问,或者弹一个审批窗。
它适合改文档和调样式,补测试与小范围改代码也在此列。安全要求高的活更适合先走这一档。缺点是步骤一多弹窗就打断节奏,这时候往上一档更舒服。
自动审核:让另一个 agent 先判风险
自动审核也叫替我审批。执行命令时,Codex 把请求转给 reviewer agent,一个专门做风险评估的助手。低风险和中风险直接放行,高风险仍然要你明确同意。
这是最通用的一档。项目经常要访问当前文件夹以外的资源,风险又可控,就适合开它。本地开发步骤多、不想被弹窗追着点,也适合。已经信任当前目录但仍想拦住删除文件这类动作,同样适合。
两个代价要提前知道。自动审核会多消耗模型调用,也可能因为超时或者失败而拒绝执行。被拒之后换一条更安全的做法通常能过。

完全访问:只在明确需要时临时开
完全访问把沙盒限制整个拿掉,也不弹审批窗,想执行什么就直接执行。它适合调试特殊的本机环境,跑 Computer Use 和系统级操作,任务必须高频访问工作区外资源时也会用到。
前提是范围清晰,并且有 Git 或者备份兜住。它一误判,动作就可能是破坏性的。
自定义配置:把边界固定下来
选 Custom (config.toml) 之后,Codex 按本地 config.toml 里的设置走。你可以同时放开多个可写目录,给特定的网络域名放行。把审批交给自动审核,或者用 rules 给命令前缀打上允许与禁止的标记,都行。
这一档适合熟悉沙盒和权限机制的人。习惯固定之后,把沙盒、审批和网络边界固化进配置,就不用每次重选。
配置项怎么读
| 配置项 | 大致含义 | 什么时候会用到 |
|---|---|---|
| sandbox_mode = “read-only” | 只读,编辑和运行都要审批 | 只看代码、做审查 |
| approval_policy = “on-request” | 沙盒内自动跑,越界才问 | 默认权限的常态 |
| approval_policy = “never” | 不请求审批 | 完全访问的一部分,风险最高 |
| approvals_reviewer = “user” | 审批提示交给你 | 默认权限 |
| approvals_reviewer = “auto_review” | 符合条件的请求交给审风险的助手 | 自动审核 |
| sandbox_workspace_write.writable_roots | 给工作区写入加目录 | 需要跨目录改动时优先 |
更多字段以官方权限文档为准。
按什么顺序往上放
- 新项目先用默认权限,观察它的表现。
- 日常改文档、补测试,默认权限够用。
- 审批频繁就切到自动审核,也可以一开始就选。
- 明确知道默认档卡在哪,再临时切完全访问。
- 习惯固定后,用 Custom 把沙盒和网络边界固化下来。
拿不准某个动作会不会执行,先把话问清楚。让它说明要运行的命令和要访问的外部资源,再决定放不放行。
有几类操作必须自己把关
删除文件和数据库迁移算一类。发布上线、支付改动和改权限算另一类。访问凭据与操作生产服务同样得自己盯。这几类动作不管哪一档权限,都该由人确认。权限机制是约束,不是保险。完全访问下它一旦误判,可能做出破坏性动作。
还有一条容易忽略,权限越高,任务范围反而要越小。浏览器和 MCP 这类能力往往另有独立的权限控制,不完全由沙盒模式决定。
收尾
这四档对应的不是四种勇气,而是四种任务边界。先从默认档起步,用自动审核解决频繁弹窗,把完全访问留给明确需要的那一刻。