权限安全约 6 分钟

Codex 权限怎么配:沙箱、审批与联网的区别

把“能做什么”和“何时询问”分开配置,用只读检查和工作区编辑两个场景理解权限,附旧配置迁移提醒。

两个问题,不能用一个开关回答

sandbox_mode 限制命令在技术上可以访问和修改的范围;approval_policy 决定什么时候可以请求批准。“不再询问”并不等于“允许所有操作”。同样,允许工作区写入,也不表示所有目录和所有网络目标都能访问。

只想检查代码时

单次只读检查
codex --sandbox read-only --ask-for-approval on-request

先要求 Codex 阅读 README、描述目录结构并指出一个需要调查的问题。不要要求它通过创建临时文件来证明只读。如果出现写操作或提权请求,核对任务是否真的需要,再决定是否批准。

日常编辑项目时

~/.codex/config.toml · 合并到顶层
sandbox_mode = "workspace-write"
approval_policy = "on-request"

这个组合允许在已授权工作区执行常规编辑与命令,需要额外范围时再请求审批。某些环境中 .git、.codex、.agents、.aws 等路径仍受保护;能改源码,不代表能直接写这些目录。提交、发布还应遵循你的明确工作约定。

联网与网页搜索是不同的能力

命令联网、网页搜索和 MCP 连接不能用同一个结果判断。网页搜索成功,不代表 npm 或 Python 子进程也能访问网络。默认 workspace-write 的命令联网通常关闭;只有确有需要时才配置允许的网络范围,并考虑组织策略。

想解决的问题应该检查
安装依赖失败执行命令的网络权限、代理、包源和证书
读网页失败web_search 设置及当前工具能力
MCP 连接失败MCP 端点、认证和对应执行环境
改工作区外文件失败目标路径授权与沙箱边界

旧 untrusted 配置需要迁移

若你要的是交互式只读检查,可以使用本文的 read-only + on-request。若你依赖不受信任项目派生出的严格审批,官方还有项目 trust_level 的独立机制,且会影响项目配置是否加载;不要把两者当作等价替换。先明确需求,再根据官方迁移说明选择。

怎样确认实际生效

  1. 保存之前记录原值,尤其是已经存在的命名权限配置或组织管理要求。
  2. 新开会话,用 /status 检查当前权限;需要时用 /debug-config 查覆盖来源。
  3. 先运行一个与任务相关、范围明确的小检查,不用敏感文件测试边界。
  4. 不符合预期时,检查 CLI 参数、Profile、项目配置和管理员要求,而不是直接关闭沙箱。

命名权限 Profile 也是当前支持的方式,但与 legacy sandbox_mode 属于不同配置表达;不要未经核对把两套完整模板叠加。更多场景差异可以用 配置 Profiles 管理,工作约定则放进 AGENTS.md。

依据与版本说明

依据以下官方文档整理。示例中的地址、模型和路径需按你的环境替换;旧版本与组织管理环境可能有不同限制。

资料核对日期:

更多指南

接着把配置用起来

生成配置、核对接入步骤,或按报错定位下一项检查。

客户端 + CLI 接入打开配置工具