Bible Network Crypto DeFi Onchain RWA AI Agent Stablecoin Chain SAFU CryptoTax DeFAI AGI Claude Me Claude Skill Claude Design Claude Cowork
獨立知識媒體
與任何項目無關聯
學會用 Claude,每件事都做得更好
claudeskill-me.com
最新
執行 /compact 之後,Claude 突然不會用 Skill 了?不是故障,官方設計就是不會自動補回來  ·  Claude Code 現在支援 AGENTS.md 了,但網路上一半文章說的規則是過時的——CLAUDE.local.md 會讓它悄悄失效  ·  Hook 明明顯示「blocking error」,檔案卻還是被改了?PostToolUse 跟 PreToolUse 的「阻擋」根本不是同一件事  ·  設了 Auto Mode 就以為安全了?權限模式跟沙盒邊界是兩道完全不同的防線,混為一談會出事  ·  Messages API 新增「隨選壓縮」Beta 功能:由開發者自己決定何時把對話濃縮,而不是被動等系統觸發  ·  Claude Cowork 與 Chat 正式合併,同步推出 Claude Docs 與 Claude Slides 兩項新工具
名詞解析 · tools-integration

Sandbox

沙盒(Sandbox)
tools-integration advanced

30 秒版 · 給沒耐心的人
Claude Code 內建的作業系統層級隔離機制,只作用在 Bash、PowerShell、Monitor 等會產生子行程的指令,限制這些指令實際能存取的檔案系統路徑與網域,跟管「要不要問你」的權限模式是互補但獨立的兩層防線。
完整解說 +
01 · 這是什麼?

沙盒實際上限制的是什麼,跟權限模式的差別在哪?

官方文件把兩者的分工講得很明確:權限規則在任何工具真正執行之前先做判斷,適用於 Bash、Read、Edit、WebFetch、MCP 等幾乎所有工具類型,決定的是「這個工具呼叫該不該被允許執行」;沙盒則是作業系統層級的強制邊界,只作用在 Bash、PowerShell 和 Monitor 這類會產生子行程的指令上,決定的是「這個指令實際執行時,能存取哪些檔案系統路徑、能連到哪些網域」。

兩者的執行方式也不一樣:權限判斷發生在指令執行之前,依據指令字串本身和(在 Auto Mode 下)分類器的判斷;沙盒邊界則是作業系統直接對正在執行的行程做強制限制,不管模型當初選擇執行什麼,只看這個行程實際碰到了什麼——即使一個被核准的指令做了超出預期的事,沙盒仍然會生效。

02 · 為什麼存在?

沙盒預設允許存取哪些範圍,不夠的話能不能擴大?

預設情況下,沙盒化的指令可以寫入當前工作目錄、一個每個使用者專屬的暫存目錄,以及任何透過 --add-dir、/add-dir 或 permissions.additionalDirectories 額外加入的目錄。如果子行程(例如 kubectl、terraform、npm)需要寫入這個範圍以外的路徑,可以用 sandbox.filesystem.allowWrite 開放特定路徑的存取權限,這些路徑會在作業系統層級強制執行,涵蓋沙盒內執行的所有指令與其子行程。

網路存取的設計邏輯類似:指令第一次需要連到新網域時,Claude Code 會提示你批准;在 Auto Mode 下,Claude 則會把指令需要的主機名稱直接附在指令上,交給分類器一起審查。無法被沙盒化的指令(例如需要連到未授權主機的指令)會回退到一般的權限審核流程,介面上會把這類提示標題顯示成「Bash command (unsandboxed)」,跟一般的「Bash command」區分開來。

03 · 如何影響你的決策?

沙盒有兩種模式,auto-allow 跟一般權限模式差在哪?

Auto-allow 模式:只要指令可以被沙盒化,Claude Code 就會在沙盒裡執行它並自動核准,不詢問你的許可;無法被沙盒化的指令才會回退到一般權限流程。即使在這個模式下,幾種情況仍然會強制走一般流程:明確的 deny 規則永遠優先生效;針對關鍵路徑的 rm 或 rmdir 指令仍會走一般審核;像 Bash(git push *) 這種限定內容的 ask 規則,即使指令已被沙盒化,依然會強制跳出提示。

一般權限模式:所有 Bash 指令都走一般權限流程,即使它已經被沙盒化也一樣——控制力更強,但需要更多次核准。這裡容易搞混的是,沙盒的 auto-allow 跟權限層的 Auto Mode 是兩套完全獨立的機制:auto-allow 讓指令通過,是因為沙盒邊界已經把它框住了;Auto Mode 讓指令通過,靠的是分類器對這個動作內容的判斷,兩者可以同時啟用、彼此不互相取代。

04 · 你該怎麼辦?

設定沙盒的時候,最常見的實際錯誤組合是什麼?

社群文章〈Claude Code Permission Modes in 2026〉記錄了一個直接的失效案例:一套設定允許 run_command 這個工具被呼叫,卻忘了把沙盒限制在安全的目錄樹範圍內——結果代理程式可以毫無阻礙地執行類似 rm -rf / 的指令。這裡的關鍵是,「允許呼叫這個工具」跟「沙盒實際框住的範圍」是兩個完全獨立的設定項,前者放行了不代表後者也收緊了。

同一篇文章還記錄了另一個案例:團隊為 code review 設定逐一詢問的 Prompt 模式,批准了一次 npm audit fix 的請求,但沙盒設定把 /node_modules 掛載成可讀寫、且具備 root 權限,權限審核這一層順利通過,沙盒隔離這一層卻沒能把安裝套件時可能發生的惡意行為限制在該有的範圍內。

資料來源:Configure the sandboxed Bash tool - Claude Code Docs、Claude Code Permission Modes in 2026: What allowedTools, Whitelists, and Sandbox Boundaries Actually Restrict
實際例子 +

官方文件給出的合法用途範例:Linux 或 WSL2 上,沙盒依賴 bubblewrap 跟 socat 兩個套件來強制檔案系統隔離跟網路轉送;macOS 則直接用內建的 Seatbelt 框架,不需要額外安裝。如果沙盒因為依賴套件缺失或平台不支援而無法啟動,預設行為是顯示警告後改成不設沙盒執行指令;要讓這種情況直接失敗而不是悄悄退回不設沙盒,需要另外把 sandbox.failIfUnavailable 設成 true,這通常是需要強制沙盒作為安全把關的受管理部署環境才會用到的設定。

常見誤解 +
✕ 誤解1
× 誤解:只要沙盒設得夠嚴,就不需要再管權限規則,實際是:沙盒只覆蓋 Bash、PowerShell、Monitor 這類會產生子行程的工具,Read、Edit、WebFetch、MCP 呼叫等其他工具類型完全依賴權限規則把關,兩層各管不同攻擊面,缺一不可
✕ 誤解2
× 誤解:沙盒的 auto-allow 模式跟權限層的 Auto Mode 是同一套機制的兩種說法,實際是:兩者完全獨立運作,auto-allow 靠沙盒邊界框住風險,Auto Mode 靠分類器審查動作內容,可以同時啟用但彼此不互相取代
這件事跟你有什麼關係 +
直接影響

好處是作業系統層級的強制邊界,不看模型選擇執行什麼、只看行程實際碰到什麼,即使核准的指令做了超出預期的事仍會被擋下,是比單純審查指令字串更硬的一道防線;代價是只覆蓋會產生子行程的工具類型,涵蓋範圍有限,而且設定項(檔案系統、網域、模式)分散在多個獨立開關裡,真正要收緊防護需要同時檢查沙盒設定跟權限規則兩邊,不是裝了沙盒就能一次到位。

提問
請至少輸入 10 個字
更多相關主題