Skip to content
FunCoding

Search

Search docs, Skills and MCP

沙箱文件系统策略

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

This page has not been translated into English yet. The original Chinese version is shown below.

本地沙箱按默认拒绝构建文件系统策略,只有获准的路径可被使用。但为了让构建与开发工具正常工作,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 的支持限制需要单独核对,见平台差异。