Codex 权限怎么设才安全?它能碰什么,三档怎么选

权限入口在聊天框下方,官方叫 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 给工作区写入加目录 需要跨目录改动时优先

更多字段以官方权限文档为准。

按什么顺序往上放

  1. 新项目先用默认权限,观察它的表现。
  2. 日常改文档、补测试,默认权限够用。
  3. 审批频繁就切到自动审核,也可以一开始就选。
  4. 明确知道默认档卡在哪,再临时切完全访问。
  5. 习惯固定后,用 Custom 把沙盒和网络边界固化下来。

拿不准某个动作会不会执行,先把话问清楚。让它说明要运行的命令和要访问的外部资源,再决定放不放行。

有几类操作必须自己把关

删除文件和数据库迁移算一类。发布上线、支付改动和改权限算另一类。访问凭据与操作生产服务同样得自己盯。这几类动作不管哪一档权限,都该由人确认。权限机制是约束,不是保险。完全访问下它一旦误判,可能做出破坏性动作。

还有一条容易忽略,权限越高,任务范围反而要越小。浏览器和 MCP 这类能力往往另有独立的权限控制,不完全由沙盒模式决定。

收尾

这四档对应的不是四种勇气,而是四种任务边界。先从默认档起步,用自动审核解决频繁弹窗,把完全访问留给明确需要的那一刻。