前言¶
DeepSeek Harness (DSH) 從 0.1.7 版本開始,在 grantWrite 功能中加入了 Low 完整性標籤,並將權限門檻從單純的 DACL 能力 ACE 提升至需要 WRITE_DAC 和 WRITE_OWNER。這導致普通目錄(僅有繼承的 Modify 權限)在寫入時會被拒絕,進而觸發進程啓動失敗和 UAC 升權彈窗。
本插件在宿主進程內,爲用戶顯式聲明的工作區目錄預置一條 Windows ACL 完全控制授權項(其中包含修改屬主權限),使 dsh 的文件沙箱能夠正常啓動受限執行進程,避免將會話臨時升權到完全訪問。
插件介紹¶
名稱:dsh-workspace-acl-allow
維護者:lovezi0
類別:admin-security
開源協議:MIT
該插件爲 DSH 的聲明式工作區模型提供權限補丁。它不會接管任何會話的工作目錄,權限放寬僅發生在用戶明確表達意圖(添加工作區或手動新增路徑)時。
核心功能¶
- 自動授權:在 dsh 中添加工作區時,插件會自動爲該目錄預置授權。
- 手動授權:在插件頁的「工作區授權白名單」中手動輸入目錄路徑並新增。
- 狀態展示:顯示授權狀態(已授權、失敗、受保護、不存在),失敗項可查看退出碼並重試。
- 管理功能:支持重新授權和移除記錄(僅移除插件列表,不撤銷已生效權限)。
- 內置保護:拒絕授權盤符根、系統目錄、用戶配置文件根目錄等敏感路徑。
- 配置選項:支持開啓遞歸授權、配置失敗重試冷卻時間、添加排除路徑。
安裝¶
通過官方插件管理器安裝:
dsh plugin --profile web add dsh-workspace-acl-allow
安裝後,配置層會隨 profile 一併加載。
使用方式¶
授權只在你明確表達意圖時發生,有兩個入口:
- 添加工作區:在 dsh 中添加工作區,插件會在記錄寫入後立即完成授權。插件啓動前已註冊的工作區會在加載時補齊。
- 手動新增:打開插件頁 → 本插件 → 詳情頁底部的「工作區授權白名單」,輸入目錄路徑並新增。
遇到「拒絕訪問」錯誤時,可在列表中查看狀態。如果狀態爲「授權失敗」,常見原因是目錄屬主不是當前用戶,或當前用戶沒有修改 DACL 的權限。
平臺與限制¶
- 僅支持 Windows 平臺:非 Windows 平臺上插件不生效。
- 顯式聲明原則:插件不會接管任何會話的工作目錄,也不會在某個目錄下開會話就靜默放寬權限。權限放寬必須由用戶在插件頁手動聲明。
- 授權範圍:授權只作用於工作區根目錄一條授權項,不遞歸修改子項權限(除非在配置中開啓
deepGrant)。 - 副作用:被處理的目錄上,當前用戶會從「繼承的修改」變爲「顯式的完全控制」。移除列表條目不會撤銷已生效的授權,由 dsh 自身授權體系負責。
配置項¶
配置寫在 profile 的配置層中。
| 字段 | 默認值 | 說明 |
|---|---|---|
watchWorkspaces |
true |
是否訂閱工作區新增事件。關閉後只剩手動新增入口。 |
deepGrant |
false |
是否遞歸處理子項。僅在子目錄繼承被破壞時開啓。 |
retryCooldownMs |
3600000 |
授權失敗項的冷卻時間(毫秒),冷卻內不重複嘗試。 |
excludePaths |
[] |
追加的排除模式(支持 * 與 **),只能追加內置保護項之外的內容。 |
總結¶
該插件通過在宿主進程內顯式授予完全控制權限,解決了 DSH 0.1.7+ 引入的低完整性標籤導致的權限門檻問題。它採用聲明式設計,避免了每次執行受限進程時的 UAC 彈窗,適合需要頻繁在 Windows 上使用 dsh 工作區沙箱的場景。