上篇讲的是概念和配置。真跑起来,麻烦集中在两处,审批窗弹出来不知道该怎么答,动作被拒绝之后不知道卡在哪一层。
审批窗弹出时先看三样
弹窗本身信息不多。值得看的就三样,它准备运行什么命令,要碰哪个路径,需不需要联网。看明白了再决定放行一次,总是放行,还是拒绝。
装依赖这类操作要联网拉包,属于正常需求,但拉进来的依赖可能不安全。写系统配置文件或者动 ~/.ssh 这类目录时,弹窗挡的往往是更危险的动作,值得逐个看清楚。看不懂的命令就让 Codex 先解释一遍再决定。
联网请求单独把关
Codex 需要联网通常是为了装依赖和查资料,也可能是调 GitHub API,或者测试时访问本地服务器。
风险有三类。网页里可能藏着提示词注入,让 Codex 执行不该执行的命令。你的代码和 .env 文件可能顺着网络外发。拉进来的依赖本身也可能有问题。
所以如非必要就不要给网络权限。只是改本地文档,完全用不上联网。搜索资料的时候,用内置的受控搜索,比让它直接访问任意网页稳。确实要联网,让它先说明目标域名和用途,确认都是可信站点再放行。密钥和 token 这类东西,永远不要交给会联网的命令。
被拒之后怎么走
Auto-review 拒绝一个请求,说明助手认为它有风险,这时候不用急着放宽权限。多数情况换一条更安全的做法就能过,比如把批量操作拆成单步,或者先用只读的方式看清情况。
把权限直接拉到完全访问,问题看起来消失了,风险也一起被放掉了。
哪些操作值得停下来看
删除文件和批量移动文件要先停,清理目录也算。数据库迁移和改生产数据同样要停。改认证和账单相关代码,还有访问生产服务器和外部 API,都该先问。处理密钥和 token 这类凭据要单独当心。大规模装依赖,执行部署和发布,也在此列。
判断标准可以简化成三条。这个动作有没有不可逆的副作用,会不会碰到敏感数据,会不会影响项目外面。中了任何一条,先让它说明计划。
一段可以常备的提示词
不确定的时候,可以在任务开头贴上这段话。
请在动手前先说明你计划运行的命令和可能影响的文件。
不要读取 .env、密钥、token、cookie 或任何私有凭据。
不要执行删除数据、发布、部署或迁移命令,除非我明确确认。
这段话代替不了沙盒,它的作用是让 Codex 更早说出计划,减少误操作。

平台不一样,沙盒也不一样
不同系统的沙盒实现不同,对使用者来说用法是一致的。macOS 用系统自带的 Seatbelt,不需要额外配置。Linux 和 WSL2 需要装 bubblewrap,缺了它 Codex 可能弹警告或者性能下降。WSL1 从 0.115 版起不再支持。
Windows 原生有两个版本。elevated 更强,用独立的低权限用户加防火墙。unelevated 是回退方案,用当前用户的受限令牌。有些公司电脑的策略只允许后者。在 IDE 里也可以让 Codex 跑在 WSL2 里,那样用的是 Linux 的沙盒机制。
遇到报错先看 Codex 的权限模式设置,再查对应平台的文档,实现细节不用背。

出问题按这几条查
| 现象 | 先查什么 |
|---|---|
| 权限超出预期 | sandbox_mode 和 approval_policy 写的是什么 |
| 某个命令一直被拒绝 | 沙盒限制,网络权限,组织策略 |
| MCP 连不上 | 服务命令和环境变量,还有端口与认证方式 |
| 桌面端不继承代理变量 | 先验证真实代理端口,再把最小变量放进 .env 并重启 |
| 切换 provider 后旧会话不可见 | 先排除桌面端首屏条数限制,再看 provider 元数据 |
| 团队成员行为不一致 | 把共同规则写进 AGENTS.md,统一审批策略和沙盒模式 |
团队里怎么统一
有人用完全访问配 never,有人用工作区配按请求,出了问题很难排查。把推荐的配置通知出去,按同一套标准执行。
配置本身也该进版本控制。AGENTS.md 和项目级 config.toml,还有 rules 文件纳进仓库,克隆下来权限就一致了。
敏感数据要隔离。生产密钥不放在普通开发环境里,用 profile 的 deny 规则把 .env 和 ~/.ssh 标成禁区,比靠记性可靠。删除和部署,还有数据迁移这类操作,用 granular 或者 rules 强制走审批流程。
还有一条分工要说清。沙盒和审批管的是边界,不管代码质量。Codex 改出来的东西仍然要走正常的 review 流程。
收尾
把审批窗当成提示,而不是障碍。看懂它要做什么再决定放不放,被拒先想办法换路,权限只在明确知道卡在哪时才往上放。