Codex新版沙箱机制对比旧版?安全性与权限差异【说明】
坦白说,这次Codex新版沙箱在安全性和权限控制上确实下了不少功夫——不仅新增了更精细的写入模式,还把审批策略默认值做了调整,网络访问控制逻辑也重新梳理了一遍。升级之前,最好先搞清楚这些变化到底意味着什么,免得自动化脚本突然跑不通,那就尴尬了。

沙箱模式新增 workspace-write 模式
老版本只有两个极端选项:一个是 read-only,完全不让你写任何东西;另一个是 danger-full-access,直接把整个磁盘都敞开了。说句实话,这两个选项对于日常开发来说,要么太保守,要么太奔放。
新版本在中间加了一个 workspace-write 模式,
这个模式只允许修改当前工作目录及其子目录里的文件,父目录和系统路径一概拒绝写入
启用方式很简单,终端里跑一条命令就行:codex config set sandbox.mode workspace-write。
举个实际场景:你正在维护一个Git项目,希望AI自动修改src/和tests/下的文件,但绝对不能让AI碰.git/或者/etc/这种敏感目录。这种情况下,workspace-write就是唯一合理的选择——read-only保存不了修改,danger-full-access又可能会误删关键配置。该怎么选,一目了然。
权限审批策略默认值变更
新版本把approval_policy的默认值从"never"改成了"untrusted"。这个变化的影响不小。
如果你不想改配置,直接运行codex run --task "refactor auth module",系统会自动触发交互式确认——像chmod、rm、curl这些高风险操作,都会弹出提示让你确认。这对于生产环境来说,确实多了一层安全保障。
当然,如果你非要坚持旧习惯,也可以显式覆盖:codex config set permissions.approval_policy never。不过,值得提醒的是:这个设置在2025年10月起已经被标记为“不推荐”,而且部分新指令(比如自动提PR)会强制忽略这个策略,要求人工确认。说白了,旧路子迟早走不通。
网络访问控制逻辑重构
这个改动比较隐蔽,但影响面不小。改造之前,先看操作步骤:
第一步:打开~/.codex/config.json
第二步:找到network.allowDomains字段
第三步:注意了——空数组[]在新版中解释为“仅允许localhost和127.0.0.1”,不再是旧版那种“彻底断网”的意思。
老版本里,[]意味着所有外网请求都被拦截;新版本则保留了本地服务调用的能力。举个例子,如果你需要访问本地Docker API(unix:///var/run/docker.sock)或者前端开发服务器(http://localhost:3000),这个变更就能避免任务卡在curl超时上。说实话,这个设计更贴近实际开发场景——毕竟谁还没个本地mock服务做集成测试呢?
如果你依然需要完全禁用网络,那就必须显式设置为["none"]——这是新版中唯一被识别为“全阻断”的字符串值。其他任何写法都不行。