跳到正文
FunCoding

搜索

搜索文档、Skill 和 MCP

托管权限与域名边界

编写 deny、ask、allow,理解多来源交集、强制人工批准和 Shell 写入识别。

托管权限独立于个人批准。管理员可以明确禁止某些操作、强制每次询问,或在规定范围内自动允许;匹配规则与普通命令行工具模式的写法不同。

示例

{
  "permissions": {
    "deny": ["Read(~/.ssh/**)", "Edit(//etc/**)"],
    "ask": ["Shell(git push *)"],
    "allow": ["Read(/src/**)"]
  }
}

这是按官方选择器组织的示例,需要按团队实际路径调整。Read 中 / 表示工作区根,// 表示文件系统根,~/ 表示家目录,./ 表示当前工作目录。

匹配家族

选择器范围
Shell(...) / Bash(...)Shell 命令;Bash 是兼容别名
PowerShell(...)同类命令规则,忽略命令大小写
Read(...)文件读取与查看,支持 glob
Edit(...) / Write(...)文件写入与编辑,Write 是别名
Domain(...)网络 origin,裸 host 默认为 HTTPS

Shell 的 命令 * 匹配前缀,否则匹配精确文本。Domain 的 host 忽略大小写,*.example.com 包含根域及子域。

合并与默认行为

优先级为 deny > ask > allow。任一托管来源的 deny 都阻止;deny 和 ask 跨来源取并集。allow 跨声明它的来源取交集,每个来源都必须允许,没有声明 allow 的来源不增加该项限制。

出现任一管理规则后,未匹配的受支持操作默认 ask。托管 ask 要求每次新的一次性人工批准,不能被 allow-all、自动批准、Hook 或以前保存的批准满足。

Shell 写文件的限制

Edit / Write 不只覆盖内置编辑工具,还识别一组明确的 Shell 写入:Bash、PowerShell 输出重定向,以及常见 sed -i / --in-place / BSD 原地编辑形式。能推断目标路径时,路径 deny 或 ask 仍生效,即使 Shell(*) 较宽泛地允许命令。

路径来自变量等无法预先确定的情况,不套用这些路径规则,转由普通 Shell 规则判断。它不是对任意脚本写入的操作系统级跟踪,系统隔离需另配沙箱。

禁止全部允许

permissions.disableBypassPermissionsMode 设为 disable 时,所有 allow-all 相关启动选项与交互入口被抑制。allow-auto-only 禁止完整放开,但允许 assisted;未知值会警告并按 disable 执行。

账号服务器策略在切换到不受该限制账号时可能清除;设备 MDM 限制不会随账号切换消失。用户本地设置也有自己的持久作用域,应区分来源。

limitTo 域名边界

permissions.limitTo 限定允许到达的域名范围,越界直接拒绝,用户批准或 allow-all 不能拓宽。空数组拒绝所有域名;无效列表或条目按空列表执行并报告错误。多个托管来源取交集,deny 继续优先。

CLI 参考的示例数组使用裸域名,但相邻正文又说仅支持 Domain(...) 条目,存在格式口径差异。因此这里不提供可直接部署的 limitTo JSON 模板,具体格式以当前客户端校验和官方更新为准。该边界本身不限制 shell/read/write,Shell 中能识别的网址会按域名请求检查。