Codex 权限设置教程:沙箱和审批模式怎么选
担心 Codex 乱动文件,又嫌每个命令都要点确认?本文按 OpenAI 官方文档讲清 Codex 的四种权限模式、三档沙箱和审批策略,以及在 App、命令行和 config.toml 里怎么设置。
让 Codex 改代码时,最常见的两个顾虑是:它会不会乱动项目以外的文件?每跑一个命令都要点确认,太烦了怎么办?这两件事都由「权限」来管。本文按 OpenAI 官方文档,讲清 Codex 的权限模式怎么选、在 App 和命令行里怎么切换,以及怎样用配置文件固定下来。
权限由两部分组成
官方把权限拆成两个互相配合的开关:
- 沙箱(sandbox):规定 Codex 技术上能碰哪些文件、能不能联网。它由操作系统强制执行,不是靠模型自觉。
- 审批(approvals):规定 Codex 什么时候要停下来问你,或者把请求交给自动审核。
记住一句话:换谁来审批,不会扩大沙箱。审批只决定「越界时谁来点头」,能访问的范围始终由沙箱决定。
四种常用模式
在 ChatGPT 桌面 App 或代码编辑器扩展里,输入框下方有一个权限控件,可以选这几种模式:
- Ask for approval(询问批准):在当前工作区内可以自由读写、运行命令;要改工作区以外的文件或联网时,会先停下来问你。官方建议大多数情况从这个模式开始。
- Approve for me(替我审批):沙箱和上一种完全一样,区别是越界请求不再弹窗问你,而是交给一个自动审核的智能体判断,只有被识别为有风险的操作才会来问你。
- Full access(完全访问):没有沙箱,可以访问整台电脑的文件和互联网。官方标注为高风险、不推荐。
- Custom(config.toml):使用你在配置文件里写好的权限。
注意:某种模式「能选」不等于「已选中」,每个对话都要看一下当前选的是哪一种。可用的模式还和 App 版本、运行环境、本地配置以及所在组织的要求有关,被禁用的模式会显示为不可选或直接不出现。
在命令行里切换
在 Codex CLI 里输入:
/permissions
就能选择 Codex 可以做什么,并查看当前生效的沙箱和可写目录。也可以在启动时用参数直接指定:
codex --sandbox workspace-write --ask-for-approval on-request
codex --sandbox read-only --ask-for-approval on-request
第一行相当于「询问批准」:能改工作区,越界先问。第二行是只读,适合先让 Codex 看代码、出方案,不让它动手。
三种沙箱和审批策略
沙箱有三档:
read-only:只读,可以读文件、在只读沙箱里运行命令;workspace-write:可以修改工作区内的文件、运行命令,默认不能联网;danger-full-access:不使用沙箱,官方不推荐。
审批策略常用的有两种:
on-request:要做沙箱以外的事(例如改工作区外的文件、联网)时先问你;never:从不询问,可以简写成-a never。
另外还有一个 --dangerously-bypass-approvals-and-sandbox 参数(别名 --yolo),它同时关掉审批和沙箱,官方同样不推荐。
用 config.toml 固定设置
不想每次都敲参数,可以写进 Codex 的配置文件 ~/.codex/config.toml:
approval_policy = "on-request"
sandbox_mode = "workspace-write"
如果项目确实需要联网(例如安装依赖),可以在工作区可写模式下单独打开网络:
[sandbox_workspace_write]
network_access = true
想用「替我审批」的效果,官方给出的配置项是:
approvals_reviewer = "auto_review"
自动审核会拒绝高危操作,遇到出错时一律按拒绝处理;它会额外调用模型,所以会多消耗一些用量。
还有一点要更新:官方已经不再支持 approval_policy = "untrusted",这个旧写法会让 Codex 无法启动。配置里如果有,要删掉;想要「只读 + 需要时询问」,改成:
sandbox_mode = "read-only"
approval_policy = "on-request"
就算可写,这些目录也受保护
在 workspace-write 模式下,可写目录里的下面这些位置仍然是只读的(包括里面的所有子目录):
- 项目里的
.git; - 存在时的
.agents、.codex、.aws目录。
所以 Codex 改代码时不会直接改坏 Git 记录,也不会动这些配置和凭据目录。
上手建议
- 新项目、刚开始用:选 Ask for approval,观察一阵 Codex 会请求哪些操作。
- 熟悉之后,确认请求大多是安全的常规操作,再换成 Approve for me,减少手动点确认。
- 只想让它读代码、写分析:用
read-only。 - Full access 和
--yolo只在隔离的环境里用,例如专门的容器或测试机。 - 动手前先用 Git 提交一次,任何模式下都能随时退回。
Codex 包含在 ChatGPT 的付费套餐里,还没有会员的,可以在 BuyBuy代充(buybuytopup.cn) 开通 ChatGPT Plus,开通后就能按本文的方法设置 Codex 的权限。