codex沙箱默认只读,需配置workspace-write策略、设置sandbox.root_dir及trusted_directories白名单才能允许写操作。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

当你在Codex CLI中执行git commit、npm install或修改项目文件时,突然弹出“权限拒绝:无法写入/opt/myapp/config.yaml”或“拒绝访问C:\Users\Alice\project\node_modules”,说明当前工作目录未被Codex沙箱识别为受信任路径——它默认只允许读取,写操作会被拦截。
确认当前是否处于信任目录
进入你的项目根目录,运行:codex config get sandbox.root_dir。如果输出为空或不是你当前所在路径,说明Codex根本没把你当前项目纳入沙箱管辖范围,所有写操作都会被拒。
再运行:codex config get sandbox.policy。若返回read-only,则白名单机制尚未启用,必须先升级策略。
启用workspace-write并设置沙箱根目录
第一步:将沙箱策略设为可写模式
执行:codex config set sandbox.policy workspace-write
第二步:绑定项目根目录为沙箱起点
假设你当前在/home/bob/frontend,运行:codex config set sandbox.root_dir "/home/bob/frontend"
【路径必须用双引号包裹,且不能以.或..开头】
第三步:重启Codex CLI使策略生效
关闭当前终端,新开一个,再cd进项目目录验证。
配置trusted_directories白名单(关键步骤)
方法一:直接编辑config.toml(推荐)
打开~/.codex/config.toml,在[sandbox]区块下添加:
trusted_directories = ["/home/bob/frontend/src", "/home/bob/frontend/tests"]
⚠️ 注意:路径必须是绝对路径;若含空格或中文,如C:/Users/张三/my project,必须用双引号包裹。
方法二:命令行动态设置(适合临时调试)
执行:codex config set sandbox.trusted_dirs '["src", "tests", "scripts"]'
【必须用单引号包裹整个JSON数组,否则解析失败】
这一步会把sandbox.root_dir下的指定子目录标记为可读写区域,其他路径仍受限制。
验证信任目录是否生效
1. 进入项目中某个已列入白名单的子目录,例如cd src;
2. 执行一个写操作:echo "test" > dummy.txt;
3. 若文件成功生成且无报错,则信任目录配置完成。
如果仍提示越权,检查codex config get sandbox.trusted_dirs输出是否与你设置一致——常见错误是忘了加引号导致JSON解析失败,输出为空数组。











