OpenClaw 權限管理指南:Sandbox、Tool Policy 與 Elevated
開發者在處理自動化任務時,最頭痛的莫過於權限配置與環境隔離的衝突。當你以為腳本會在主機上順利執行,卻因為沙盒限制而頻頻報錯,這種「明明權限開了卻跑不動」的挫折感,相信大家都不陌生。
透過 OpenClaw 的 Sandbox、Tool policy 與 Elevated 機制,你可以精確控制工具的執行環境與權限邊界。這篇文章將帶你釐清這些控制項的運作邏輯,確保你的 OpenClaw 任務能精準執行。
使用 inspector 工具來查看 OpenClaw 當前實際的執行狀態,這能幫你快速釐清問題所在:
openclaw sandbox explainopenclaw sandbox explain --session agent:main:mainopenclaw sandbox explain --agent workopenclaw sandbox explain --json它會輸出以下資訊:
- 有效的沙盒模式、範圍與工作區存取權限
- 當前 session 是否處於沙盒中(main 與非 main 的區別)
- 有效的沙盒工具允許/拒絕清單(以及這些規則是來自 agent、全域還是預設設定)
- Elevated 閘道與修復建議的 key 路徑
Sandbox:工具運行的位置
Section titled “Sandbox:工具運行的位置”沙盒化行為主要由 agents.defaults.sandbox.mode 進行控制:
"off":所有內容都在主機上執行。"non-main":僅非 main 的 session 會被沙盒化(這通常是群組或頻道中常見的「意外」)。"all":所有內容都會被沙盒化。
請參考 Sandboxing 以查看完整的矩陣資訊(包含範圍、工作區掛載與映像檔)。
Bind mounts (安全性快速檢查)
Section titled “Bind mounts (安全性快速檢查)”docker.binds會穿透沙盒檔案系統:你掛載的任何內容都會以你設定的模式(:ro或:rw)在容器內可見。- 如果省略模式,預設為讀寫;建議針對原始碼或機密檔案使用
:ro。 scope: "shared"會忽略個別 agent 的掛載設定(僅套用全域掛載)。- OpenClaw 會對掛載來源進行兩次驗證:先檢查標準化後的來源路徑,再檢查解析最深層現有父目錄後的路徑。透過符號連結(symlink)父目錄的逃逸方式,無法繞過被封鎖的路徑或允許的根目錄檢查。
- 不存在的葉節點路徑仍會被安全檢查。如果
/workspace/alias-out/new-file透過符號連結父目錄解析到被封鎖的路徑,或是超出設定的允許根目錄,掛載將被拒絕。 - 掛載
/var/run/docker.sock等同於將主機控制權交給沙盒;請務必謹慎操作。 - 工作區存取權限 (
workspaceAccess: "ro"/"rw") 與掛載模式是獨立的。
Tool policy:哪些工具存在或可被呼叫
Section titled “Tool policy:哪些工具存在或可被呼叫”這裡有兩個層級的設定非常重要:
- Tool profile:
tools.profile與agents.list[].tools.profile(基礎允許清單) - Provider tool profile:
tools.byProvider[provider].profile與agents.list[].tools.byProvider[provider].profile - 全域/個別 agent 工具政策:
tools.allow/tools.deny與agents.list[].tools.allow/agents.list[].tools.deny - Provider 工具政策:
tools.byProvider[provider].allow/deny與agents.list[].tools.byProvider[provider].allow/deny - 沙盒工具政策(僅在沙盒化時生效):
tools.sandbox.tools.allow/tools.sandbox.tools.deny與agents.list[].tools.sandbox.tools.*
經驗法則:
deny永遠優先。- 如果
allow非空,其他所有未列出的項目都會被視為封鎖。 - 工具政策是硬性限制:
/exec無法覆蓋被拒絕的exec工具。 /exec僅會更改授權發送者的 session 預設值;它不會授予額外的工具存取權。 Provider 工具 key 接受provider(例如google-antigravity)或provider/model(例如openai/gpt-5.4)。
工具群組 (簡寫)
Section titled “工具群組 (簡寫)”工具政策(全域、agent、沙盒)支援 group:* 項目,這些項目會展開為多個工具:
{ tools: { sandbox: { tools: { allow: ["group:runtime", "group:fs", "group:sessions", "group:memory"], }, }, },}可用的群組包括:
group:runtime:exec、process、code_execution(bash被視為exec的別名)group:fs:read、write、edit、apply_patchgroup:sessions:sessions_list、sessions_history、sessions_send、sessions_spawn、sessions_yield、subagents、session_statusgroup:memory:memory_search、memory_getgroup:web:web_search、x_search、web_fetchgroup:ui:browser、canvasgroup:automation:cron、gatewaygroup:messaging:messagegroup:nodes:nodesgroup:agents:agents_listgroup:media:image、image_generate、video_generate、ttsgroup:openclaw:所有內建的 OpenClaw 工具(不包含 provider 外掛)
Elevated:僅限 exec 的「在主機上執行」
Section titled “Elevated:僅限 exec 的「在主機上執行」”Elevated 並不會授予額外的工具權限;它只會影響 exec。
- 如果你處於沙盒中,執行
/elevated on(或將elevated: true用於exec)會在沙盒外執行(審核機制可能仍然適用)。 - 使用
/elevated full來跳過該 session 的 exec 審核。 - 如果你已經在直接執行,Elevated 實際上沒有作用(仍受閘道限制)。
- Elevated 不具備技能範圍限制,也不會覆蓋工具的允許/拒絕設定。
- Elevated 不會授予來自
host=auto的任意跨主機覆蓋;它遵循正常的 exec 目標規則,並且僅在設定或 session 目標已經是node時保留node。 /exec與 Elevated 是分開的。它僅調整授權發送者的個別 session exec 預設值。
閘道設定:
- 啟用:
tools.elevated.enabled(以及選用的agents.list[].tools.elevated.enabled) - 發送者允許清單:
tools.elevated.allowFrom.<provider>(以及選用的agents.list[].tools.elevated.allowFrom.<provider>)
請參考 Elevated Mode。
常見的「沙盒監獄」修復方法
Section titled “常見的「沙盒監獄」修復方法”「工具 X 被沙盒工具政策封鎖」
Section titled “「工具 X 被沙盒工具政策封鎖」”請選擇以下其中一種修復方式:
- 停用沙盒:
agents.defaults.sandbox.mode=off(或針對個別 agent 使用agents.list[].sandbox.mode=off) - 在沙盒內允許該工具:
- 從
tools.sandbox.tools.deny中移除它(或針對個別 agent 的agents.list[].tools.sandbox.tools.deny) - 或者將其加入
tools.sandbox.tools.allow(或個別 agent 的允許清單)
- 從
「我以為這是 main,為什麼它被沙盒化了?」
Section titled “「我以為這是 main,為什麼它被沙盒化了?」”在 "non-main" 模式下,群組/頻道 key 並非 main。請使用 sandbox explain 顯示的主 session key,或是將模式切換為 "off"。
- Sandboxing — 完整的沙盒參考(模式、範圍、後端、映像檔)
- Multi-Agent Sandbox & Tools — 個別 agent 的覆蓋設定與優先順序
- Elevated Mode
如果你在設定過程中遇到困難,歡迎隨時透過 AI Setup Assistant 尋求協助。
OpenClaw Expert
還是卡住了?
如果這篇文件沒有解決你的情境,直接問 OpenClaw Expert,拿到可執行步驟。