自动修复 Windows 沙箱写入授权失败并静默重试命令
29.9/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/12 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add 0-v-0/dsh-grantwrite-patch该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:待复验
是什么
dsh 原生插件 · security
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 20 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件
查看扫描证据(共 8 处,展示前 8 条)
- 读取本地文件src/index.ts:99
if (statSync(base).isDirectory()) - 读取本地文件src/index.ts:126
if (existsSync(script)) {return script} - 写入本地文件src/index.ts:183
mkdirSync(opts.outDir, { recursive: true }) - 执行外部命令固定命令src/index.ts:184
const child = spawn( - 执行外部命令固定命令src/index.ts:259
const child = spawn( - 写入本地文件src/patch.ts:47
mkdirSync(dir, { recursive: true }) - 写入本地文件src/patch.ts:49
copyFileSync(PRELOAD, copy) - 读取本地文件src/size-probe.ts:37
handle = await opendir(dir)
扫描于 2026/11/1(0 天前) · 范围 全包扫描(包内未声明入口) · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 修复写入授权失败
- 静默重试命令
Windows 沙箱 ACL 修复插件,给 DeepSeek Harness(dsh)用——修掉 grantWrite 失败(SetNamedSecurityInfoW Win32 5),再悄悄重试命令
README
由 DeepSeek 最新模型翻译生成dsh-grantwrite-patch
为 DeepSeek Harness (dsh) 开发的 Windows 沙箱 ACL 修复插件 —— 修复 grantWrite 失败(SetNamedSecurityInfoW Win32 5),并静默重试原命令。
它解决什么问题
Windows 上 workspace-write 沙箱在执行命令前要往工作区根目录 DACL 写写入授权(AclWriteGrant.add → grantWrite)。当链上某个目录缺有效 WRITE_DAC/WRITE_OWNER 时,SetNamedSecurityInfoW 以 Win32 5(ERROR_ACCESS_DENIED)失败,该工作区所有受限命令都在 spawn 前报错:
Error: SetNamedSecurityInfoW failed (Win32 5): grantWrite
本插件拦截这个错误,自动修复权限后重试命令,让你无感继续工作。
工作方式
插件按工作区大小自动选择策略:
- 普通工作区:在内存层拦截错误,零副作用地重试,不改任何文件权限。
- 大工作区:探测到对象过多时(默认超过 2 万),主动给工作区补一次完整权限——这样不用每次都重复授权,省下大目录的等待时间。
展开完整文档(README 剩余 1 节)
dsh-grantwrite-patch 为 DeepSeek Harness (dsh) 开发的 Windows 沙箱 ACL 修复插件 —— 修复 grantWrite 失败(SetNamedSecurityInfoW Win32 5),并静默重试原命令。 它解决什么问题 Windows 上 workspace-write 沙箱在执行命令前要往工作区根目录 DACL 写写入授权(AclWriteGrant.add → grantWrite)。当链上某个目录缺有效 WRITE_DAC/WRITE_OWNER 时,SetNamedSecurityInfoW 以 Win32 5(ERROR_ACCESS_DENIED)失败,该工作区所有受限命令都在 spawn 前报错: Error: SetNamedSecurityInfoW failed (Win32 5): grantWrite 本插件拦截这个错误,自动修复权限后重试命令,让你无感继续工作。 工作方式 插件按工作区大小自动选择策略: - 普通工作区:在内存层拦截错误,零副作用地重试,不改任何文件权限。 - 大工作区:探测到对象过多时(默认超过 2 万),主动给工作区补一次完整权限——这样不用每次都重复授权,省下大目录的等待时间。 - 兜底:上面的方法失效时,跑诊断脚本修一次权限再重试;脚本不可用时退回 icacls 授权。 三种方式互不冲突,按需叠加。 运行要求 | 项 | 要求 | | 操作系统 | Windows(NTFS)。其他平台插件自动不启用 | | DSH 版本 | >= 0.1.7-rc.1。完整诊断脚本修复需 >= 0.2.0-rc.2 | | 适用沙箱 | 仅 workspace-write 需要(read-only / danger-full-access 不需要) | 安装 从 npm 安装 dsh plugin --profile web add dsh-grantwrite-patch 从源码安装(GitHub) git clone https://github.com/0-v-0/dsh-grantwrite-patch cd dsh-grantwrite-patch pnpm install && pnpm build dsh plugin --profile web add . 说明: - dsh plugin 等同于向 profile 添加依赖。bundle 插件的完整包名出现在 profile 的 dsh.profile.bundles 列表后即被加载(自动添加);bundle 补丁(cordis.patch.yml)在下一次启动时生效。 - 源码安装必须先跑 pnpm build:lib/ 不入库,且 FFI preload 是从已安装包内解析的(lib/preload.cjs)。 - 更新时重新执行相同命令即可(add dsh-grantwrite-patch@latest)。 - 也可以手动把 cordis.patch.yml 的 - insert: 段并入宿主 cordis.yml。 配置 - insert: id: grantwrite-patch name: dsh-grantwrite-patch config: enable: true mode: auto # auto | patch | repair objectThreshold: 20000 # 对象数达到此值视为大工作区,触发持久修复 probeTimeoutMs: 10000 # 大小探测超时;超时按大工作区处理 probeCooldownMs: 3600000 # 每工作区探测判定缓存时长 repairTimeoutMs: 120000 maxRetries: 1 cooldownMs: 60000 appendDiagnostics: true grantFallback: true # 诊断脚本不可用(0.1.7)/失败时回退裸 icacls grant;磁盘根拒绝 scriptPath: <绝对路径> # 默认: 从 @deepseek-ai/dsh-sandbox-windows-acl 包 assets 解析 (DSH >= 0.2.x) outDir: <绝对路径> # 默认: $DSH_HOME/grantwrite-patch(无 DSH_HOME 时 ~/.dsh/grantwrite-patch) 安全模型 - patch 路径:不改任何系统 ACL、无持久副作用;保留 WRITE_RESTRICTED 受限令牌、capability SID Allow ACE、world SID FILE_DELETE_CHILD Deny。失去的仅是 Low 完整性标签这一层纵深(子进程 Medium),且仅在本来打不上标签的环境发生。 - repair 路径:修复范围由脚本的 -AllowRoot 硬边界约束:只改目标目录或严格在其内部的对象;reparse 点与托管应用树拒绝;deny ACE 永不删除;每次改动先备份、后重读验证,失败回滚本批改动。 - grant 回退(grantFallback):脚本不可用或失败时跑裸 icacls <root> /grant "<user>:(OI)(CI)F。磁盘根硬拒(isDriveRoot:D:\ 等盘根拒绝,只授权真实工作区);不碰继承策略、不删 deny ACE;可 icacls <root> /remove:g "<user>" 回滚。脚本优先(更安全:有 -AllowRoot 边界+备份+验证),回退仅兜底。 - 插件进程是宿主进程(非受限 token),脚本修改权限正是沙箱受限 token 做不了的事;插件不提升 token。 - 只匹配 grantWrite 上下文的 SetNamedSecurityInfoW 失败,其他 Win32 失败、命令退出码、EPERM 等一律原样放行。 - 重试只发生一次(maxRetries 可调 0–3),修复失败不重试,防止循环。 致谢与许可证 FFI patch 核心改编自 masknull/dsh-acl-sandbox-patch MIT
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
0-v-0/dsh-grantwrite-patch
自动修复 Windows 沙箱写入授权失败并静默重试命令
相关插件 · 安全 / 权限
智能体逆向工程morluto/rea
用智能体逆向工程任何东西,从应用行为到原生二进制。
★ 415,267已汉化DSH
73.3
智能体集群框架ruvnet/ruflo
面向 Claude Code 与 Codex 的智能体元基座meta-harness。
★ 80,414已汉化MCP
71.9
WorkBuddy 模型接入corrinehu/dsh-workbuddy-connect
2026 年 10 月 20 日起,WorkBuddy…
★ 1,604已汉化DSH
71.7
破甲一键通z91772524-ai/pojia-next
十五个 AI…
★ 967已汉化DSH
71.6
AI 代理虚拟终端strukto-ai/mirage
Mirage 是给 AI 智能体用的虚拟终端:一层 shell,统管数据、命令行和运行时。Unix…
★ 3,756已汉化DSH
70.8
Agent 操作层agentic-os-org/ANOLISA
ANOLISA(Agentic Nexus Operating Layer & Interface System Architecture)|智能体操作系统,带运行时、安全、可观测性,以及 Tokenless 响应压缩,降低 token 用量与成本。
★ 649已汉化DSH
70.7