dsh-workspace-acl-allow:为显式声明的工作区目录预置 Windows ACL 授权

前言

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 的声明式工作区模型提供权限补丁。它不会接管任何会话的工作目录,权限放宽仅发生在用户明确表达意图(添加工作区或手动新增路径)时。

核心功能

  1. 自动授权:在 dsh 中添加工作区时,插件会自动为该目录预置授权。
  2. 手动授权:在插件页的「工作区授权白名单」中手动输入目录路径并新增。
  3. 状态展示:显示授权状态(已授权、失败、受保护、不存在),失败项可查看退出码并重试。
  4. 管理功能:支持重新授权和移除记录(仅移除插件列表,不撤销已生效权限)。
  5. 内置保护:拒绝授权盘符根、系统目录、用户配置文件根目录等敏感路径。
  6. 配置选项:支持开启递归授权、配置失败重试冷却时间、添加排除路径。

安装

通过官方插件管理器安装:

dsh plugin --profile web add dsh-workspace-acl-allow

安装后,配置层会随 profile 一并加载。

使用方式

授权只在你明确表达意图时发生,有两个入口:

  1. 添加工作区:在 dsh 中添加工作区,插件会在记录写入后立即完成授权。插件启动前已注册的工作区会在加载时补齐。
  2. 手动新增:打开插件页 → 本插件 → 详情页底部的「工作区授权白名单」,输入目录路径并新增。

遇到「拒绝访问」错误时,可在列表中查看状态。如果状态为「授权失败」,常见原因是目录属主不是当前用户,或当前用户没有修改 DACL 的权限。

平台与限制

  • 仅支持 Windows 平台:非 Windows 平台上插件不生效。
  • 显式声明原则:插件不会接管任何会话的工作目录,也不会在某个目录下开会话就静默放宽权限。权限放宽必须由用户在插件页手动声明。
  • 授权范围:授权只作用于工作区根目录一条授权项,不递归修改子项权限(除非在配置中开启 deepGrant)。
  • 副作用:被处理的目录上,当前用户会从「继承的修改」变为「显式的完全控制」。移除列表条目不会撤销已生效的授权,由 dsh 自身授权体系负责。

配置项

配置写在 profile 的配置层中。

字段 默认值 说明
watchWorkspaces true 是否订阅工作区新增事件。关闭后只剩手动新增入口。
deepGrant false 是否递归处理子项。仅在子目录继承被破坏时开启。
retryCooldownMs 3600000 授权失败项的冷却时间(毫秒),冷却内不重复尝试。
excludePaths [] 追加的排除模式(支持 * 与 **),只能追加内置保护项之外的内容。

总结

该插件通过在宿主进程内显式授予完全控制权限,解决了 DSH 0.1.7+ 引入的低完整性标签导致的权限门槛问题。它采用声明式设计,避免了每次执行受限进程时的 UAC 弹窗,适合需要频繁在 Windows 上使用 dsh 工作区沙箱的场景。

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

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

小夜