《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 同時匹配命令及其參數
羽毛球分组比赛记分
小程序二维码

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

小夜