跳到正文
FunCoding

搜索

搜索文档、Skill 和 MCP

沙箱文件系统策略

理解工作目录、Git 元数据、开发工具自动授权和有效策略报告。

本地沙箱按默认拒绝构建文件系统策略,只有获准的路径可被使用。但为了让构建与开发工具正常工作,CLI 会自动加入多个系统、工具和缓存位置;实际边界应查看有效策略,而不是只看手工添加的路径。

哪些操作如何受限

操作执行方式
Shell、grep / glob 搜索沙箱子进程,由操作系统执行限制
本地 MCP / LSP默认在沙箱子进程中,受配置控制
内置文件读取与编辑在 CLI 进程内检查相同策略,属于软件检查
远程 MCP没有本地进程可隔离,不受本地文件系统沙箱约束
Subagent取决于它最终调用的工具,而不是独立获得一种隔离方式

CLI 自身没有整体放进沙箱。内置文件工具的检查不能等同于操作系统对沙箱子进程的强制限制。

工作目录和 Git

Include working directory 默认开启,自动授予当前目录读写权限。位于 Git 仓库子目录时,仓库其他部分可读、当前目录可写,仓库 .git 元数据也可读写。这使 Git 操作可用,但并不意味着仓库其他目录的敏感内容自动不可读。

关闭 Include working directory 会移除这些自动项目和 Git 授权。随后需要手工允许必要路径,否则 status、diff、add、commit 等 Git 操作也可能失败。

开发工具与缓存

Allow dev tool access 默认开启,会从 PATH、GOPATH、JAVA_HOME、PYTHONPATH 等发现工具位置并给予读取权限。标准系统库、用户安装的开发工具和包管理器配置 / 缓存也可能获得自动授权;部分构建缓存和依赖存储需要可写权限。

这可能包含包管理器 registry 配置中存储的令牌。需要更窄范围时关闭该选项,再明确允许所需路径,不要把“工具目录只读”误当作其内容不可见。

路径重叠

一般由更具体的路径规则决定权限,例如可写的项目下可以把某个子目录设为只读或拒绝。用户明确设置的只读和拒绝规则会保留。

自动发现的便利授权有额外处理:项目内 .venv 或 node_modules/.bin 即使出现在 PATH 中,也不会仅因自动工具授权变成只读;已有更广泛的工作区可写授权会保留。这避免正常安装依赖被自动规则意外阻止。

检查最终结果

/sandbox policy

报告显示的是当前目录结合自动授权、用户设置和管理策略后的实际结果。切换目录后,同一份设置可能解析成不同路径。磁盘上不存在的配置路径会被省略,并在 Notes 中说明;沙箱关闭时不会展示一份假装生效的策略。

新增规则后重新查看报告,确认目标路径真实存在并获得预期权限。路径规则使用绝对路径,目录包含整棵子树,不支持通配符。

企业策略如何组合

Server-managed、MDM 和文件管理策略可同时生效,沙箱不是简单用后一来源替换前一来源,而是按更严格方向组合:要求开启的开关保持开启,拒绝路径叠加,可允许的路径范围只能收窄。

界面中的 (managed) 项不能由普通设置放宽。是否允许本会话 bypass 另由有效策略决定,见本地沙箱使用。Windows 对 deniedPaths 的支持限制需要单独核对,见平台差异。