dev.to | 📄 原文链接 | 2026-10-25 收录

Claude Code 的文件边界:--add-dir 到底限制了什么

来源:dev.to — 2026-10-24

📋 概述

很多团队照文档抄 --add-dir 就开跑,然后发现代理在自动模式下读 .env、改兄弟目录。原因在于把两层独立的权限当成了一层:沙箱根(由 --add-dir 和 additionalDirectories 管)决定 Bash 命令能在哪些目录里执行,允许路径(allowRead、allowEdit、denyRead、denyEdit)决定读写工具能直接碰哪些文件,配一层不约束另一层。更麻烦的是 Bash 继承的是沙箱根权限而不是允许路径规则,所以即使 .env 被 deny,cat .env 照样成功。想写 allowRead 加当前目录来恢复项目访问时,会把工作目录下所有文件重新暴露,包括 .env 和 secrets 目录。

🔑 核心要点

💡 金句

“Bash commands inherit sandbox root permissions, not allowed path rules, meaning a `cat .env` command succeeds even when `.env` sits in a denied path.”
译:Bash 命令继承的是沙箱根权限、而不是允许路径规则,所以即使 .env 位于被拒绝的路径下,一条 cat .env 仍然会成功。
← 返回 dev.to 首页