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

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

审批策略 ask / never:失败时会关门还是放行

每次都要点同意很烦,想全都放行;或者反过来,想知道放行之后什么情况下会失控。

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

可复制指令

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

审批管的是另一个维度:这个具体操作能不能继续。它和沙箱模式是两个独立的旋钮,官方文档把这两个捆成「权限预设」提供给界面选择。

策略含义风险
ask每次需要审批的操作都问你安全,但高频操作会很吵
never不问,直接放行流畅,但你已经放弃了这一层的把关

关键设计:失败时关门

审批结果是闭合的四种:allowed-once、rejected、cancelled、unavailable。官方文档明确写:只有allowed-once放行,其余三种一律按拒绝处理。应答者缺失、不负责该请求、抛异常,都会产生unavailable,而不是放行。

这条设计值得单独记:它意味着「审批链路坏了」的默认结果是不执行,而不是「悄悄执行」。所以遇到莫名其妙没执行的操作,先想审批是不是没应答,而不是怀疑工具坏了。

allowed-once 是一次性的

名字里带once是有意的:这一次授权不延展到下一次同类操作。所以「批准了一次之后它自己跑了一堆命令」这种情况,在机制上应该不会发生——如果发生了,那是别的地方的问题。

两个默认预设

预设名组合适合
workspace-writeworkspace-write沙箱 + ask审批默认。日常够用,越界会问你
danger-full-accessdanger-full-access沙箱 + never审批明确知道要越过隔离时。两层都放开了

注意 danger-full-access 这个预设是两个都放开:沙箱绕过 + 审批不问。它不是「只放开一样」。选它之前先想清楚这两件事同时放开的后果。

怎么选

  • 日常、需要改文件 → workspace-write。
  • 只读分析、连误写都不能有 → read-only + ask。
  • danger-full-access只在两种情况下用:你在隔离环境里,或者你完全清楚这一轮要做什么。别为了少点几次同意就用它。

怎么算跑通

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

  • 知道当前预设是哪一个
  • 知道danger-full-access同时放开了沙箱与审批
  • 见过一次被拒绝的操作,确认默认是关门而不是放行

会失败在哪

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

现象原因怎么办
审批弹窗一直不来,操作卡住可能是没有应答者(unavailable),设计上按拒绝处理确认界面还在、会话没断;看日志里有没有审批事件
为了不点同意改成了never同时放弃了沙箱与审批两层只在明确需要时用;日常用workspace-write预设

来源

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