codex cli 在 Windows 沙盒环境中触发权限拒绝的解决方案

2026-04-11 14:161阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐
问题描述:

背景

codex cli在 Windows 沙盒环境(windows.sandbox = "elevated")中,对工作区外的路径没有完整权限(即使加 sandbox_workspace_write.writable_roots 也不行)

[!warning]
sandbox_mode = "danger-full-access" 可以解决,但这无异于脱裤子放屁,不是推荐的工作流

解决方案

简单来说,找到设备名称、codex 沙箱用户的组名、真实路径,加上 acl 权限就行了

举个例子

先找到 codex 沙箱用户的组名

一般来说,组名是 CodexSandboxUsers

如果不确定,可以让 codex 执行 whoami /groups

获取设备名称

设备名称在 系统设置 - 系统 - 关于 - 设备规格 中可以找到,或者在 cli 中执行 hostname 得到

找到要改的路径

uv 是安装到全局路径,然后以硬链接的方式放到项目中的,所以给项目中的虚拟环境改权限是无济于事的

要想找到真实路径,可以执行 fsutil hardlink list "{项目内依赖文件的路径}"

[!tip]-
严格来说,建立硬链接后,真实文件将存在于底层,无论是缓存目录还是虚拟环境文件,都是桌面系统对其的引用,都不算是真实路径。

我这里的“真实路径”,其实指的是“源文件路径”,因为硬链接模式下安装依赖时,不论是文件还是 acl 权限,都是源于缓存目录的

一般来说,是在 %localappdata%\uv\cache

修改权限

以管理员权限执行 icacls "{目标路径}" /grant "{设备名称}\{codex沙箱用户组名}:(OI)(CI)(RX)" /T /C

大功告成!

让codex再试试之前失败的操作吧!

[!tip]
由于缓存文件很多很零散,一般建议先删除缓存(保留根目录)和虚拟环境,再修改权限

之后再把依赖装回来

[!warning]
不过注意:硬链接需要把链接的所有文件都删除才是真的删除,如果你有多个项目、多个虚拟环境,需要先将所有虚拟环境都删除再修改权限、重装依赖,不然后者不会跟随新权限

网友解答:
--【壹】--:

感谢大佬!


--【贰】--:

解决一直困扰我的问题

问题描述:

背景

codex cli在 Windows 沙盒环境(windows.sandbox = "elevated")中,对工作区外的路径没有完整权限(即使加 sandbox_workspace_write.writable_roots 也不行)

[!warning]
sandbox_mode = "danger-full-access" 可以解决,但这无异于脱裤子放屁,不是推荐的工作流

解决方案

简单来说,找到设备名称、codex 沙箱用户的组名、真实路径,加上 acl 权限就行了

举个例子

先找到 codex 沙箱用户的组名

一般来说,组名是 CodexSandboxUsers

如果不确定,可以让 codex 执行 whoami /groups

获取设备名称

设备名称在 系统设置 - 系统 - 关于 - 设备规格 中可以找到,或者在 cli 中执行 hostname 得到

找到要改的路径

uv 是安装到全局路径,然后以硬链接的方式放到项目中的,所以给项目中的虚拟环境改权限是无济于事的

要想找到真实路径,可以执行 fsutil hardlink list "{项目内依赖文件的路径}"

[!tip]-
严格来说,建立硬链接后,真实文件将存在于底层,无论是缓存目录还是虚拟环境文件,都是桌面系统对其的引用,都不算是真实路径。

我这里的“真实路径”,其实指的是“源文件路径”,因为硬链接模式下安装依赖时,不论是文件还是 acl 权限,都是源于缓存目录的

一般来说,是在 %localappdata%\uv\cache

修改权限

以管理员权限执行 icacls "{目标路径}" /grant "{设备名称}\{codex沙箱用户组名}:(OI)(CI)(RX)" /T /C

大功告成!

让codex再试试之前失败的操作吧!

[!tip]
由于缓存文件很多很零散,一般建议先删除缓存(保留根目录)和虚拟环境,再修改权限

之后再把依赖装回来

[!warning]
不过注意:硬链接需要把链接的所有文件都删除才是真的删除,如果你有多个项目、多个虚拟环境,需要先将所有虚拟环境都删除再修改权限、重装依赖,不然后者不会跟随新权限

网友解答:
--【壹】--:

感谢大佬!


--【贰】--:

解决一直困扰我的问题