DSH 多用户服务:一套 DSH 上的团队账号与权限

前言

DeepSeek Harness(DSH)默认面向单人或单会话使用。团队在同一台服务器上共用一套 DSH 时,常见做法是共用同一登录态或手工拆目录,难以区分成员会话、文件与模型授权,也不便于统计用量。下面介绍社区插件 DSH 多用户服务(sunbigfly/dsh-multi-user-service),它在一套 DSH 进程内提供统一服务账号、成员目录边界、权限、会话、文件及用量管理,模型、Skills、Agent 预设、工具、终端和代码执行仍走 DSH 原生能力。

这是什么

DSH 多用户服务由维护者 sunbigfly 发布,在 SkillHub 分类为 admin-security。源码版本 v0.1.1,已在 DSH 0.2.1-rc.2 上验证(README 写明当前主要在 Linux/WSL 服务端验证)。许可证为 MIT。安装包 npm 名称为 @sunbigfly/dsh-multi-user-service。

定位可以概括为:一台服务器、一套 DSH,为整个团队提供浏览器登录;成员各自管理会话与文件,管理员统一管理账号、权限和用量。

核心功能

以下能力均来自项目 README,按模块归纳。

账号与成员

  • 创建与邀请成员、分配管理员;支持归档、恢复及归档后删除账号,并保留会话和文件。
  • 成员在 我的账号 → 修改登录密码 自助改密;管理员在 账号状态 中改显示名、角色与状态。
  • 邀请仅可使用一次,24 小时有效;可在 邀请记录 中撤销或重新签发。

权限分配

  • 按成员授权模型、工具、Skills、MCP、Agent 预设和目录。
  • 工具支持黑名单与白名单,新账号默认黑名单;支持筛选跨页全选、批量设置及查看生效范围。

会话、文件与执行

  • 会话 与 文件 为两个独立导航入口;管理员可统一管理,文件列表支持右键操作。
  • 执行工具:在共享环境右侧登记 CLI、扫描已配置的 tool-runner 来源、查看操作与配置授权;指定工具与扫描工具分页展示。
  • 单独安装并启用 dsh-browser 后,可在右侧页签浏览网页(需 Linux、Chrome/Chromium 和 bubblewrap);多用户服务只负责账号与工具授权,未满足条件时不显示浏览器入口,账号功能仍可用。

用量与外观

  • 搜索、筛选并分页查看成员用量;可设置并发任务数及每日、每月 tokens 额度。
  • 统一设置共享 Logo、名称与标签,登录页复用;支持自定义首页标语。

执行边界(安全相关)

成员业务文件读写限定在本人目录与管理员授权的共享目录,覆盖文件入口、Bash、Node 代码执行、终端及子 Agent;「完全访问」预设也不能越过账号目录边界。执行使用 DSH 随附的原生 Landlock 启动器。宿主共享 MCP 和无法验证隔离的第三方工具插件暂不对成员开放。网络仍沿用 DSH 与服务器配置,本边界不宣称网络或完整虚拟机隔离。

安装与启用

已有可用的 DSH 服务即可;账号、权限和文件管理使用 DSH 现有运行环境,不要求另装 Python 或 systemd。成员不需要 sudo 权限。安装包同时包含「工具权限归属」「DSH 多用户服务」「执行工具」三个配套组件。

  1. 在服务器本机的 DSH 插件页打开 实验性插件 → 自定义插件索引。
  2. 在 发现 → 添加索引源 填入:
https://github.com/sunbigfly/dsh-multi-user-service/releases/latest/download/index.json
  1. 搜索 DSH 多用户服务,安装并启用。
  2. 按仓库文档 已有服务接入 配置成员访问入口,继续使用这一份 DSH。

索引安装 GitHub Release 中的稳定版本;main 为当前开发源码。在同一 profile 更新即可保留账号、会话与文件;更新后刷新已打开的管理页面。早期旧名称的包需先在原 profile 停用、卸载,再安装新包。已有 dsh-lan 命令与 /lan/ 路径继续兼容。

典型用法

首次设置

  1. 在服务器本机已授权的 DSH 页面中配置可用模型。
  2. 打开侧栏 多用户服务,创建管理员账号。
  3. 按向导确认成员数据目录,可选用默认只读的推荐共享目录。
  4. 设置服务登录域名或 IP,核对当前服务端口与模型状态,再完成设置。

完成后管理员和成员都通过同一服务入口登录,角色只认服务端账号授权。例如入口形态为 http://team-server.local:18620/lan/(实际协议、地址和端口以部署为准)。

添加成员

  1. 打开 多用户服务 → 成员管理,选择 新建账号 或 邀请成员。
  2. 先填写账号信息,再配置权限;也可复制现有成员的授权作为起点。
  3. 新建账号时分享 我的账号 中的成员入口;邀请时复制生成的完整链接,成员打开后填写账号信息即可加入。

常用 URL 入口

入口 用途
http(s)://服务器地址/ 转到统一服务入口
http(s)://服务器地址/lan/ 所有服务账号登录、接受邀请,按角色使用功能
http(s)://服务器地址/lan/admin/ 兼容旧地址,转到同一入口

可用于公司内网或已配置的公网入口;成员使用管理员创建或邀请的账号登录。

适用场景与注意

适合谁:需要在单台服务器上部署一套 DSH、让多人通过浏览器各自登录的团队或内网环境;需要按人分配模型/工具/目录并限制用量的管理员。

环境与依赖:package.json 要求 Node >=22、DSH 0.2.1-rc.2。插件以当前 DSH 进程权限运行;安装前应阅读 GitHub 仓库 源码与 MIT 许可证。可选运维脚本、备份与恢复见 配置与运维,这些脚本不是插件运行前提。

DSH 生态采用「一切皆插件」思路;SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。本插件在目录页归类 admin-security,便于按管理与安全类插件检索。

结尾

DSH 多用户服务把账号、权限边界、会话文件隔离和用量控制收拢到同一套 DSH 里,避免为团队重复搭多套实例。进一步了解可访问 SkillHub 目录页 sunbigfly/dsh-multi-user-service 与 GitHub 仓库 github.com/sunbigfly/dsh-multi-user-service。

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

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

小夜