7.2 权限预设与沙箱
本节目标
把 4.4 节的权限机制往深挖一层:理解沙箱的三个档位、权限预设怎么捆绑它们,以及 Windows 上的实际边界。
权限预设:一个档位,管两件事
4.4 节讲了权限模式。现在把背后的机制说透:每个权限预设实际上捆绑了两件独立的事:
- 沙箱模式:agent 的命令在文件系统上能做什么
- 审批策略:超范围操作是问你还是直接拒绝
界面上的一个档位,背后就是这两个开关的组合。
沙箱的三个档位
沙箱只管理文件系统效果,三个档位由松到严:
| 模式 | 允许什么 | 典型用途 |
|---|---|---|
| danger-full-access | 不设限制,想碰哪碰哪 | 需要全局操作 |
| workspace-write | 工作区目录 + 临时区可写 | 日常干活 |
| read-only | 只读,禁止写入 | 只看不动 |
注意:沙箱只管文件读写。网络访问、进程可见性不归沙箱管,那是另一套机制。
审批策略的两个档位
- ask:超范围操作先问你,允许只放行这一次
- never:不问,直接拒绝。无人值守场景宁可干不成也不冒险
预设怎么组合
界面上的权限选择器,背后就是这些组合:
| 界面档位 | 沙箱 | 审批 |
|---|---|---|
| Read Only | read-only | ask |
| Workspace Write | workspace-write | ask |
| Full access | danger-full-access | never |
档位因部署而异
默认部署自带 Workspace Write(workspace-write + ask)和 Full access(danger-full-access + never)两档;Read Only 等其他档位由部署方的预设表决定,具体以你界面上的权限选择器为准。
看出规律了吗?档位越高,沙箱越松;Full access 连审批都直接关了。这就是为什么 4.4 节强调 Full access 要慎用。
沙箱在不同系统上的实现
沙箱的"护栏"由操作系统机制实现:
- Linux:bwrap 或 Landlock
- macOS:Seatbelt
- Windows:ACL 受限令牌
不同系统的护栏强度有差异,某些边界(比如硬链接)可能只能做到"部分限制"。对日常使用来说,记住一条:只读和写工作区内,是最常见也最稳妥的组合。
实践建议
- 日常用 Workspace Write(workspace-write + ask),能干活的底限配置
- 只查不改切 Read Only
- Full access 只在明确需要时用,用完全即切回
- 自动化和无人值守场景才考虑 never 审批
常见问题
问:沙箱能挡住网络访问吗?
不能。沙箱只管文件系统。网络访问由权限和工具配置管,两者是独立的。
问:Windows 上沙箱可靠吗?
Windows 用 ACL 受限令牌实现,主流场景有效。对安全要求极高的部署,需要结合审批和权限一起兜底,别单靠沙箱一层。
小结
- 权限预设 = 沙箱模式 + 审批策略 的组合
- 沙箱三档:read-only、workspace-write、danger-full-access,只管文件读写
- 档位越高限制越松,Full access 连审批都关,务必慎用
机制讲透了,下一节来一场完整的实战演练。