[BUG] 在WSL下使用workspace write模式时,由于/dev/dxg被隐藏,无法使用gpu #3178
Replies: 2 comments
|
核验确认,而且问题比"workspace-write"更宽:两个沙箱档位都让 /dev/dxg 不可用(当前 main HEAD 机制(packages/sandbox/sandbox-local/src/profiles.ts)
所以两种情况是:bwrap 档"设备不存在",Landlock 档"存在但不可写"。CUDA 需要的 修复建议(安全优先) 在 sandbox-local 的 Config 增加一个可选的设备透传列表(默认空),两个档位各自实现: // Config 增加
extraDevPaths?: string[] // 默认 []
// bwrap 档:对每个存在的路径追加 --bind(只透传指定节点)
for (const p of policy.extraDevPaths ?? []) if (existsSync(p)) args.push('--bind', p, p)
// Landlock 档:追加到 readWrite(不是 readOnly)
readWrite.push(...(policy.extraDevPaths ?? []).filter((p) => existsSync(p)))WSL 用户配 不建议全局 回归测试建议:e2e 在存在 |
|
@zoahdev 的核验很完整(bwrap 的 补一条评审这个提案时会关心、但可能没人说的事:在 WSL 这个具体平台上,加这个洞的边际风险比它看起来小得多——因为那里的沙箱已经有一个更大的洞。 WSL2 上的 workspace-write 已经可以被完全穿透#3045 是一份已复现的报告:在 WSL2 上,沙箱内调用 把这两件事并起来看:
在 WSL 上, 这一点值得写进提案,因为它把评审的问题从"该不该给沙箱开洞"变成了两个更清楚的问题:
但这话得两面说我不希望上面那段被读成"反正都漏了,随便开"。诚实的结论是两条:
这两条不冲突,但只说第一条就是误导。 一个实现上的建议@zoahdev 提的 理由来自 #1331 提的那件事——windows-acl 档本身标着 所以建议:配置了 边界与利益相关我们不修 DSH 自家组件—— 我没有 WSL 环境,没有复现过 利益相关:我维护 pi2dsh(Pi 生态兼容层)。这条不推销——你要的是 DSH 沙箱能透传一个设备节点,那是 DSH 和 bwrap/Landlock 层的事,装什么插件都不改变 |
Uh oh!
There was an error while loading. Please reload this page.
workspace write模式没有完全dev访问,而在wsl中使用cuda则需/dev/dxg。这会导致dsh无法使用cuda。
All reactions