Claude Code 权限守卫误伤:配置 Read 拒绝规则后 cd 复合命令全被拦

railapex · ghdev · 2026-09-03

用户报告 Claude Code 2.1.257–2.1.259 在 Windows Git Bash 上的权限 bug:只要设置里存在任意 Read() deny 规则(如 Read(/.env)),任何含 cd 的复合 Bash 命令(; 或 && 后跟相对路径读操作)都会触发 cd-compound-read 手动审批——即使 cd 目标是绝对字面路径,甚至 bypass-permissions 模式下也出现。子代理的 Bash 调用会在父会话逐个弹出审批,多代理并行时几乎每读一个文件就要点一次。

作者用 claude -p --permission-mode auto 做了无头矩阵测试:cd D:/repo && sed ... 单独允许,但加上 ; 或 echo 即被拦截。原因守卫无法静态解析 cd 后相对路径指向的文件,于是保守要求审批。已附复现,issue 被标记 bug/has repro/platform:windows。

原文链接 →

「编程与Agent」频道最新

更多「编程与Agent」频道 AI 资讯 →