Skip to content

7.2 权限预设与沙箱 ​

本节目标

把 4.4 节的权限agent 能执行的操作范围,由沙箱和审批策略共同决定。Permission/pərˈmɪʃn/机制往深挖一层:理解沙箱限制命令文件系统效果的隔离机制,可设为只读、工作区写或完全访问。Sandbox/ˈsændbɒks/的三个档位、权限预设怎么捆绑它们,以及 Windows 上的实际边界。

权限预设:一个档位,管两件事 ​

4.4 节讲了权限agent 能执行的操作范围,由沙箱和审批策略共同决定。Permission/pərˈmɪʃn/模式。现在把背后的机制说透:每个权限预设实际上捆绑了两件独立的事:

  1. 沙箱模式:agent 的命令在文件系统上能做什么
  2. 审批策略:超范围操作是问你还是直接拒绝

界面上的一个档位,背后就是这两个开关的组合。

沙箱的三个档位 ​

沙箱限制命令文件系统效果的隔离机制,可设为只读、工作区写或完全访问。Sandbox/ˈsændbɒks/只管理文件系统效果,三个档位由松到严:

模式允许什么典型用途
danger-full-access不设限制,想碰哪碰哪需要全局操作
workspace-write工作区agent 干活的项目目录,包含路径、显示名和归属的会话。Workspace/ˈwɜːrkspeɪs/目录 + 临时区可写日常干活
read-only只读,禁止写入只看不动

注意:沙箱只管文件读写。网络访问、进程可见性不归沙箱管,那是另一套机制。

审批策略的两个档位 ​

  • ask:超范围操作先问你,允许只放行这一次
  • never:不问,直接拒绝。无人值守场景宁可干不成也不冒险

预设怎么组合 ​

界面上的权限选择器,背后就是这些组合:

界面档位沙箱审批
Read Onlyread-onlyask
Workspace Writeworkspace-writeask
Full accessdanger-full-accessnever

档位因部署而异

默认部署自带 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 审批agent 执行超权限操作前询问用户的机制,允许只放行这一次。Approval/əˈpruːvl/

常见问题 ​

问:沙箱能挡住网络访问吗?

不能。沙箱只管文件系统。网络访问由权限和工具配置管,两者是独立的。

问:Windows 上沙箱可靠吗?

Windows 用 ACL 受限令牌实现,主流场景有效。对安全要求极高的部署,需要结合审批和权限一起兜底,别单靠沙箱一层。

小结 ​

  • 权限预设 = 沙箱模式 + 审批策略 的组合
  • 沙箱三档:read-only、workspace-write、danger-full-access,只管文件读写
  • 档位越高限制越松,Full access 连审批都关,务必慎用

机制讲透了,下一节来一场完整的实战演练。

发现错误?提交反馈 · 欢迎 提 PR 改进本书