Codex

权限、沙箱与安全

Codex approval_policy、sandbox_mode、网络访问、自动审批审查、Rules、危险模式和 Passion8 场景下的安全边界。

Codex 的安全边界由两层组成:沙箱决定命令和文件系统能做什么,审批策略决定什么时候必须停下来问你。

AGENTS.md 是工作建议,不是安全边界。真正限制命令、文件、网络和高风险动作的是 sandbox、approval、rules、hooks、MCP 工具权限和系统/企业策略。

#核心概念

控制什么常用字段
Sandbox技术边界:读写路径、命令、网络sandbox_modesandbox_workspace_write
Approval什么时候暂停并请求确认approval_policy
Reviewer谁审批准入请求approvals_reviewer
Rules哪些命令可在 sandbox 外放行/提示/禁止.codex/rules/*.rules
Hooks生命周期检查、通知、阻断.codex/hooks.json[hooks]

#常用模式

组合适合场景风险
read-only + on-request陌生项目、审查、规划需要手动批准改动
workspace-write + on-request日常开发默认工作区内可自动读写
workspace-write + never受控自动化失败时不会问你,要有日志和 git 兜底
danger-full-access + never外部隔离容器或一次性 VM本机边界基本放开

启动示例:

codex --sandbox read-only --ask-for-approval on-request
codex --sandbox workspace-write --ask-for-approval on-request

配置示例:

~/.codex/config.toml
sandbox_mode = "workspace-write"
approval_policy = "on-request"
approvals_reviewer = "user"

#Sandbox 模式

模式行为
read-only可检查文件;写文件和命令需要审批
workspace-write可在工作区内读写并运行常规命令;出界、联网等需要审批
danger-full-access不做沙箱限制;只在外部环境已经隔离时使用

workspace-write 下,部分路径仍会被保护,例如 .git/.codex/.agents/。这能降低代理误改版本库元数据、配置和能力文件的风险。

#Approval 策略

策略行为
untrusted非可信命令需要询问
on-request在沙箱内自动执行,越界时询问
never不弹出审批,在现有权限内尽力完成

approval_policy = "never" 不等于无限权限。它只是不问你;如果 sandbox 不允许某个动作,动作仍可能失败。

#网络访问

本地 workspace-write 默认不开命令网络访问。需要显式打开:

~/.codex/config.toml
[sandbox_workspace_write]
network_access = true

如果需要限制访问域名,再启用 network proxy:

[features.network_proxy]
enabled = true
domains = { "api.openai.com" = "allow", "example.com" = "deny" }

[sandbox_workspace_write]
network_access = true

网络规则是 allowlist-first。deny 优先于 allow* 代表非常宽的网络访问,生产环境尽量不用。

Web search 是另一层设置:

web_search = "cached"
# web_search = "live"
# web_search = "disabled"

Live search 和联网命令都会增加 prompt injection 风险。网页、issue、README、日志里的指令都应视为不可信输入。

#自动审批审查

Codex 支持把符合条件的审批请求交给 automatic review:

approval_policy = "on-request"
approvals_reviewer = "auto_review"

它只审查本来就需要审批的动作,例如 sandbox escalation、被阻止的网络请求、side-effecting MCP/app tool。已经在 sandbox 内允许的动作不会额外走 review。

自动审查会增加模型调用和用量。团队场景下应结合 managed configuration 限制可用 reviewer。

#Rules

Rules 用来控制命令在 sandbox 外的放行、提示或禁止。它适合处理“只允许这几个命令越界”的场景。

~/.codex/rules/default.rules
prefix_rule(
    pattern = ["gh", "pr", "view"],
    decision = "prompt",
    justification = "Viewing PRs is allowed with approval",
    match = ["gh pr view 123"],
    not_match = ["gh pr --repo org/repo view 123"],
)

测试:

codex execpolicy check --pretty \
  --rules ~/.codex/rules/default.rules \
  -- gh pr view 123 --json title,body

Rules 对 shell wrapper 会尽量拆分简单命令链。复杂 shell 特性无法安全拆分时,会保守地按整个 shell 调用处理。

#危险模式检查表

开启 full access 或 --dangerously-bypass-approvals-and-sandbox 前先确认:

检查标准
Git当前目录有干净可恢复的 git 状态
密钥.env、生产凭据、SSH key 不在可误读范围
网络不会访问未知网页或运行来自 issue 的脚本
目录只在一次性 worktree、容器、VM 或可信项目
回滚有明确的 diff review 和 revert 方式

#Passion8 场景

使用 Passion8 时,模型请求走 https://passion8.cc/v1,但本机文件、命令、网络和 MCP 权限仍由 Codex 本地安全模型控制。不要把“Provider 换成 Passion8”理解成“本机风险降低”。

建议默认:

sandbox_mode = "workspace-write"
approval_policy = "on-request"
web_search = "cached"

[sandbox_workspace_write]
network_access = false

需要联网安装依赖时,临时开权限并让 Codex解释原因;完成后恢复默认。

#官方参考

Support / 支持

Need help? / 需要帮助?

接入、计费与模型异常可邮件联系;服务可用性以状态页为准。For setup, billing, or model issues, email us. Check the status page for uptime.

也可使用右下角微信 / QQ 客服 · WeChat / QQ support is available at the bottom right