DeepSeek Harness 教程 · 第18讲 Landlock 沙箱与进程隔离
第18讲 · Landlock 沙箱与进程隔离
《DeepSeek Harness 从上手到精通》系列 · 第六阶 安全与沙箱篇
系列基于 deepseek-ai/deepseek-harness(0.1.0-rc.5,MIT)。本讲进入安全篇:agent 会动真格地读写文件、跑命令,得有「笼子」关住它。dsh 的纵深防御第一层就是 Landlock 沙箱。preview 阶段接口可能微调,认准「最小权限 / 平台差异」两件核心,以官方文档为准。
一、Landlock 原理一分钟
Landlock 是 Linux 内核提供的沙箱机制。它的思路很妙:进程在启动子进程(exec)之前,先给自己套上「文件系统访问限制」——规定「只允许读这些目录、只允许写那些目录」,之后即便进程被攻破或出错,也越不出这道墙。dsh 用 Rust 实现了这一层「自限制后 exec」。
为什么叫「纵深防御第一层」?因为审批(第 10 讲)是逻辑层的「问你同不同意」,而 Landlock 是内核层的「物理封死」——即便 agent 想乱写、或工具被绕过,操作系统层面也根本不让它碰授权目录之外的东西。
二、路径授权:哪些目录可读 / 可写
Landlock 的核心是路径授权白名单。你显式声明:
- 可读目录:agent 能读哪些路径(如项目目录、只读数据);
- 可写目录:agent 只能往这些目录落盘(如
/tmp/output)。
遵循最小权限原则:只开必须开的目录,绝不图省事把整个根目录放开。配置思路(字段为示意,以官方为准):
sandbox:
landlock:
read: ["/home/user/project"]
write: ["/tmp/output"] # 只许写这个输出目录三、平台差异:Landlock 仅 Linux
重要前提:Landlock 是 Linux 内核特性,只在 Linux 上生效。在 macOS / Windows 上,dsh 无法用内核级沙箱,会退回到行为降级:
| 平台 | 沙箱能力 | 建议 |
|---|---|---|
| Linux | Landlock 内核级沙箱可用 | 生产首选,开启路径授权 |
| macOS | 无 Landlock,退回逻辑层限制 | 靠审批 + 路径约定兜底 |
| Windows | 无 Landlock,退回逻辑层限制 | 开发可跑,生产建议Linux |
别在 macOS/Windows 上误以为有内核沙箱。 那里的防护只剩审批与约定,真要跑不可信任务,请上 Linux 或下文的远程沙箱。
四、E2B 远程沙箱(POC):把执行世界搬上云
当你本地平台不支持沙箱,或想彻底隔离风险时,可以用 E2B 远程沙箱(当前为 POC / 实验性):把整个「执行世界」(文件系统 + 子进程)搬到云端的一次性沙箱里跑,本地只收发结果。这正好呼应第 7 讲说的「换一处、Bash/PTY/LSP 全搬家」——E2B 就是 ctx.fs 与 ctx.subprocess 的一个远程 Provider。
实验性提示: E2B 集成仍属 POC,接口与稳定性可能变化,不作为主线必需。生产落地优先用 Linux + Landlock。
五、动手练习:最小权限会话
配置一个「只许写 /tmp/output 输出目录」的最小权限会话,然后验证越权被拒:
- 在 Linux 上配置 Landlock 只授权
/tmp/output可写; - 让 agent 尝试往
/tmp/output写——应成功; - 再让它往其他目录(如
/home下的非授权路径)写——应被内核拒绝。
若越权写入没被拦,说明沙箱未生效(常见于非 Linux 平台或配置未加载),回到第三节核对平台与配置。
六、常见坑
- 误以为 macOS/Windows 有沙箱:那里只靠逻辑层,生产请上 Linux;
- 授权目录开太大:图省事放开根目录,等于没沙箱,坚持最小权限;
- 子进程继承不到限制:确认沙箱在 exec 前套上,子进程才受约束;
- 内核太旧不支持:Landlock 需要较新的 Linux 内核,老旧环境会静默降级;
- 把 E2B 当稳定方案:它是 POC,别在生产强依赖,先盯官方更新。
七、官方文档对应章节
docs/中 sandbox / landlock / e2b 相关章节- 第 7 讲能力 Seam(
ctx.fs/ctx.subprocessProvider 替换) - 第 10 讲权限预设(逻辑层审批与沙箱互补)
本讲内容基于 DeepSeek Harness 官方文档与项目源码整理,仅供学习参考,具体命令与配置请以官方最新版本为准。系列文章配合源码仓库食用效果更佳:https://github.com/deepseek-ai/deepseek-harness
咨询 DeepSeek Harness 相关问题,请加微信:A0qingfengyuan_01
个人观点,仅供参考,如有不对之处,请多包涵,欢迎指出。本文由 AI 协助完成!
欢迎扫码关注公众号与作者微信,获取更多实用干货

