跳到正文
MyDSH我的 DSH 实战笔记
English
独立维护,非DeepSeek官方;与mydsh.dev等其他MyDSH站点无关联。

首页/模型、权限与安全/权限与允许清单

三档沙箱模式:read-only / workspace-write / danger-full-access

不确定当前权限到底允许它做什么;或者一条配方在别人机器上能跑、在你这儿写不出文件。

已核验版本与环境核验日期2026-11-14
宿主版本
0.1.2-alpha.5
来源
docs/subsystems/sandbox.zh.md
核验日期
2026-11-14

可复制指令

dsh --dump-config | grep -i -A3 sandbox

官方定义里沙箱模式只管一件事:文件系统效果。网络与进程可见性不在这套词汇里——这一点很重要,别以为收紧沙箱就顺便限制了联网。

模式允许做什么典型用途
read-only只允许必要的写入汇(例如 /dev/null)。工作区也不能写只读分析、审代码、查资料
workspace-write允许在工作区根目录与后端给的临时区域写入绝大多数日常任务:改文件、生成产物
danger-full-access绕过隔离,直接启动原始进程明确知道在做什么、且需要越过工作区时
官方文档明确写:只有前两种模式会发给提供方,danger-full-access的消费方直接spawn原始argv,根本不调ctx.sandbox。所以它不是「更宽的沙箱」,而是「没有沙箱」。

同一条配方,两种权限下的差别

拿一条会写文件的配方(例如「生成一份索引 .md」)分别在两种模式下跑,观察点在于:

  • read-only:产物不会出现。表现可能是报错,也可能是它写完报告成功但文件不存在——两种都要留意,后者更危险。
  • workspace-write:产物出现在工作区里,工作区外的路径仍然失败。
  • danger-full-access:工作区外也能写。这时候「它有没有越界」这个问题就没有机制来回答了,只能靠你自己看。

还有一个容易被忽略的事实:强制执行可能是部分的

官方文档写了 SandboxEnforcement 有 full 与 partial 两档。partial意味着当前后端或较旧的内核ABI只管控了承诺效果的一个子集——已知情形包括较旧的Landlock ABI,以及Windows ACL后端的Everyone与硬链接边界。

实用结论:如果你需要「绝对写不进工作区外」这种保证,就得确认后端是full;partial下不能把它当成硬边界。这一条比模式名字本身更值得记。

怎么算跑通

照着逐条对,全过才算完成。有一条没过,先解决它再往下。

  • 知道自己当前处于哪个模式
  • 知道当前后端的强制执行是full还是partial
  • 用一条写文件的配方验证过实际行为,而不是只看配置

会失败在哪

现象 / 原因 / 怎么办,按实际踩到的顺序写。

现象原因怎么办
read-only下配方报告成功但没有产物工具调用可能被拒或静默失败一定要检查产物是否存在,不要只信回复里的「已完成」
收紧沙箱后仍然能联网沙箱只管文件效果,网络不在这套词汇里联网限制要在别处配置,别指望沙箱

来源

标「已核验」的,来自本站实跑;标「公开资料整理」的,逐条附出处。