Administrator
发布于 2026-08-29 / 45 阅读
0
0

Codex CLI 在 Windows 下的 Sandbox 权限死循环排查记录

最近体验了一下 OpenAI 的 Codex CLI,准备在 Windows 上配置它的 sandbox。

本来以为就是正常安装、登录、运行,结果第一步就被 Windows 权限问题卡住了。

启动 Codex 后提示:

Couldn't set up your sandbox with Administrator permissions

You can still use Codex in a non-admin sandbox.
It carries greater risk if prompt injected.

大意是:无法使用管理员权限创建 sandbox,可以继续使用普通 sandbox。

我的第一反应是:

那是不是需要管理员运行 Codex?

于是切换到管理员 PowerShell,再次启动:

codex

结果出现:

Error: start the Windows daemon from a non-elevated terminal; 
shared clients must not inherit administrator privileges

这就很奇怪了。

普通用户:

需要管理员权限创建 sandbox

管理员:

不能启动 Codex daemon

看起来像一个权限死循环。


后来发现:管理员不是用来运行 Codex 的

问题的关键在于理解错了 Codex 的设计。

我原本以为:

Codex 需要管理员权限,所以应该管理员运行。

实际上:

管理员权限只负责初始化 sandbox 环境。

Codex 本身仍然应该以普通用户运行。

流程应该是:

管理员权限
    |
    | 创建 sandbox
    v

sandbox 初始化完成

    |
    v

普通用户运行 codex

而不是:

管理员 PowerShell
    |
    v
codex

手动初始化 sandbox

正常情况下,Codex 会自动请求管理员权限完成初始化。

但是我的情况自动流程失败了。

最后找到 Codex CLI 自带的 sandbox setup 命令:

codex sandbox setup --elevated --current-user

注意:

这个命令并没有出现在普通用户看的 Windows 官方使用流程里。

它更多出现在:

  • CLI help

  • 源码

  • GitHub issue

里面。

执行方式:

先打开管理员 PowerShell:

codex sandbox setup --elevated --current-user

等待初始化完成。

然后关闭管理员窗口。

重新打开普通 PowerShell:

codex

这次就正常进入了。


为什么管理员运行 Codex 会失败?

这个错误:

start the Windows daemon from a non-elevated terminal

其实已经说明原因了。

Codex 不希望后台 daemon 继承管理员权限。

原因也很好理解:

如果整个 AI agent 都运行在管理员权限下:

  • 文件权限过高

  • 命令执行风险增加

  • prompt injection 后影响范围更大

所以设计成:

管理员:

帮忙安装隔离环境

普通用户:

日常运行 agent


这次踩坑最大的经验

不要看到 Windows 弹管理员权限,就认为:

“以后都要管理员运行”。

很多开发工具都是类似设计:

  • 安装阶段需要管理员

  • 运行阶段不需要管理员

Codex 的 sandbox 也是这样。


一个小疑问:为什么官方文档没写这个命令?

后来查了一下:

codex sandbox setup --elevated --current-user 确实存在。

但是它不是普通用户流程中的推荐入口。

官方希望用户走:

codex

↓

自动请求管理员权限

↓

完成 sandbox setup

只有自动流程失败时,才需要手动执行。

所以如果你只是正常安装,大概率看不到这个命令。


最后的正确流程

Windows 下配置 Codex sandbox:

第一次:

管理员 PowerShell:

codex sandbox setup --elevated --current-user

之后:

普通 PowerShell:

codex

不要:

# 管理员窗口
codex

否则会遇到:

shared clients must not inherit administrator privileges

这次问题最大的收获不是记住一个命令,而是理解了 Codex Windows sandbox 的权限模型:

管理员负责搭环境,普通用户负责使用。

不要把两个角色混在一起。


评论