给 AI 编程 Agent 收权限:Claude Code 把 Bash 沙箱缩到单条命令,Copilot 让你选成本三档

终端窗口内一条命令被发光六边形护栏罩住,只开出一条琥珀色通道连向远处服务器节点,外围青色网格围栏封锁其余网络;右侧三根由硬币、天平、钻石几何符号表示的开关杆分别接向三块芯片
内容摘要

Claude Code 2.1.271 把 Bash 沙箱权限从整场会话收到单条命令,只放行这条命令自己声明的域名;GitHub Copilot 同期给自动选模型加了效率、均衡、智能三档。本文拆解这两个开关怎么配、怎么审,以及它们对团队 AI 编程的权限治理和成本核算意味着什么。

过去几天,AI 编程工具集中补了一课:权限和账单价。

9 月 14 日,Anthropic 发布 Claude Code 2.1.271,把网络权限的粒度从”整场会话”缩到了”单条命令”;同一天,GitHub 给 Copilot 的自动选模型加上了效率、均衡、智能三档。9 月 15 日 Claude Code 又跟了一个 2.1.272 的小补丁。

一个在收权限,一个在放成本开关。看上去是两件不相干的事,指向的其实是同一个变化:AI 编程工具正在从”个人效率插件”变成”组织要签字的生产基础设施”。

一、Claude Code 2.1.271 到底改了什么

权限和沙箱是两层,不是一层

先把概念厘清,这也是很多人配错规则的原因。在 Claude Code 的安全模型里,沙箱和权限是两个互补层:

  • 沙箱在操作系统层面约束 Bash 命令及其子进程能做什么;
  • 权限系统管的是工具、文件路径和域名的访问。

2.1.271 的头部改动就是在这个模型上加了一层:auto 模式下带沙箱的 Bash、PowerShell 和 Monitor 命令,现在支持逐命令的 allowed_domains。

单条命令的域名白名单,怎么理解

原来的网络授权是会话级的——你放行了一次 curl,整个会话的网络面就宽了一格。新版把域名列表挂在命令上:某条命令需要哪些主机,就在评审这条命令的时候一起被审、一起被放行;其他主机一律拒绝。

关键点是授权不继承。上一条命令拿到了 a.com,下一条命令想访问 b.com,必须自己带一份清单重新过审。

对跑 auto 模式的团队来说,这比”网络开或关”这种二选一的开关实用得多——命令依然能自动执行,但它能碰到的范围被写死了。这恰好是 Claude Code 那次”安全审查”删掉 700GB 之后最需要补的那块短板:问题不在于 Agent 太笨,而在于它被授予的权限远大于它需要做的事。

顺带修掉的四个 Bash 权限检查漏洞

同一版本在权限检查上补了四个真实存在的漏洞,值得单独看一眼,因为它们都属于”看着像放行、其实是绕过”的类型:

  • fmt、column 这类命令,在无法识别的选项后面读取的文件会被跳过检查;
  • 通配符展开出来的文件会被漏掉,比如 grep -v dir/* file 这种写法;
  • shell 变量声明标志可能掩盖真正执行的命令;
  • 带两次目录切换、子 shell,或 cd 加 git 链式的 Bash 命令,在 blockReadsOutsideWorkingDirectories 设置的 bypass 和 auto 模式下跳过了提示。

如果你的团队一直在用通配符放行规则,这几条值得专门验一遍。

二、同一版本里还有四个值得配的开关

omitClaudeMd。 加在 agent frontmatter 或 –agents JSON 上,让自定义和插件子智能体启动时不加载用户级、项目级和本地的 CLAUDE.md,但受管策略文件照常加载。用途很明确:不让一个职责很窄的辅助子智能体继承整个仓库的指令集。

–drain-marker-file。 给自建 runner 用的。这个文件存在时,收到 SIGTERM 排空会把退出上报为 host drain(仅遥测用途)。跑自托管 runner 又没做优雅排空的团队,等于一次重启就会丢掉正在跑的会话。

modelPricing 倍数。 受管设置和 Claude apps 网关的价格块现在支持 1 以上的倍数,最高 10,用于内部加价结算。多团队共用一套额度、需要内部计费的场景会用到。

–accept-command。 claude plugin install 和 update 可以用它精确接受上一次 –json 运行展示的那条命令,不再是无差别 -y。

修复清单里还有三条和团队日常最相关:MCP OAuth 客户端注册的几个错误(拒绝授权会莫名触发新注册、另一个 redirect URI 的注册被错误复用、并发写入可能删掉有效注册或留下不匹配的注册);Code Review 在 GitHub 报错但其实已经创建了 review 时会重复发同一条发现;后续评审不再重新贴出已被人工解决的安全发现。

三、Copilot 的成本三档:它不等于限价

GitHub 在 9 月 14 日给 Copilot 的自动选模型加了三档偏好:

  • efficiency(效率):优先压低成本,适合快而直接的任务;
  • balance(均衡):成本、质量、延迟一起权衡,适合日常开发;
  • intelligence(智能):优先质量,针对复杂任务。

有两个容易误读的地方。第一,三档用的是同一个模型池,auto 仍然逐条评估每个提示——你选了 intelligence,给一个函数补 docstring 这种简单活,它照样可能落到小模型上。第二,计费跟着实际选中的模型走,不跟着档位走,付费订阅者通过 auto 计费的用量仍保留 10% 折扣。

也就是说,”选效率”不等于设了消费上限,”选智能”也不等于预留了最大的模型。档位表达的是路由偏好,不是价格承诺。想核对实际结果,直接看响应旁边的模型名:Copilot Chat 悬停可见,Copilot CLI 在终端显示,Copilot app 在模型选择器上标出来。

想真看出差别,得换个度量。按请求算单价会漏掉重试、被回滚的补丁和额外的评审时间;更有意义的指标是每个被接受的编码任务成本——把模型费用、开发者的评审和返工时间加总,再除以通过团队验收门槛的任务数。

四、老达点评:这两件事其实是同一件事

AI 编程工具在 2026 年已经换赛道了。 上半场比的是能不能干、跑分多高;下半场比的是权限能不能收得住、账单价能不能算清。Claude Code 2.1.271 那份更新日志里,新增 9 项、修复 49 项,修复占比超过一半——这不是一个还在证明自己能力的产品的节奏,这是一个已经进了生产、开始还技术债的产品的节奏。

权限粒度细化是必然结果。 前面提到的 700GB 事故,加上 恶意 Git 仓库一次攻破 7 款 AI 编程工具,其实是同一个逻辑:只要 Agent 能读外部内容又持有宽权限,攻击面就必然成立。从这个角度看,把网络授权从”整场会话”缩到”单条命令”,是这一年安全事件堆出来的必然动作,而不是一次普通的版本更新。

成本可视化是另外半边。 企业侧已经在为 Agent 的账单价头疼。Cursor 发布自托管机器解决的是代码不出内网的问题,Copilot 让代码审查直接批准 PR解决的是流程闭环,现在 Copilot 把成本与质量的权衡交给开发者自己选,等于承认”一刀切的模型选择”已经不够用了。再配合 Claude Code 的加价倍数设置,一条线已经很清晰:AI 编程的账,正在从开发者个人的订阅费,变成组织要核算的生产成本。

给团队三条落地建议:

  1. 把权限清单当代码评审。 2.1.271 之后,逐命令的域名授权就是一个天然的评审点。别只配规则,也要定期翻 permission_denials 日志,看被拦下来的到底是什么——那些才是真实的风险信号。
  2. 重跑一遍 Bash 权限测试。 修掉的四个漏洞都属于”以为拦住了其实没拦住”,历史配置里可能有漏网规则,值得专门验一次。
  3. 先均衡档,再测两端。 Copilot 三档建议从 balance 起步,从最近的工作里挑简单、常规、复杂各四个任务,固定仓库状态和提示词跑一轮,记录选中模型、耗时、用量和返工时间,用成本除以被接受任务来定档。吴恩达讲 Coding Agent 的 5 项能力里有一点说得很对:能连跑几小时从来不是本事,跑完的东西能不能被接受才是。

如果你刚开始搭这套东西,建议按顺序看:AI 编程工具专题先建立工具全景,再看 AI 智能体与自动化专题补齐工作流编排的思路。权限这件事,早配早省事。

发表评论

您的电子邮箱地址不会被公开,必填项已标注 *