沙箱与访问故障定位
用平台沙箱命令复现,检查受保护目录、Linux 命名空间和 Windows 设置。
命令在普通终端成功、在 Codex 失败时,先确认它访问的目录、网络、临时路径和运行身份。用 /status 看有效工作区,/debug-config 查配置覆盖和 requirements,不要直接把失败归因于模型。
复现平台沙箱
官方提供以下命令形式:
codex sandbox macos [--permissions-profile <name>] [--log-denials] [COMMAND]...
codex sandbox linux [--permissions-profile <name>] [COMMAND]...
codex sandbox windows [--permissions-profile <name>] [COMMAND]...方括号表示可选参数,不要按字面输入。选择当前系统,替换 profile 和待测命令。macOS 的 --log-denials 有助于定位拒绝;sandbox 也有 debug 别名。
工作区可写但特定路径只读
默认 workspace-write 保护 .git 目录/文件、指针指向的 Git 目录,以及存在的 .codex 和 .agents 目录,保护递归应用。使用 worktree 时也要检查实际 Git 元数据路径。
在自定义 profile 下还要核对更具体的 read/deny,以及企业 deny_read。不要用对工作区普通文件的一次成功写入证明全部子路径都可写。
Linux 与容器
确认 PATH 中可找到发行版提供的 bwrap。没有时的 bundled helper 需要非特权用户命名空间;内核、AppArmor 或容器限制会使其失败。Ubuntu 24.04 和 25.04 的 AppArmor profile 安装方式不同,应按官方 Sandbox 的对应系统步骤处理。
容器还可能阻止 namespace、setuid bwrap 或 seccomp。先确认宿主/容器支持,再选择组织批准的容器隔离方案;调整访问策略不能修复缺失的操作系统能力。
网络拒绝
分别查是否授予联网、代理是否启用、目的地是否匹配 Allow/Deny、是否解析到私网,以及是否另受 Cloud 环境策略约束。普通命令网络、搜索和 MCP 的路径不同,测试时须选择实际失败的工具。
Windows 的 elevated 设置、错误 1385 和日志见原生 Windows 排障。