Claude Code 把沙箱 Bash 默认纳入常规权限流程,想免提示得显式打开开关
核心概要
Claude Code 的更新日志显示,沙箱内运行的 Bash 命令默认改走常规权限流程,不再自动放行;要保留免提示执行,需在设置中打开 sandbox.autoAllowBashIfSandboxed。同一批改动还让只读 git 命令在非项目或未受信任仓库中先询问,并把插件 MCP 包解压到插件目录下,使只读插件文件夹也能加载。这些变化针对的是智能体在本地执行命令与加载插件时的权限边界,而非模型能力本身。
深度剖析
沙箱内的 Bash 命令不再默认免提示执行,而是和普通命令一样进入常规权限流程,用户需要显式设置 sandbox.autoAllowBashIfSandboxed 为 true 才能恢复无提示运行。 此前沙箱内的 Bash 命令被当作可直接放行的一类,与沙箱外命令走不同的权限路径。 更新日志把这一条列为 Changed,并同时说明由托管设置开启沙箱的环境也要在最高优先级的托管源中设置该开关,才能继续无提示运行命令。
权限收紧还延伸到仓库信任与插件加载:只读 git 命令在非项目仓库或未受信任仓库中会先询问,插件 MCP 包改为解压到插件目录而不是插件文件夹内的缓存目录。 此前只读 git 命令在这些仓库中不询问,插件 MCP 包则解压到插件文件夹下的 .mcpb-cache。 更新日志分别以 Changed 条目记录这两项,并说明把目录用 --add-dir 加入而非写入 additionalDirectories 设置,才能让这类 git 命令免提示运行;只读插件文件夹因此可以加载。
启示与展望
这一条只描述 Claude Code 在沙箱开启时对 Bash 命令的默认权限处理,以及只读 git 命令在非项目或未受信任仓库中的询问行为;适用对象是使用该工具及其设置文件的开发者与管理员。
更新日志说明,由托管设置开启沙箱的环境必须在最高优先级的托管源中设置该开关,否则命令仍会进入提示流程;对依赖“始终允许”规则的定时任务,日志称其现在可能等待用户确认。
