Claude Code 的 blockWritesOutsideWorkingDirectories:禁止写工作目录之外的文件(v2.1.314 新增)

Claude Code v2.1.314 新增 permissions.blockWritesOutsideWorkingDirectories,让 Write、Edit、NotebookEdit 在所有权限模式下都拒绝写工作目录之外的路径。本文讲它拦什么、不拦什么、怎么放行某个目录,以及为什么还要配沙箱。

NNathaniel bigo··原创首发·AI 辅助撰写
7 分钟读完
资料核对于 2026-11-05 · 依据官方文档与公开资料整理 Plus 账号
本文根据 Claude Code 官方《Configure permissions》、设置参考和 changelog 整理,资料核对于 2026-11-05。配图为本站整理的示意图,不是界面截图。本站(bigolab.com)不是 Anthropic 官方网站。

适用于谁

  • 用 Claude Code 时担心它把文件写到项目之外(比如你的主目录或别的项目)的人;
  • 在 bypassPermissions 模式下跑自动化、想加一道保险的人;
  • 管理团队配置,想在设置文件里统一限制的人。

结论先说

  1. 是什么:permissions.blockWritesOutsideWorkingDirectories,设为 true 后,Write、Edit、NotebookEdit 三个文件工具在所有权限模式下(包括 bypassPermissions)都拒绝写工作目录之外的路径。
  2. 例外:Claude Code 自己的一些文件,例如计划文件。
  3. 不管什么:官方明说这个键不限制 Shell 命令、MCP 工具和 hook 运行的程序,要限制 Shell 往哪写,得用沙箱(sandboxing)。
  4. 版本:需要 Claude Code v2.1.314(2026-10-30)或更高。
  5. 姐妹键:permissions.blockReadsOutsideWorkingDirectories 管读,一样在所有模式下生效。

两个 block 设置各管什么

图:本站根据 Claude Code 官方《Configure permissions》 整理的示意图

一、先弄清「工作目录」

官方说明:默认情况下,Claude 能访问你启动它时所在目录里的文件;这个目录是会话的主工作目录,直到你用 /cd 把会话移到别处。扩展访问范围有三种方式:

  • 启动时:命令行参数 --add-dir <路径>;
  • 会话中:/add-dir 命令;
  • 持久配置:在设置文件里写 additionalDirectories。

添加的目录,其文件遵循和原目录一样的权限规则:读取不再询问(网络路径除外),编辑权限则看当前权限模式。大仓库里怎么搭配这些设置,见 /guides/claude-code-large-repo-focus-directories。

二、怎么打开

在 .claude/settings.json(项目共享)、.claude/settings.local.json(仅自己)或用户设置里,把键设为 true。下面的写法是本站按官方键名写的示意:

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

要同时限制读取,再加上 "blockReadsOutsideWorkingDirectories": true。官方还提到,在自动(auto)模式下,Claude 第一次读取工作目录之外的内容时,Claude Code 会主动提示你打开读取那个键。设置文件的层级与位置见 /guides/claude-code-settings-json。

打开写入限制的做法

图:本站根据 Claude Code 官方《Configure permissions》 整理的示意图

三、它和普通权限提示有什么不同

普通情况下,写文件会弹出权限提示,你可以点允许。而在 bypassPermissions 这类跳过提示的模式里,这些提示根本不出现,Claude 想写哪里都行。这个键的意义是:不依赖你点不点同意,而是直接让文件工具拒绝,所以连 bypassPermissions 也绕不过。权限模式的区别见 /guides/claude-code-permission-modes。

四、需要写到外面怎么办

如果确实有一个外部目录需要写(例如另一个包、共享配置目录),官方的思路是把它「加为工作目录」,也就是上面第一节的三种方式之一,这样它就不再算「外部」。官方设置参考页对此有专门的一节(Let one directory through the read or write block),具体写法请直接看那一节。

五、一定要知道的盲区

官方明确写了:这个键只管 Write、Edit、NotebookEdit。如果 Claude 用 Bash 执行 echo x > ~/somewhere 或者 cp,或者通过 MCP 工具、hook 脚本写文件,它不会被拦。要限制 Shell 命令的写入位置,官方建议使用沙箱(sandboxing)。所以安全配置要分层:文件工具用这个键,Shell 用沙箱,再加上 permissions.deny 规则对具体命令和路径做限制。

常见问题

Q:设置了但 Claude 还是写到外面了?

先看它是不是用 Bash 写的,这个键不管 Shell。其次确认版本不低于 v2.1.314。

Q:它能代替权限提示吗?

不能,它只是额外的硬性边界。日常权限提示和模式仍然照常工作。

Q:团队怎么统一?

放在项目共享的 .claude/settings.json 里提交,或者用组织的托管设置。额度较紧或团队规模变大的话,可了解 Claude Code 订阅方案。

参考资料

  • Claude Code 官方:Configure permissions — https://code.claude.com/docs/en/permissions
  • Claude Code 官方:Settings reference — https://code.claude.com/docs/en/settings-reference
  • Claude Code 官方:Changelog(2.1.314)— https://code.claude.com/docs/en/changelog

Nathaniel 的更多内容

  1. 01

    Claude Personal Finance 是什么:连银行账户问花销、怎么开、只读权限、谁能用、怎么解除

    Claude 的 Personal Finance(beta)通过 Plaid 只读连接你的银行、信用卡、贷款和投资账户,在一页里看余额和花销并用自然语言提问。本文按官方帮助页讲谁能用(仅美国、Pro/Max/Ultra)、连接与解除步骤、Claude 能看什么,以及它做不到的事。

    Claude0
  2. 02

    Claude Code 离开一小时回来对话被「压缩」了:Idle compaction 是什么、条件、怎么关

    Claude Code 的 idle compaction 会在你离开约一小时后,把 200K token 以上的长对话先压缩成摘要,下一条消息就不用重新处理整段历史。本文按官方文档讲触发条件、看到什么提示、用 /config 或 idleCompaction 关闭、调阈值,以及恢复旧对话的用量警告。

    Claude0
  3. 03

    ChatGPT Computer History 是什么:Mac 桌面端的活动记忆怎么开、怎么暂停和清除、谁能用

    Computer History 是 ChatGPT macOS 桌面应用里默认关闭的可选功能,把你在应用和网站里的活动整理成记忆和时间线,供 ChatGPT 与 Codex 引用。本文按官方文档讲怎么开、记录什么不记录什么、怎么暂停与清除、数据存哪、谁能用,以及提示注入风险。

    ChatGPTCodex0
  4. 04

    Codex 输入框出现灰色建议:Composer predictions 是什么、Tab 接受、怎么关、谁能用

    Codex 桌面 App 的 Composer predictions(beta)会在 Codex 回完后,根据当前对话在输入框里给出下一条消息的建议,按 Tab 接受、不会自动发送。本文按官方帮助页讲谁能用、哪些线程支持、怎么关、算不算额度,以及没出现时怎么查。

    ChatGPTCodex0
  5. 05

    ChatGPT 隐私中心(Privacy Center)在哪里:隐私设置入口、三大分类和哪些套餐有

    ChatGPT 的 Privacy Center 把记忆、广告、位置、临时对话、锁定对话、两步验证、模型改进、数据导出和删号等入口集中到一页。本文按官方帮助页讲怎么打开、三大分类各有什么、哪些套餐有,以及它不会替你改任何设置。

    ChatGPT0
  6. 06

    Claude Code 处理大仓库:怎么让它只看需要的目录(子目录 CLAUDE.md、claudeMdExcludes、deny 规则)

    仓库太大,Claude Code 总在读无关文件、读进别的包的规则?本文按官方大仓库指南讲:从哪个目录启动、子目录 CLAUDE.md、claudeMdExcludes、Read 的 deny 规则、worktree.sparsePaths、additionalDirectories,以及一份合并后的配置示例。

    Claude0

同产品的其他教程

  1. 01

    Claude Code 在 CI 里跑:从本机 claude -p 到 GitHub Actions 的完整例子(自动审 PR、控成本)

    一条线走完 Claude Code 的 CI 用法:先在本机用 claude --bare -p 配 --json-schema 跑通,再写进 GitHub Actions 用 claude-code-action@v1 自动审 PR,最后加上 --max-turns、超时、并发限制来控成本,并附上常见故障的排查顺序。

    Claude0
  2. 02

    Claude Code 自定义 subagent 实例:测试员、调试员、只读调研员、只读数据库员怎么写

    四个可直接改的 subagent 实例:跑测试的 test-runner、找根因的 debugger、只读调研员、用 PreToolUse hook 限成只读 SQL 的 db-reader;讲 tools、disallowedTools、model、maxTurns 怎么配,怎么点名调用。

    Claude0
  3. 03

    Claude Code 的 CLAUDE.md 模板:前端、后端、数据分析各一份,附拆分与自检方法

    直接拿去改的三份 CLAUDE.md 模板(前端、后端、数据分析),每份都控制在官方建议的 200 行以内;再讲怎么用 .claude/rules 的 paths 拆出专属规则、用 @ 导入长文档,以及用 /context all 和 /doctor prompt-audit 检查是否生效。

    Claude0
  4. 04

    Claude Code 自己写一个插件并发布到 marketplace:plugin.json、marketplace.json、validate 到团队安装的完整流程

    想把自己写的 Skill、Hook 打包给团队用?按 Claude Code 官方 Plugins 文档,从目录结构、plugin.json、claude plugin validate,到写 marketplace.json、推到 Git、让同事一条命令安装,再到版本更新,走完一遍完整流程。

    Claude0
  5. 05

    Claude Code 写一个会自动触发的 Skill:从需求到触发,用 description、when_to_use 和 paths 控制它什么时候出场

    写好的 Skill 总是不触发,或者什么都触发?本文按 Claude Code 官方「Extend Claude with skills」走一遍完整实例:把「改数据库迁移前先检查」写成一个会自动出场的 Skill,包含 description、when_to_use、paths、附带脚本、触发测试和评估。

    Claude0
  6. 06

    Claude Code 配 Sentry MCP 排查线上报错:添加命令、浏览器授权、贴 issue 链接修 bug 和插件子智能体

    线上报错只能手动复制堆栈给 Claude Code?Sentry 官方提供 MCP 服务,可以让它直接读 issue、堆栈和 trace。本文按 Claude Code 官方 MCP 文档和 Sentry MCP 官方说明,讲添加命令、/mcp 授权、典型排查流程、插件方式和自托管注意事项。

    Claude0

0 条评论

登录 后参与评论

还没有评论,来抢沙发~