在 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 能力,但使用时必须严格遵守安全规范。