《Cursor文档》-权限

通过 CLI 配置中的权限 token 控制智能体可执行的操作。权限可在 ~/.cursor/cli-config.json (全局) 或 <project>/.cursor/cli.json (项目专用) 中设置。

权限类型

Shell 命令

格式: Shell(commandBase)

用于控制对 Shell 命令的访问。commandBase 是命令行中的第一个词元。支持 glob 模式,并可使用可选的 command:args 语法进行更精细的控制。

示例 描述
Shell(ls) 允许运行 ls 命令
Shell(git) 允许任何 git 子命令
Shell(npm) 允许 npm 包管理器命令
Shell(curl:*) 允许 curl 使用任意参数
Shell(rm) 拒绝执行破坏性的文件删除操作 (通常用于 deny)

文件读取

格式: Read(pathOrGlob)

控制对文件和目录的读取权限。支持 glob 模式。

示例 描述
Read(src/**/*.ts) 允许读取 src 中的 TypeScript 文件
Read(**/*.md) 允许读取任意位置的 markdown 文件
Read(.env*) 禁止读取环境文件
Read(/etc/passwd) 禁止读取系统文件

文件写入

格式: Write(pathOrGlob)

控制对文件和目录的写入权限。支持 glob 模式。print 模式可使用写入和 shell 工具。使用 permissions.allowpermissions.deny--force 控制哪些操作可在无需提示的情况下运行。

示例 描述
Write(src/**) 允许写入 src 下的任意文件
Write(package.json) 允许修改 package.json
Write(**/*.key) 拒绝写入私钥文件
Write(**/.env*) 拒绝写入环境文件

网页抓取

格式: WebFetch(domainOrPattern)

控制智能体使用网页抓取工具时可抓取的域名 (例如,用于获取文档或网页) 。如果没有相应的允许列表条目,每次抓取都需要批准。将域名添加到 allow,即可自动批准从可信来源进行的抓取。

示例 描述
WebFetch(docs.github.com) 允许抓取 docs.github.com 的内容
WebFetch(*.example.com) 允许抓取 example.com 的任意子域名内容
WebFetch(*) 允许抓取任意域名的内容 (请谨慎使用)

域名模式匹配:

  • * 匹配所有域名
  • *.example.com 匹配子域名 (例如,docs.example.comapi.example.com)
  • example.com 仅匹配该域名

MCP 工具

格式: Mcp(server:tool)

用于控制智能体可运行的 MCP (模型上下文协议) 工具。使用 server (来自 mcp.json) 和 tool 名称,* 可用作通配符。

示例 描述
Mcp(datadog:*) 允许使用 Datadog MCP 服务器提供的所有工具
Mcp(*:search) 允许使用任意服务器的 search 工具
Mcp(*:*) 允许使用所有 MCP 工具 (请谨慎使用)

配置

在 CLI 配置文件的 permissions 对象中添加权限:

{
  "permissions": {
    "allow": [
      "Shell(ls)",
      "Shell(git)",
      "Read(src/**/*.ts)",
      "Write(package.json)",
      "WebFetch(docs.github.com)",
      "WebFetch(*.github.com)",
      "Mcp(datadog:*)"
    ],
    "deny": [
      "Shell(rm)",
      "Read(.env*)",
      "Write(**/*.key)",
      "WebFetch(malicious-site.com)"
    ]
  }
}

模式匹配

  • Glob 模式使用 ***? 通配符
  • 相对路径以当前工作区为范围
  • 绝对路径可指向项目外的文件
  • 拒绝规则优先于允许规则
  • 使用 command:args (例如 curl:*) 通过 glob 同时匹配命令及其参数
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜