《Cursor文档》-部署模式

本指南介绍如何在组织内的开发者电脑上部署 Cursor 编辑器和 命令行界面 工具。大多数组织会同时部署编辑器 (用于日常开发) 和 命令行界面 (用于自动化、CI/CD 和脚本编写) 。

如需了解其他部署方式,例如 SCM 集成 (Bugbot、BGA 应用) 或网页端访问,请参阅相关集成文档。

通过 MDM 部署编辑器

将 Cursor 编辑器和智能体部署到用户工作站,并通过移动设备管理 (MDM) 系统实施策略。

工作原理

  1. IT 团队将 Cursor 应用打包以供部署
  2. 通过 MDM (Jamf、Intune 等) 推送至用户设备
  3. 用户可在其主要开发设备上使用 Cursor

MDM 可让您为 Cursor 强制执行策略,例如允许的团队 ID 和扩展。

您还可以强制执行 Workspace Trust 等设置,并控制自动更新和新版本的部署。

MDM 配置

您可以通过设备管理解决方案集中管理 Cursor 的特定功能,以确保满足组织需求。指定 Cursor 策略后,该策略的值会覆盖用户设备上对应的 Cursor 设置。

Cursor 支持在 Windows (组策略) 、macOS (配置描述文件) 和 Linux (JSON 策略文件,版本 2.0 及更高版本) 上使用策略。

Cursor 目前提供以下策略,用于控制由管理员管理的功能:

策略 描述 Cursor 设置
AllowedExtensions 控制可安装哪些扩展。 extensions.allowed
AllowedTeamId 控制允许哪些团队 ID 登录。使用未经授权团队 ID 的用户将被强制登出。 cursorAuth.allowedTeamId
ExtensionGalleryServiceUrl 配置自定义扩展市场 URL。 extensions.gallery.serviceUrl
NetworkDisableHttp2 禁用所有请求的 HTTP/2,改用 HTTP/1.1。 cursor.general.disableHttp2
UpdateMode 控制自动更新行为。设为 ‘none’ 可禁用更新。 update.mode
WorkspaceTrustEnabled 控制是否启用 Workspace Trust。 security.workspace.trust.enabled

使用 MDM 管理运行模式允许列表

您还可以通过 MDM 部署 Cursor 的权限文件,管理哪些终端命令和 MCP 工具无需提示即可运行,并对 Auto-review 模式分类器进行引导。

文件路径为 ~/.cursor/permissions.json。用户还可以在 <workspace>/.cursor/permissions.json 中添加按仓库配置的文件;两个文件中的条目会按顺序合并。

文件格式如下:

类型 必填 含义
terminalAllowlist string[] 无需批准即可运行的终端命令。启用沙箱后,不在允许列表中的受支持终端命令可在沙箱中运行。每个条目都会与完整命令字符串匹配。
mcpAllowlist string[] 无需批准即可运行的 MCP 工具。MCP 工具不会在本地沙箱中运行。每个条目使用 server:tool 语法。
autoRun object 使用自然语言 allow_instructionsblock_instructions 数组引导 Auto-review 模式分类器。适用于 Cursor 3.6 及更高版本中的 shell、MCP 和 Fetch 调用。请参阅 permissions.json 参考

mcpAllowlist 条目支持以下形式:

条目 含义
server:tool 某个特定 MCP 服务器上的特定工具
server:* 某个 MCP 服务器上的所有工具
*:tool 任意 MCP 服务器上的指定工具名称
*:* 所有 MCP 工具

terminalAllowlistmcpAllowlistautoRun 均为可选项。如果某个键被省略或为空 (合并按用户和按仓库文件后) ,Cursor 会回退到由编辑器管理的该类别允许列表。

示例:

{
  "terminalAllowlist": [
    "npm install",
    "pnpm test",
    "python -m pytest"
  ],
  "mcpAllowlist": [
    "linear:*",
    "github:create_pull_request",
    "*:search"
  ],
  "autoRun": {
    "block_instructions": [
      "Block any command that drops or truncates a database table."
    ]
  }
}

由于这是一个普通文件,你可以使用 Jamf、Kandji、Intune 或任何其他能将文件写入用户 Cursor 数据目录的设备管理工具进行分发。

允许列表优先级如下:

  1. 团队仪表盘或其他由管理员控制的设置
  2. 托管的 ~/.cursor/permissions.json<workspace>/.cursor/permissions.json 拼接
  3. 编辑器设置和内联 添加到允许列表

由管理员控制的设置会覆盖该类别中由文件定义的值。按用户和按仓库的文件通过拼接合并;编辑器设置不会与这两者合并。

Cursor 会监视两个 permissions.json 路径,因此更新会自动生效,无需重新启动。

Windows 组策略

Cursor 支持基于 Windows 注册表的组策略。安装策略定义后,管理员可使用本地组策略编辑器管理策略值。

添加策略:

  1. AppData\Local\Programs\cursor\policies 复制策略 ADMX 和 ADML 文件。
  2. 将 ADMX 文件粘贴到 C:\Windows\PolicyDefinitions 目录,并将 ADML 文件粘贴到 C:\Windows\PolicyDefinitions\<your-locale>\ 目录。
  3. 重新启动本地组策略编辑器。
  4. 在本地组策略编辑器中设置相应的策略值 (例如,为 AllowedExtensions 策略设置 {"anysphere": true, "github": true}) 。

策略可在计算机级别和用户级别设置。若两者均已设置,则以计算机级别为准。

重要提示: 设置策略值后,将覆盖在任何级别 (默认值、用户、工作区等) 配置的 Cursor 设置值。这是一项全局覆盖,用户无法更改这些设置。

在 Cursor 2.1 中,我们将组策略编辑器中的类别名称更名为 Cursor。旧键仍然有效。建议使用当前的 ADMX 策略文件。

Windows 安装程序

Windows 安装程序基于 Inno Setup。如需在无需用户交互的情况下以完全后台方式安装 Cursor,请使用以下命令行标志:

全新安装:

CursorSetup-x64-2.0.exe /SILENT /VERYSILENT /SUPPRESSMSGBOXES /NORESTART /CLOSEAPPLICATIONS /LOG=install.log

更新现有安装:

更新现有的 Cursor 安装时,必须使用不同的标志,其中包含指向标志文件的 /update 参数。标志文件是一个空文件,用于通知安装程序这是一次更新操作。

创建临时标志文件,并将其路径传递给安装程序:

CursorSetup-x64-2.0.exe /VERYSILENT /update="%TEMP%\cursor-update.flag" /CLOSEAPPLICATIONS /LOG=update.log

**注意:**2.0 之前的安装程序可能无法正确识别 /SILENT 标志。后续安装程序 (2.0 及更高版本) 将确保静默安装正常进行。

macOS 配置描述文件

配置描述文件用于管理 macOS 设备上的设置。配置描述文件是包含键值对的 XML 文件,这些键值对对应可用的策略。您可以通过 Jamf、Kandji 或 Microsoft Intune 等移动设备管理 (MDM) 解决方案部署这些配置描述文件,也可以手动安装。

各渠道的 Bundle ID:

配置描述文件中的 PayloadType 必须与您所用渠道的 Cursor Bundle ID 匹配:

渠道 Bundle ID
正式版 com.todesktop.230313mzl4w4u92
Nightly co.anysphere.cursor.nightly

对于大多数企业部署,请使用正式版 Bundle ID:com.todesktop.230313mzl4w4u92

示例 .mobileconfig 文件

以下是一个适用于 macOS 的 .mobileconfig 文件示例:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
    <dict>
        <key>PayloadContent</key>
        <array>
            <dict>
                <key>PayloadDisplayName</key>
                <string>Cursor</string>
                <key>PayloadIdentifier</key>
                <string>com.todesktop.230313mzl4w4u92.J6B5723A-6539-4F31-8A4E-3CC96E51F48C</string>
                <key>PayloadType</key>
                <string>com.todesktop.230313mzl4w4u92</string>
                <key>PayloadUUID</key>
                <string>J6B5723A-6539-4F31-8A4E-3CC96E51F48C</string>
                <key>PayloadVersion</key>
                <integer>1</integer>
                <key>AllowedExtensions</key>
                <string>{"anysphere":true}</string>
                <key>AllowedTeamId</key>
                <string>1,2</string>
                <key>ExtensionGalleryServiceUrl</key>
                <string>https://marketplace.example.com</string>
                <key>NetworkDisableHttp2</key>
                <true/>
                <key>UpdateMode</key>
                <string>none</string>
                <key>WorkspaceTrustEnabled</key>
                <true/>
            </dict>
        </array>
        <key>PayloadDescription</key>
        <string>This profile manages Cursor.</string>
        <key>PayloadDisplayName</key>
        <string>Cursor</string>
        <key>PayloadIdentifier</key>
        <string>com.todesktop.230313mzl4w4u92</string>
        <key>PayloadOrganization</key>
        <string>Anysphere</string>
        <key>PayloadType</key>
        <string>Configuration</string>
        <key>PayloadUUID</key>
        <string>F2C1A7B3-9D4E-4B2C-8E1F-7A6C5D4B3E2F</string>
        <key>PayloadVersion</key>
        <integer>1</integer>
        <key>TargetDeviceType</key>
        <integer>5</integer>
    </dict>
</plist>
字符串策略

以下示例演示如何配置 AllowedExtensions 策略。示例文件中的策略值默认为空 (不允许任何扩展) 。

<key>AllowedExtensions</key>
<string></string>

<string> 标签之间添加定义策略所需的 JSON string。

<key>AllowedExtensions</key>
<string>{"anysphere": true, "github": true}</string>

扩展控制规则:

AllowedExtensions 策略接受一个 JSON 对象,其中:

  • 键可以是发布者名称 (例如 "github") 或完整的扩展 ID (例如 "ms-azuretools.vscode-docker")
  • 值为布尔值,表示是否允许来自该发布者的扩展或某个特定扩展
  • 如果将发布者设为 true,则允许该发布者的所有扩展
  • 特定扩展 ID 的优先级高于发布者规则

对于 AllowedTeamId 策略,请添加以逗号分隔的团队 ID 列表:

<key>AllowedTeamId</key>
<string>1,3,7</string>

对于 NetworkDisableHttp2 策略,使用布尔值禁用 HTTP/2:

<key>NetworkDisableHttp2</key>
<true/>
布尔策略

对于 WorkspaceTrustEnabled 等布尔策略,请使用 <true/><false/> 标记:

<key>WorkspaceTrustEnabled</key>
<false/>

或启用该功能:

<key>WorkspaceTrustEnabled</key>
<true/>
UpdateMode 策略

UpdateMode 策略用于控制 Cursor 如何处理自动更新。适用于希望控制更新部署时间和方式的组织。

可用值:

  • none - 禁用所有自动更新
  • manual - 用户可以手动检查更新
  • start - Cursor 启动时检查更新
  • default - 默认行为 (与 start 相同)
  • silentlyApplyOnQuit - 在后台下载更新,并在退出 Cursor 时应用更新

要禁用自动更新:

<key>UpdateMode</key>
<string>none</string>
WorkspaceTrustEnabled 策略

WorkspaceTrustEnabled 策略用于控制是否启用 Workspace Trust。启用后,Cursor 会提示用户为新工作区选择普通模式或受限模式。

使用布尔值:

<key>WorkspaceTrustEnabled</key>
<true/>
ExtensionGalleryServiceUrl 策略

ExtensionGalleryServiceUrl 策略用于配置扩展市场的 URL,适用于希望使用自定义扩展市场或镜像的组织。

将 URL 设置为 string 值:

<key>ExtensionGalleryServiceUrl</key>
<string>https://marketplace.example.com</string>
使用 MDM 解决方案部署

可将 .mobileconfig 文件直接上传到您的 MDM 解决方案:

  • Jamf:作为自定义配置描述文件上传
  • Kandji:在 Library 中添加为自定义配置文件
  • Microsoft Intune:使用正确的负载域名部署为自定义配置文件

请确保 PayloadType 与 Cursor 渠道的 bundle ID 一致。

参考配置文件

Cursor 随附了一份完整的配置描述文件示例,路径如下:

# 正式版渠道
/Applications/Cursor.app/Contents/Resources/app/policies/com.todesktop.230313mzl4w4u92.mobileconfig

# Nightly 渠道
/Applications/Cursor Nightly.app/Contents/Resources/app/policies/co.anysphere.cursor.nightly.mobileconfig

文件路径因渠道而异。请根据您的 Cursor 安装渠道使用相应的路径。

重要安全注意事项:

  • 提供的 .mobileconfig 文件会初始化该版本 Cursor 中可用的所有策略
  • 请删除不需要的策略,以免无意中采用过于严格的默认值
  • 如果未编辑或从示例中删除某项策略,该策略将按其默认值强制执行
  • 策略值会全局覆盖所有用户和工作区设置

在 Finder 中双击 .mobileconfig 描述文件,然后在“系统偏好设置”的 通用 > 设备管理中启用它,即可手动安装配置描述文件。从“系统偏好设置”中移除该描述文件后,Cursor 中的相关策略也会被移除。

有关配置描述文件的更多信息,请参阅 Apple 的文档。

Linux 策略文件

与 Windows 注册表或 macOS 配置描述文件不同,Linux 发行版没有标准化的企业策略系统。Cursor 通过读取 JSON 文件来提供相应功能。

**注意:**Linux 策略文件支持 Cursor 2.0 及更高版本。

策略文件位于 ~/.cursor/policy.json

创建策略文件

在上述位置创建一个 JSON 文件,以策略名称为键、策略值为值。所有策略均为可选项;仅包含您想强制执行的策略。

policy.json 文件示例

{
  "AllowedExtensions": "{\"anysphere\": true, \"github\": true}",
  "AllowedTeamId": "1,3,7",
  "WorkspaceTrustEnabled": true
}
策略格式

JSON 文件中的每项策略均对应一个策略名称:

  • AllowedExtensions:定义允许的扩展发布者的 JSON string
  "AllowedExtensions": "{\"anysphere\": true, \"github\": true}"
  • AllowedTeamId:以逗号分隔的团队 ID string
  "AllowedTeamId": "1,3,7"
  • WorkspaceTrustEnabled:用于控制工作区信任的 布尔
  "WorkspaceTrustEnabled": true

注意:AllowedExtensions 的值必须是 JSON string (引号需转义) ,而不是 JSON 对象。这与 Windows 和 macOS 使用的格式一致。

部署策略

使用组织的配置管理工具部署策略文件:

  • 使用 Ansible、Puppet 或 Chef 自动部署
  • 使用 NFS 或共享网络存储集中存放策略文件
  • 使用带有安装后脚本的包管理器
  • 在容器化环境中使用容器基础镜像

策略文件的更改会在 Cursor 重启时生效。系统会监控文件更改,因此更新会自动传播到正在运行的实例。

如果策略文件不存在,Cursor 将不受策略限制地运行。

非管理员用户的自动更新

受 Electron 框架限制,Cursor 在 macOS 上更新时需要管理员权限。

推荐做法:

  • MDM 部署:使用 MDM 工具 (Jamf、Kandji、Intune) 以适当权限集中部署更新
  • 自动化部署工具:考虑使用 Installomator 等工具,通过脚本更新
  • 禁用更新提示:将 UpdateMode 策略设为 none,避免用户看到更新失败的通知

对于包含非管理员用户的组织,最可靠的做法是通过现有的软件部署流程管理 Cursor 更新,并通过 MDM 策略禁用自动更新。

命令行界面 部署

在您的基础设施上以无图形界面的 命令行界面 工具运行 Cursor agents。

工作方式

  1. 将 命令行界面 部署到您的环境中 (本地、企业云、Kubernetes 集群、CI/CD 系统)
  2. 可通过脚本运行 命令行界面,也可让其在后台或作为 CI 的一部分运行
  3. 命令行界面 可访问用户从其设备可访问的任何资源 (VPN、内部 API、私有包注册表等)

安装与设置

安装 Cursor 命令行界面:

# 安装 Cursor 命令行界面(macOS、Linux、WSL)
curl https://cursor.com/install -fsS | bash

# 安装 Cursor 命令行界面(Windows PowerShell)
irm 'https://cursor.com/install?win32=true' | iex

# 为脚本设置 API 密钥
export CURSOR_API_KEY=your_api_key_here
agent -p "Analyze this code"

完整详情请参阅 命令行界面 无图形界面模式文档

GitHub Actions 集成

Cursor 命令行界面可在 GitHub Actions 和其他 CI 系统中使用。

有关示例,请参阅 GitHub Actions 集成

Cursor 命令行界面注意事项

无论是在桌面端应用中运行,还是作为独立 命令行界面 运行,Cursor agents 都具备相同的安全控制:

功能相同:

  • 隐私模式同样适用
  • 钩子同时适用于桌面端应用和 命令行界面
  • 相同的模型访问控制
  • 相同的审计日志记录
  • 相同的用量跟踪

要求相同:

  • 两者都需要访问 Cursor 服务的网络连接
  • 两者都会将代码发送给 LLM (受隐私模式保护)
  • 两者都需要进行适当的身份验证

命令行界面 使用的是同一个智能体,只是界面不同。

网络注意事项

用户设备需要访问以下端点。请相应配置防火墙和代理规则:

  • *.cursor.sh - 后端服务和 API 端点
  • cursor-cdn.com - 应用下载和更新
  • marketplace.cursorapi.com - 扩展市场
  • 第三方 AI 提供商的端点 (OpenAI、Anthropic、Google 等)

UpdateMode 策略设为 none 时,可以限制对更新端点的访问,同时保留对其他服务的访问权限。

Cursor 编辑器会继承设备的网络配置,包括 VPN 访问、内部服务端点和私有包注册表。

这意味着,在编辑器中运行的 agents 可以访问用户通过其设备能够访问的所有资源。

有关防火墙和代理的详细要求,请参阅网络配置

最低版本

Cursor 设定了两个最低版本门槛:

  • 最低支持版本:使用较早版本的用户会看到可关闭的警告,提示其升级。
  • 最低允许版本:使用较早版本的用户会看到无法关闭的错误,且必须升级。这意味着该发布系列已结束生命周期。

通常,某个发布版本会在其 GA 日期约 2 个月后具备成为最低支持版本的资格,并在约 3 个月后具备成为最低允许版本的资格。版本门槛的提升还取决于较新版本的采用率。

您可以结合这些说明以及我们发布的 GA 日期和变更日志日期,估算某个发布版本何时会不再适用。

在为组织管理 Cursor 部署时,我们建议定期更新 Cursor (例如通过 MDM) ,以确保用户始终使用受支持的版本。

疑难排查

常见问题

Cursor 是否支持 Linux 策略?

支持,从 2.0 版本起,Linux 使用基于文件的策略系统,策略文件位于 ~/.cursor/policy.json。有关格式和部署的详细信息,请参阅上方的“Linux 策略文件”部分。

可以在策略文件中使用环境变量吗?

不可以。策略文件必须是包含静态值的有效 JSON 文件。如有需要,请使用配置管理工具动态生成该文件。

如果策略文件中的 JSON 无效,会发生什么?

Cursor 会记录错误,并在不受策略限制的情况下运行。请查看主进程日志,了解解析错误。

如何查找我的团队 ID?

您可以在 https://cursor.com/dashboard 点击团队名称,查看团队 ID。

需要帮助大规模部署 Cursor?

联系我们的团队,获取 MDM 部署指导和优先支持。

羽毛球分组比赛记分
小程序二维码

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

小夜