dsh-acl-sandbox-patch
在终端中运行以下命令:
dsh plugin install masknull/dsh-acl-sandbox-patch
将以下提示词粘贴到 DeepSeek Harness 对话框中:
在 DeepSeek Harness 中执行 dsh plugin install masknull/dsh-acl-sandbox-patch 安装本插件(源码:https://github.com/masknull/dsh-acl-sandbox-patch),安装后重启 DSH 使 bundle 预加载生效。
插件介绍
从 DSH 0.1.7 起,workspace-write 策略在每条命令 spawn 前都会为工作区做 Windows ACL 授权:写入 capability Allow、限制删除的 Deny,以及 Low 完整性强制标签。在非系统盘(如 D:/E:/F:)上,新建目录往往只有 Authenticated Users 的 Modify,创建者没有 FullControl;再叠加 UAC 过滤令牌下管理员组权限不可用,属主也拿不到 WRITE_OWNER,于是 SetNamedSecurityInfoW 写标签阶段会返回 ERROR_ACCESS_DENIED,沙箱 fail-closed,命令根本起不来。位于用户 Profile 下的工作区或 read-only 策略通常不会踩中这条路径。
本插件是面向上述场景的临时补丁:通过 koffi 预加载钩子与服务端 API 表两条路径包装沙箱自身的 FFI 调用,先按出厂语义完整尝试授权;仅在 Win32 5 时降级为只写 DACL(去掉 Low 标签要求),并在需要时跳过把子进程令牌降到 Low,同时用状态文件与工作区标签直侦测让 runner 与服务端决策一致。它不修改任何系统级 ACL,也不削弱 capability 令牌、删除 Deny 或 fail-closed 的其它失败处理;只是在本来就打不上 Low 标签的环境里,放弃这一层完整性纵深防御,让 workspace-write 恢复可执行。
适合在 Windows(NTFS)上使用 DSH >= 0.1.7-rc.1、工作区落在非系统盘且每条命令都卡在 grantWrite / Win32 5 的用户。上游 discussion 关闭或沙箱包修复后,应卸载本插件以恢复完整出厂沙箱行为;其它平台会自动 no-op。
使用场景
- 工作区在 D/E/F 等非系统盘,每条 workspace-write 命令在 spawn 前因 SetNamedSecurityInfoW 返回 Win32 5 而失败
- 升级到 DSH 0.1.7 后沙箱 fail-closed,whoami、echo 等基础命令都无法执行
- 需要在不改动系统 ACL 的前提下恢复可写工作区的正常命令与文件操作
适合人员
- 在 Windows NTFS 上使用 DSH 0.1.7-rc.1 及以上、且工作区不在用户 Profile 下的用户
- 非系统盘大仓库开发者,受默认 DACL 与 UAC 过滤令牌叠加影响者
- 知晓这是上游 ACL 标签问题的临时方案、上游修复后愿意卸载恢复出厂行为者