DSH Admin Bridge:爲 DeepSeek Harness 提供 Sudo 權限模式

在 DeepSeek Harness (DSH) 的插件生態中,現有的權限模式通常包含只讀、工作區寫入和完全訪問。當智能體需要執行系統級操作(如管理容器或修改內核參數)時,這些標準模式無法提供必要的權限。DSH Admin Bridge 插件通過引入第四種權限模式——Sudo 訪問,解決了這一痛點。

插件介紹

zjlww/dsh-admin-bridge 是一個面向 Linux 環境的公共插件,專門爲 DSH 0.1.2-rc.1 設計。它爲 DSH 的權限選擇器添加了第四種模式:Sudo access(即 Root 權限)。該插件允許智能體通過圖形界面(GUI)密碼對話框請求臨時的 Root 訪問權限,並在獲得認證後執行命令。

核心功能

該插件主要提供以下能力:

  1. 第四種權限模式:在 DSH 的 composer 選擇器中增加“Sudo access”選項,圖標爲盾牌加鑰匙樣式。
  2. GUI 密碼認證:智能體或用戶通過調用 admin_request({}) 或在界面選擇該模式,觸發密碼輸入對話框。
  3. 任意 Bash 執行:認證成功後,默認開啓 allowAllCommands: true,允許智能體執行任意 Root Bash 命令。
  4. 工具集:提供四個管理工具:
    • admin_status:讀取當前模式狀態、命令範圍及配置的操作。
    • admin_request:請求 GUI 密碼對話框(冪等操作)。
    • admin_run:執行命令或配置的操作(operationId)。
    • admin_lock:退出 Sudo 模式或取消待處理的請求。
  5. 配置化操作:支持定義特定的操作(如 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 權限

有兩種方式觸發權限請求:

  1. 界面操作:在 Composer 的權限選擇器中選擇“Sudo access”。
  2. 代碼調用:在智能體代碼中調用 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 權限進行調試或修復。

注意事項

  1. 實驗性與危險性:插件默認 allowAllCommands: true,允許執行任意 Root Bash 命令。這破壞了沙箱邊界,可能導致主機被完全控制。請務必在可信的單用戶環境中使用,並仔細審查配置。
  2. 環境依賴:僅支持 Linux。需要 Node.js 22+、Python 3.10+(位於 /usr/bin/python3)以及 sudo(位於 /usr/bin/sudo)。
  3. 認證限制:僅支持密碼認證。不支持 MFA、requiretty 以及無密碼 sudo。
  4. 無獨立批准流程:該插件沒有獨立的“啓用審批”步驟,密碼輸入即視爲批准。
  5. 子代理限制:委託給其他智能體(子代理)的智能體無法請求、進入或繼承 Sudo 訪問權限。
  6. 密碼安全:密碼僅在認證時用於建立私有管道,不存儲,也不在聊天記錄中傳遞。

此插件爲 DSH 帶來了臨時 Root 能力,但使用時必須嚴格遵守安全規範。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜