权限档的文件系统规则
设置 read、write、deny,添加工作区根目录,并理解精确路径与 glob 的平台限制。
文件规则针对沙箱内命令定义可访问范围。write 同时允许读取和修改;read 允许读取与列目录;deny 禁止读取和写入。
范围与覆盖
更具体的路径覆盖较宽的规则。同一路径上 deny 优先于 write,write 优先于 read。因而既可在可写工作区内拒绝某个子目录,也可在较宽 deny 内显式重新开放更窄子树。
[permissions.project-edit.filesystem]
":minimal" = "read"
[permissions.project-edit.filesystem.":workspace_roots"]
"." = "write"
".devcontainer" = "read"
"generated" = "deny"将这段放进已定义的 project-edit profile。缺失或空 filesystem 表仍保持受限访问,并出现启动警告;不要将空表当作全盘访问。
支持的路径
| 路径 | 意义 | 是否可定义子路径 |
|---|---|---|
| :root | 文件系统根 | 仅 . |
| :minimal | 常见工具需要的平台和运行时路径 | 仅 . |
| :workspace_roots | 当前会话与 profile 的有效工作区 | 可以 |
| :tmpdir | 可用时的 TMPDIR | 仅 . |
| :slash_tmp | 存在时的 /tmp | 仅 . |
| 绝对路径 | 平台绝对路径 | 可以 |
| ~/path | 当前用户主目录下路径 | 可以 |
原生 Windows 支持盘符和 UNC 绝对路径,以及 ~\work 写法。子路径必须是内部相对后代,不能含 . 或 .. 路径分量;单独的 . 表示基准路径。../other-repo 会被拒绝。
添加复用的工作区
[permissions.project-edit.workspace_roots]
"~/code/app" = true
"~/code/shared-lib" = truetrue 条目添加目录,false 不启用。:workspace_roots 规则同时应用于运行时根目录和这些附加目录,不会用新目录替换当前会话根目录。
拒绝读取一类文件
[permissions.project-edit.filesystem]
glob_scan_max_depth = 3
[permissions.project-edit.filesystem.":workspace_roots"]
"**/*.env" = "deny"示例应合并到已有同名表,不能重复声明。Linux、WSL 和原生 Windows 在沙箱启动前可能需要预先展开无界 **;glob_scan_max_depth 至少为 1,越深启动扫描工作越多。也可列出 *.env、*/*.env 等明确深度。
这些匹配模式只覆盖它们实际匹配的名称,不能视为所有秘密文件的清单。read/write glob 在各平台的可移植性较差,优先使用精确路径或子树规则,并在实际运行环境验证。