跳到正文
FunCoding

搜索

搜索文档、Skill 和 MCP

权限档的文件系统规则

设置 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" = true

true 条目添加目录,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 在各平台的可移植性较差,优先使用精确路径或子树规则,并在实际运行环境验证。