在 DeepSeek Harness(DSH)的使用場景中,精細控制工具調用和文件訪問範圍是保障環境安全的關鍵。DSH 提供了基礎的沙箱和審批機制,但在處理特定路徑匹配、命令前綴攔截等場景時,往往需要更細粒度的策略。dsh-permissions 插件提供了一個面向 Claude Code 風格的權限規則引擎,通過可視化編輯器管理規則,滿足這種精細化的安全控制需求。
插件定位¶
dsh-permissions 是一個規則引擎插件,爲 DeepSeek Harness 提供權限控制能力。它支持四級規則優先級、全局與工作區作用域疊加,以及可視化草稿式編輯。所有規則持久化存儲,並在運行時注入系統提示,讓模型知曉當前的權限限制。
核心功能¶
四級規則優先級¶
規則分爲四個優先級,從高到低依次爲:hard > deny > ask > allow。
* hard 規則:具有最高優先級,即使會話處於“全訪問”審批姿態(策略爲 never),hard 規則依然生效且不可豁免。
* deny 規則:直接攔截操作。
* ask 規則:根據會話的審批策略決定是否放行。
* allow 規則:跳過本插件的詢問,直接放行。
作用域與匹配¶
- 作用域疊加:支持
global全局規則和workspace工作區規則疊加。當兩者衝突時,deny規則永遠勝出。 - 通配符匹配:針對文件類工具(read/write/edit/glob/grep/read_image),支持路徑通配符匹配。例如,
write(*.pem)匹配以.pem結尾的路徑,write(.ssh)匹配路徑中任意位置的.ssh片段(不區分大小寫,統一處理斜槓)。 - 非文件工具:非文件工具按首參原文做前綴匹配;
grep工具額外匹配其path參數。
持久化與透明度¶
- 規則存儲於 Harness 的
settings.yaml中,重啓後保留。 - 生效的規則會被注入到系統提示中(標記爲
[active-permission-rules]),模型可見完整規則原文,以便調整行爲。
可視化編輯器¶
插件提供瀏覽器端的設置頁面,支持草稿式編輯。所有修改在點擊“保存並應用”前不會生效,用戶可以隨時“放棄修改”恢復上次保存的狀態。內置 16 條安全默認值(hard 規則),保護 .ssh、.aws、.gnupg、AppData、.pem、.key、.env、.htpasswd 目錄及 deny: pwsh(rm -rf *) 命令。
安裝與啓用¶
使用官方安裝器進行安裝。
dsh plugin add dsh-permissions
安裝完成後,重啓應用。在設置頁面中會出現“權限”選項,點擊即可進入可視化編輯器。
典型用法¶
通過命令或文件操作工具的攔截示例如下:
攔截命令工具
pwsh: 攔截該工具的全部調用
pwsh(npm run): 首參以 npm run 開頭
攔截文件寫入
write(*.pem): 文件路徑以 .pem 結尾
write(*secret*): 文件路徑包含 secret
write(.ssh): 路徑任意位置出現 .ssh 片段
write(C:\users\*): 絕對路徑前綴
適用場景與注意¶
適用場景:
* 需要限制 AI 只能操作特定目錄或文件類型的開發者。
* 希望攔截危險命令(如 rm -rf *)或特定前綴命令的場景。
* 需要在工作區級別強制執行安全策略的情況。
注意事項:
* 安全邊界:插件只會收窄現有沙箱或審批姿態,絕不繞過 DSH 沙箱或 tools.guard 守衛。
* 錯誤反饋:當規則攔截操作時,會以工具錯誤的形式呈現給模型(例如 Error: 權限規則拒絕... 或 硬規則拒絕(高於 full access,不可豁免)...)。
* 設置端點:設置頁面的路由是插件自建的端點,未暴露在 DSH api-proxy 的 settings 白名單中。
* 草稿機制:所有修改均先進入草稿態,必須手動保存並應用才能對 AI 行爲產生實際影響。
總結¶
dsh-permissions 爲 DeepSeek Harness 提供了一套從全局到工作區的、可視化的權限管理方案。它通過嚴格的優先級設計和通配符匹配,讓開發者能夠以極低的成本構建細粒度的安全策略,同時保持與 DSH 沙箱機制的兼容性。