Skip to content

禁止写到工作目录之外:2.1.314 新增 permissions.blockWritesOutsideWorkingDirectories ​

让 Claude Code 放手改代码时,很多人最担心的不是它改坏项目,而是它顺手改了项目以外的东西:家目录里的配置、另一个仓库的文件、系统路径下的脚本。CLI 2.1.314 新增了一个专门的权限开关来封住这个口子。

这个设置做什么 ​

新设置名为 permissions.blockWritesOutsideWorkingDirectories。开启后:

  • Write、Edit、NotebookEdit 这三个文件编辑工具,
  • 只要目标路径在工作目录之外,
  • 就会被拒绝,而且在任何权限模式下都一样。

「任何权限模式」是这条设置的重点。平时如果切到更宽松的模式,或者给了较大的 allow 规则,Claude 可能不再逐次询问就写文件;有了这个开关,写到工作目录以外这件事就成了一条硬边界,不会因为模式切换而放开。

怎么配置 ​

在 settings 文件的 permissions 下加上它即可,示例:

json
{
  "permissions": {
    "blockWritesOutsideWorkingDirectories": true
  }
}

工作目录包括启动 Claude Code 的目录,以及你用 --add-dir 等方式额外加入的目录。需要让 Claude 改别的目录时,把那个目录加进来,而不是关掉这个开关。

需要知道的边界 ​

按更新说明的描述,这个设置管的是 Write、Edit、NotebookEdit 三个工具。Bash 工具里执行的命令不在它的描述范围内,所以如果你想全面约束对外部路径的修改,仍然需要配合 Bash 的权限规则或沙箱一起使用。

适合谁 ​

  • 团队管理员:放进托管设置,给所有人一条统一的底线;
  • 经常用宽松模式的人:想要效率又不想担心「越界」;
  • 多仓库并行开发的人:避免在 A 项目会话里误改 B 项目的文件。

小结 ​

blockWritesOutsideWorkingDirectories 把「文件编辑只能发生在工作目录里」变成一条不随权限模式变化的规则。配置只有一行,搭配 Bash 规则或沙箱,安全感会更完整。

Claude-cn.org,专注于 Claude Code 中文教程