DeepSeek Harness 安全

DSH 权限实操:独立配置、只读练习与当前会话授权

隔开自己的既有 DSH 配置,区分新会话默认权限与当前 /permission,完成一次范围明确的文件修改练习。

新手 预计 20 分钟 更新 2026/9/5 核验 2026/9/5
本页目录

完成结果

学完后你会留下什么

一份首次运行前检查表,以及操作发生偏差时的停止与核查顺序。

验证版本
0.1.2-rc.1
适合谁
希望在独立练习环境中学习 DSH 的开发者和 Agent 用户
开始前确认
  • 了解当前为开发者预览版
  • 准备可丢弃或已备份的练习材料

这一篇解决三个实际问题:**怎样不碰自己现有配置地练习、怎样只读后再允许修改、怎样判断一个操作是否真的受限。**示例使用下载包中的采购合计项目,不用生产仓库做权限实验。

DSH 官方将项目标为开发者预览,明确说明审批和沙箱不能保证完全隔离。下面的独立 home 是配置隔离,不是虚拟机或系统安全边界。

用独立 DSH home 隔开练习配置

普通启动通常复用现有 DSH home。如果你是深度用户,已有模型、插件和会话,练习时可以显式指定一个新目录。先解压 练习包,进入其目录。

**macOS / Linux:**下面只给这条启动命令传变量,不修改 shell 的全局配置:

DSH_HOME="$PWD/.dsh-home-lab" npx @deepseek-ai/dsh@0.1.2-rc.1 web --no-open --port 3088

**Windows PowerShell:**在专门的练习终端中执行:

$env:DSH_HOME = Join-Path (Get-Location) ".dsh-home-lab"
npx.cmd @deepseek-ai/dsh@0.1.2-rc.1 web --no-open --port 3088

该 PowerShell 变量对当前终端及其子进程有效,关闭这个专用终端即可结束这一环境设置。不要在已经有重要环境变量安排的终端里盲目覆盖。

**应该发生:**新 home 中初始化自己的配置和会话数据,首次打开可能重新出现引导,需要重新配置模型。**不会发生:**自动把模型限制在某个文件夹,也不会把进程变成容器。因为 home 放在练习目录中,不要把整个目录打包公开或提交 Git;其中后续可能含凭据和会话。

本站验证时使用了另一个独立临时 home,并额外清空了继承环境,只提供实验必需变量。一般用户不必照抄内部实验路径。

当前会话与默认设置,分两处改

DSH 通用设置中的新会话默认权限行

设置 → 通用设置 → 权限决定之后创建的新会话默认模式。它不会立即把你正在使用的会话变成只读。

要改变当前会话,在输入区调用:

/permission

按弹出的列表选择。当前源码与中文界面提供的内置显示名称包括“仅可查看”“工作区内修改”“完全权限”。直接带参数的命令也存在,但教程优先用选择器,避免拼写和版本差异。

若某个自定义组合没有挂载权限相关能力,入口可能不存在;不能因菜单没有出现就断定“默认完全允许”。检查你的 profile/preset 和官方对应说明。

三种模式怎样用于这个练习

目标适合的起点要亲自检查什么
只读代码、理解错误仅可查看实际文件是否仍与原包一致
修复练习中的 budget.mjs工作区内修改文件范围、工具结果、测试输出
遇到不认识的限制先排查原因不直接升级为完全权限

“工作区内修改”是策略意图,具体文件、进程和网络能力仍依赖运行环境与实现。本文没有把不同操作系统上的隔离实现全测一遍。

做一次受控的只读练习

  1. 新解压一份材料,记下原 budget.mjs 内容。
  2. 选择练习工作区,在当前会话用 /permission 选只读。
  3. 发送:“只读取 budget.mjs,说明错误,不修改。”
  4. 看 read 结果是否包含实际函数,再打开文件确认没有变化。
  5. 如果希望观察限制,再要求它修改同一文件,查看是否被拒绝或需要确认;不要预设一定有某种弹窗。

这一步的验收不是“修改成功”。当限制阻止写入时,文件不变、模型准确说明未修改才是符合预期的结果。不同工具/组合的实际行为有差异,应记录真实现象。

真正要修改时再授权

通过当前会话的 /permission 调整为适合该练习的模式,然后发出明确任务:

只修改当前练习目录的 budget.mjs,修复单价没有乘数量的问题。
不要修改测试、安装依赖或访问其他目录。
修改后说明实际结果;若执行受限,报告限制,不绕过它。

如果工具请求审批,逐项看:操作对象、具体命令或替换文本、工作目录、是否需要额外网络/系统权限。对本练习而言,安装全局软件、访问私人目录都不属于必要步骤。

allow、ask、deny 不等于三条固定任务阶段

  • **allow:**当前管线允许继续,执行器仍可能因文件不存在等原因失败。
  • **ask:**当前操作需要一个确认结果,然后再决定是否执行。
  • **deny:**本次调用不执行,错误/拒绝结果仍应回到后续处理。

权限判断发生在相关操作的执行路径上,不是模型每次都先开一轮审批对话。确认一次也不能自动理解为以后所有操作都获准。

如果改错了,如何恢复本次练习

先停止继续操作,打开 budget.mjs 确认实际内容,再运行测试。只在确认你操作的是可丢弃练习副本时,从原 ZIP 解压一份到新目录继续,这比直接清空配置更安全,也保留排错证据。

有 Git 的项目应先看差异再决定恢复哪些文件,不在教程里给所有读者一条抹掉未提交改动的命令。

插件和 Skills 的边界也要看清

Skill 通常提供方法和材料;插件可以执行代码并扩展运行能力。安装插件之前要检查来源、版本、依赖和安装脚本。目录收录、包名带 DSH 或高 Star 数,都不是审计结论。

添加一次扩展就做一次基线复测:文本请求、文件读取、练习修改、独立测试。出现问题时,才知道最近引入了什么变化。

结束前的检查表

  • 当前会话的权限与你的目标一致,而不是只改了未来默认值。
  • 练习结果由文件和测试确认,未靠聊天结论代替。
  • 独立 home 没有被作为练习资料上传或提交。
  • 停止服务后确认进程退出;不把关闭标签当成停止。
  • 如果确实暴露了凭据,通过提供方账户入口撤销或轮换,而不是把密钥发给模型检查。

官方资料

版本和参数,以这些来源为准

本文按实际任务重写,快速变化的信息仍应在操作前回到官方页面核对。

常见问题

继续操作前,先确认这些边界

设置里改为只读,当前会话为什么仍不是只读?

通用设置中的默认权限影响之后的新会话;当前会话通过 /permission 检查和切换。

独立 DSH_HOME 是安全沙箱吗?

不是。它隔开配置与会话数据,不限制进程接触系统资源;实际隔离需另外配置与验证。

继续学习

按当前任务继续推进