第一次查看陌生项目,选 read-only;需要在项目内改代码和运行测试,选 workspace-write;只有在隔离环境、明确知道后果时才考虑更宽的权限。审批模式决定高风险动作是否先征求确认,沙箱决定动作本身能触及的范围,两者不是一回事。
官方参考:Codex 沙箱指南 · Codex 官方使用说明 · AGENTS.md 项目规则 · Codex Skills 教程
沙箱和审批分别管什么?
可以把它们理解成两道不同的门。沙箱是“活动范围”:文件、网络和系统资源能不能被访问。审批模式是“确认流程”:某个动作即使在范围内,是否要先让你批准。把审批调得很宽,不能弥补沙箱范围过大的问题;把沙箱设为只读,也不等于可以把密钥放进提示词。
| 配置 | 主要效果 | 适合场景 | 注意 |
|---|---|---|---|
read-only | 读取和分析,不能直接写项目 | 代码审查、学习陌生仓库、排查日志 | 需要改动时会要求你明确授权或切换模式 |
workspace-write | 在工作区内修改文件并运行必要命令 | 日常开发、修 Bug、写测试 | 仍需限制外部目录、网络和破坏性命令 |
| 更宽的全局权限 | 可能触及沙箱外文件或系统资源 | 隔离容器、一次性实验、明确授权的维护任务 | 风险显著提高,不应作为日常默认值 |
四种常见工作流怎么选?
- 只想让 Codex 看代码:用
read-only,让它输出调用链、风险点和建议,不让它直接改文件。 - 本地修 Bug:用
workspace-write,并在 AGENTS.md 中写清测试命令、生成文件和禁止触碰的目录。 - 执行安装或测试:先确认命令来源、依赖和网络需求;对删除、迁移、发布和外部写入动作保留审批。
- 跑自动化或 CI:使用专用工作区、最小权限凭证和固定目录,不要为了省一次确认把整台机器开放给代理。
审批模式应该怎么理解?
审批策略决定 Codex 遇到需要执行的操作时,是直接运行、先询问,还是拒绝。名称和可选值会随客户端与版本变化,具体以当前配置文档为准。日常使用更推荐“必要时询问”的策略:普通的读取、编辑和测试可以连续完成,安装依赖、访问网络、删除文件、写入工作区外或发布到生产环境时停下来确认。
如果 Codex 要求确认,先看四件事:命令实际做什么、工作目录在哪里、是否会联网、是否会写入或删除数据。看不懂命令时,让 Codex 先解释影响范围,不要直接点击批准。
遇到 untrusted 报错怎么办?
OpenAI 帮助中心目前说明,较新的 Codex CLI、桌面端和 VS Code 扩展不再支持 approval_policy = "untrusted"。如果启动时报错,按下面顺序处理:
- 打开 macOS/Linux 的
~/.codex/config.toml,或 Windows 的%USERPROFILE%\\.codex\\config.toml。 - 删除
approval_policy = "untrusted",并检查活动 profile、组织管理配置和--ask-for-approval untrusted参数。 - 按需要改为更保守的组合,例如
sandbox_mode = "read-only"与approval_policy = "on-request"。 - 重启 Codex,再用
codex doctor或一个只读任务验证配置。
项目级的 trust_level = "untrusted" 与已废弃的审批策略不是同一个设置,不要因为看到相同单词就全部删除。
如何给 Codex 设安全边界?
权限配置之外,项目说明也很关键。可以在 AGENTS.md 中写明:哪些命令可直接执行、哪些动作必须确认、测试失败如何报告、生产目录不能修改。用 Skills 固化审查和发布流程时,也要把输出验收条件写清楚。
- 不要把 API Key、密码、Cookie、SSH 私钥写进 AGENTS.md、Skill 或代码仓库。
- 使用最小权限的 API Key,并为 CI、个人开发和生产环境分开设置。
- 涉及支付、数据库迁移、删除文件、发版和对外发送信息时,保留人工确认。
- 第三方 MCP 或 Plugin 先看服务器地址、认证范围和可执行动作,再决定是否安装。
- 把“已测试”和“建议测试”区分开,避免代理把计划当成结果。
权限配置不生效时先查什么?
| 现象 | 检查顺序 | 下一步 |
|---|---|---|
| 仍然不能修改文件 | 当前沙箱、工作目录、文件权限 | 确认目标在工作区内,再检查审批提示 |
| 每条命令都在询问 | 审批策略、命令是否被视为高风险 | 保留必要确认,避免直接改成全局放行 |
| 启动时报 untrusted | config.toml、profile、命令行参数 | 移除废弃策略,改用受支持配置 |
| 网络请求失败 | 沙箱网络开关、域名限制、MCP 认证 | 区分网络权限问题和 API Key 失效 |
常见问题
Codex 的 read-only 是什么意思?
read-only 允许 Codex 读取项目并分析,但不允许直接修改文件;适合代码审查、陌生仓库分析和只读排障。
workspace-write 和 danger-full-access 怎么选?
workspace-write 允许在工作区内修改文件,通常是本地开发的默认选择;更宽的权限只应在明确理解风险并有隔离环境时使用。
Codex 为什么提示 untrusted approval policy 不支持?
较新的 Codex 版本不再支持该审批策略。应从配置文件、配置档案和命令参数中移除它,并改用受支持组合。
审批模式会保护 API Key 吗?
审批可以减少未经确认的高风险操作,但不能替代密钥管理。API Key、Cookie、密码和生产凭证仍不应写进项目文件或交给代理。
需要 Codex 套餐或使用权限咨询?
GPT Pro AI 提供 Codex、ChatGPT Plus/Pro 相关的第三方使用咨询,不代表 OpenAI 官方授权;实际权限、模型和功能以官方客户端与账号页面为准。