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 條評論

登入 後參與評論

還沒有評論,來搶沙發~