Skip to content
FunCoding

Search

Search docs, Skills and MCP

沙箱与访问故障定位

用平台沙箱命令复现,检查受保护目录、Linux 命名空间和 Windows 设置。

This page has not been translated into English yet. The original Chinese version is shown below.

命令在普通终端成功、在 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 排障。