在 DeepSeek Harness (DSH) 的插件生態中,現有的權限模式通常包含只讀、工作區寫入和完全訪問。當智能體需要執行系統級操作(如管理容器或修改內核參數)時,這些標準模式無法提供必要的權限。DSH Admin Bridge 插件通過引入第四種權限模式——Sudo 訪問,解決了這一痛點。
插件介紹¶
zjlww/dsh-admin-bridge 是一個面向 Linux 環境的公共插件,專門爲 DSH 0.1.2-rc.1 設計。它爲 DSH 的權限選擇器添加了第四種模式:Sudo access(即 Root 權限)。該插件允許智能體通過圖形界面(GUI)密碼對話框請求臨時的 Root 訪問權限,並在獲得認證後執行命令。
核心功能¶
該插件主要提供以下能力:
- 第四種權限模式:在 DSH 的 composer 選擇器中增加“Sudo access”選項,圖標爲盾牌加鑰匙樣式。
- GUI 密碼認證:智能體或用戶通過調用
admin_request({})或在界面選擇該模式,觸發密碼輸入對話框。 - 任意 Bash 執行:認證成功後,默認開啓
allowAllCommands: true,允許智能體執行任意 Root Bash 命令。 - 工具集:提供四個管理工具:
admin_status:讀取當前模式狀態、命令範圍及配置的操作。admin_request:請求 GUI 密碼對話框(冪等操作)。admin_run:執行命令或配置的操作(operationId)。admin_lock:退出 Sudo 模式或取消待處理的請求。
- 配置化操作:支持定義特定的操作(如
whoami-root),在allowAllCommands爲false時作爲安全網。
安裝與配置¶
此插件未發佈到 npm,需通過 DSH 管理器從 GitHub 引入。
1. 安裝插件¶
使用以下命令安裝指定的已審覈提交版本:
dsh plugin --profile web add 'github:zjlww/dsh-admin-bridge#<reviewed-commit>' --ignore-scripts
2. 配置 cordis.patch.yml¶
將以下內容合併到 Web profile 的 cordis.patch.yml 中。請注意,此配置定義了最大租約時間以及命令執行策略。
- id: admin-bridge
config:
maxTtlSeconds: 60
# 警告:認證默認允許任意 Root Bash 命令。
# 若僅允許配置的操作,請將下方設置爲 false。
allowAllCommands: true
operations:
- id: whoami-root
label: Show effective user ID
executable: /usr/bin/id
args: ['-u']
timeoutSeconds: 5
3. 兼容性修補¶
DSH 0.1.2-rc.1 硬編碼了權限選擇器。插件提供了一個兼容性擴展,需要手動修補 DSH 運行時。
首先,檢查運行時是否存在兼容性問題:
node compat/permission-slot.mjs --check --runtime /path/to/dsh/runtime
如果檢查通過,應用修補:
node compat/permission-slot.mjs --apply --runtime /path/to/dsh/runtime
修補完成後,重啓現有的 DSH Web 進程,並刷新瀏覽器頁面。
使用方法¶
請求 Sudo 權限¶
有兩種方式觸發權限請求:
- 界面操作:在 Composer 的權限選擇器中選擇“Sudo access”。
- 代碼調用:在智能體代碼中調用
admin_request({})。
注意:admin_request 本身不授予權限,只是打開對話框。認證通過前,之前的模式保持不變。認證通過後,會獲得一個基於會話的臨時 Root 能力。
執行 Root 命令¶
獲得 Sudo 訪問權限後,可以使用 admin_run 執行命令。
示例 1:執行任意 Bash 命令
admin_run({
command: 'id -u',
workdir: '/',
timeoutSeconds: 5
})
示例 2:執行配置的操作
admin_run({
operationId: 'whoami-root'
})
執行結果應返回 0,表示當前用戶爲 Root,無需在命令前添加 sudo 前綴。
適用場景與注意事項¶
適用場景¶
- 需要智能體管理宿主機服務(如 Docker、systemd)。
- 需要在非完全訪問模式下,臨時獲取 Root 權限進行調試或修復。
注意事項¶
- 實驗性與危險性:插件默認
allowAllCommands: true,允許執行任意 Root Bash 命令。這破壞了沙箱邊界,可能導致主機被完全控制。請務必在可信的單用戶環境中使用,並仔細審查配置。 - 環境依賴:僅支持 Linux。需要 Node.js 22+、Python 3.10+(位於
/usr/bin/python3)以及sudo(位於/usr/bin/sudo)。 - 認證限制:僅支持密碼認證。不支持 MFA、
requiretty以及無密碼 sudo。 - 無獨立批准流程:該插件沒有獨立的“啓用審批”步驟,密碼輸入即視爲批准。
- 子代理限制:委託給其他智能體(子代理)的智能體無法請求、進入或繼承 Sudo 訪問權限。
- 密碼安全:密碼僅在認證時用於建立私有管道,不存儲,也不在聊天記錄中傳遞。
此插件爲 DSH 帶來了臨時 Root 能力,但使用時必須嚴格遵守安全規範。