如何通过沙箱机制阻止Codex CLI读取某些文件或目录?

人工智能 2026-07-08

假设我在 ~/private 下有一些私密数据,我不希望Codex读取并把它发送到服务器。我想把这点作为沙箱的一部分强制执行,也就是使用内核强制机制,根本阻止Codex读取该目录下的任何内容。该怎么做?

解决方案

以下的 ~/.codex/config.toml 变动似乎在Codex CLI v0.139.0、Ubuntu 25.10上可行:

approval_policy = "never"
sandbox_mode = "workspace-write"
default_permissions = "workspace_custom"

[permissions.workspace_without_media]
description = "Normal workspace sandbox with more restrictions"
extends = ":workspace"

[permissions.workspace_without_media.filesystem]
"~/private" = "deny"

这些选项的文档在这里

我的理解是,这些设置扩展了工作区权限,原本允许在当前工作目录(cwd)下写入、在任意位置读取,现在又禁止对某些绝对路径的读取,并且这是通过bwrap强制实现的,bwrap使用Linux内核特性,基本上阻止该进程及其后代在该路径下读取。

然后,如果我让Codex试着读取该目录,它会告诉我读取不了。我不太确定如何更准确地测试这一点,即它是不是在对我撒谎?不过这是我目前所知道的最好的做法。

如果你有一天改变主意,cd ~/private,并从那里启动Codex,它也无法读取,这可能是好事也可能是坏事,我不知道该如何克服这点。

站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章