SpyBara
Go Premium

managed-settings.md 2026-10-03 23:57 UTC to 2026-10-04 21:01 UTC

This page contains 97 additions and 95 deletions.

2026
Thu 1 23:59 Fri 2 22:59 Sun 4 21:58

Развертывание управляемых параметров

Развертывайте управляемые параметры на машину каждого разработчика: механизмы доставки для каждой ОС, как Claude Code объединяет управляемые источники и как проверить применение политики.

Управляемые параметры — это параметры, которые ваша организация развертывает на машину каждого разработчика. Claude Code применяет их выше всех остальных уровней, поэтому никакое значение пользователя, проекта, локального или --settings не переопределяет их, кроме нескольких исключений, чувствительных к безопасности, где более строгое значение с более низкого уровня все еще учитывается.

Эта страница предназначена для администратора, который развертывает управляемые параметры или отлаживает, почему один из них не применяется. Чтобы решить, что применять, начните с таблицы Решите, что применять. Для пути консоли claude.ai см. Управляемые параметры сервера. Для того, где находятся собственные значения разработчика, см. Параметры.

Развертывание файла управляемых параметров

Это самый быстрый способ применить политику на каждой машине: файл managed-settings.json. Если вы еще не выбрали способ доставки управляемых параметров или ваши устройства находятся под управлением MDM или разработчики запускают облачные сеансы, сначала прочитайте Выберите механизм доставки.

1

Напишите managed-settings.json

Напишите managed-settings.json, который содержит ключи, которые вы решили применять, в той же форме JSON, что и settings.json. Таблица Решите, что применять перечисляет ключи за каждым элементом управления, и каждая запись в справочнике параметров указывает, может ли управляемый источник установить его. Этот файл блокирует два чтения файлов, отключает режим обхода и заставляет Claude Code игнорировать правила разрешений из файлов пользователя, проекта и локального, а также из --allowedTools:

{
"permissions": {
"deny": [
"Read(./.env)",
"Read(./secrets/**)"
],
"disableBypassPermissionsMode": "disable"
},
"allowManagedPermissionRulesOnly": true
}

Для более полного примера, который показывает форму большего количества управляемых ключей, включая метод входа, модели, MCP серверы и маркетплейсы, см. Управляемые параметры организации.

2

Поместите файл на каждую машину

Сохраните файл как managed-settings.json в системном каталоге для операционной системы, используя любые инструменты, которые уже размещают файлы на вашем парке:

  • macOS: /Library/Application Support/ClaudeCode/managed-settings.json
  • Linux и WSL: /etc/claude-code/managed-settings.json
  • Windows: C:\Program Files\ClaudeCode\managed-settings.json
3

Подтвердите применение политики

На одной машине запустите /status внутри Claude Code. Строка Setting sources показывает Enterprise managed settings (file). Разверните на остальной парк после этого; Проверьте, что политика действует охватывает, на что смотреть, когда строка отсутствует.

Выберите механизм доставки

Файл из шагов выше — это один из четырех способов доставить управляемые параметры на машину. Каждый механизм содержит те же ключи политики, что и файл settings.json, поэтому справочник параметров применяется ко всем из них. Несколько ключей привязаны к конкретным источникам, и строка Scope каждой записи указывает, какие:

Управляемый файл параметров, профиль MDM или консоль claude.ai применяют одну политику для всех, кого они охватывают. Чтобы дать одной группе разработчиков другую политику, разверните другой файл или профиль для этой группы; консоль claude.ai пока не может нацеливаться на группу, в то время как самостоятельно размещаемый шлюз Claude apps gateway доставляет управляемые параметры для каждой группы IdP.

Когда более одного механизма доставляет политику на одну машину, Claude Code по умолчанию использует один и игнорирует остальные. Как Claude Code объединяет управляемые источники указывает порядок и согласие, которое применяется к каждому источнику.

Строки MDM и файла вместе называются параметрами, управляемыми конечной точкой, потому что политика хранится на устройстве разработчика, в отличие от строки, управляемой сервером, где Claude Code получает её.

Выберите механизм в зависимости от того, как вы уже управляете устройствами, используя таблицу ниже.

Механизм Как вы его доставляете Когда Claude Code его читает Используйте его, когда
Server-managed settings В консоли администратора claude.ai или на самостоятельно размещаемом Claude apps gateway Получается при запуске и опрашивается каждый час; см. изменения, требующие одобрения Вы хотите одно место для изменения политики для организации claude.ai без касания каждой машины
MDM или политика уровня ОС Как профиль конфигурации macOS или значение реестра Windows HKLM, через Jamf, Intune, Group Policy или аналогичный инструмент; см. где каждый механизм хранит политику Читается при запуске и проверяется на наличие изменений каждые 30 минут Вы уже управляете устройствами с помощью MDM или Group Policy
На основе файла Как managed-settings.json в системном каталоге на каждой машине; см. где каждый механизм хранит политику Читается при запуске и перезагружается при изменении файла Машины без MDM, хосты Linux или образы, которые вы создаёте сами
HKCU реестр, Windows и WSL Как значение реестра Windows HKCU; см. где каждый механизм хранит политику Читается при запуске и проверяется на наличие изменений каждые 30 минут; Claude Code использует его только когда ни один документ администратора не присутствует выше и параметры, предоставленные хостом не предоставляют ограничивающий ключ Вы не можете записать ключ уровня машины HKLM

Начальные шаблоны для Jamf, Iru, Intune и Group Policy находятся в репозитории примеров MDM.

Для управляемых MCP серверов, которые вы развёртываете вместе с любым из этих через managed-mcp.json или предоставляете через ключ managedMcpServers, см. Управляемая конфигурация MCP.

Где и когда применяется политика

Развёрнутая политика достигает сеансов разработчика следующим образом:

  • Поверхности: на машине разработчика, в терминале, расширениях VS Code и JetBrains, вкладке Code настольного приложения и сеансах Agent SDK читают все эти источники. Сеансы Agent SDK загружают управляемые параметры даже когда settingSources исключает пользовательские, проектные и локальные файлы.

  • Облачные сеансы: сеанс в среде, размещённой Anthropic, не читает профиль MDM или файл устройства, поэтому политика для него должна поступать из server-managed settings. Сеанс в самостоятельно размещаемой среде также читает файл управляемых параметров в образе своего runner, по умолчанию только когда server-managed settings не доставляют ключ политики, кроме ключей, которые Claude Code читает из каждого источника администратора. Как Claude Code объединяет управляемые источники охватывает согласие, которое применяется к обоим.

  • Сеансы Claude Tag: сеансы Claude Tag работают в облачных средах, но не получают server-managed settings. В самостоятельно размещаемой среде они всё ещё читают файл управляемых параметров в образе runner. Настройте сам Claude Tag в параметрах администратора Claude Tag.

  • Сеансы Cowork: Cowork в приложении Claude Desktop запускает свои сеансы на Claude Code. В сеансе Cowork Claude Code никогда не получает server-managed settings из консоли администратора claude.ai, даже когда пользователь входит с учётной записью Team или Enterprise, поэтому то, какая политика применяется, зависит от того, где запускается сеанс:

    • На машине пользователя: по умолчанию Claude Code в сеансе Cowork читает политику MDM или уровня ОС и файл управляемых параметров на этом устройстве, поэтому разверните политику там.
    • В полной песочнице VM: когда ваша управляемая конфигурация Claude Desktop устанавливает requireCoworkFullVmSandbox, Claude Code работает внутри виртуальной машины, где политика MDM устройства и файл управляемых параметров отсутствуют.
    • Удалённые сеансы Cowork: они работают на управляемых Anthropic виртуальных машинах, где Claude Code не имеет политики устройства для чтения.

    Где бы ни запускался сеанс, claude.ai применяет списки strictKnownMarketplaces и blockedMarketplaces консоли администратора сам по себе, когда кто-либо добавляет marketplace из git репозитория на claude.ai или из Customize на вкладке Cowork. Как работают ограничения описывает эту проверку. Таблица покрытия поверхностей сравнивает Cowork с другими поверхностями.

  • Запущенные сеансы: большинство изменений достигают запущенного сеанса по расписанию в таблице механизма доставки, без перезагрузки.

  • Изменения, требующие одобрения: кроме обновлений, которые ждут следующего запуска, изменение server-managed параметра, которое требует одобрения, такого как hook или переменная env, ждёт, пока разработчик примет диалог в интерактивном сеансе, и применяется для текущего запуска в сеансе, который размещает расширение IDE или Agent SDK. Другие изменения server-managed применяются при следующем опросе.

  • Долгоживущие сеансы: сеанс, оставленный открытым на недели, всё ещё может отставать от развёртывания. requiredMinimumVersion блокирует запуск устаревшего двоичного файла и не завершает сеанс, который уже работает.

Где каждый механизм хранит политику

Ключи одинаковы везде, но каждый механизм хранит их в разном месте и форме:

  • Server-managed: серверы Anthropic или ваш шлюз содержат политику. Claude Code хранит локальный кэш, который применяет при запуске и заменяет при каждой успешной выборке.
  • Профиль конфигурации macOS: домен управляемых предпочтений com.anthropic.claudecode. Используйте те же ключи верхнего уровня, что и managed-settings.json, с вложенными параметрами как словари и списки как массивы plist.
  • Реестр Windows HKLM: JSON как значение REG_SZ или REG_EXPAND_SZ с именем Settings под HKLM\SOFTWARE\Policies\ClaudeCode.
  • На основе файла: managed-settings.json, необязательный каталог managed-settings.d/ и managed-mcp.json в системном каталоге: /Library/Application Support/ClaudeCode/ на macOS, /etc/claude-code/ на Linux и WSL, и C:\Program Files\ClaudeCode\ на Windows. Claude Code не читает устаревший путь Windows C:\ProgramData\ClaudeCode\managed-settings.json.
  • Реестр Windows HKCU: то же значение Settings под HKCU\SOFTWARE\Policies\ClaudeCode.

Разделите политику на основе файла между командами

Если несколько команд владеют частями одной политики, поместите каждую часть в свой собственный файл в managed-settings.d/, рядом с managed-settings.json в том же системном каталоге, вместо редактирования одного общего файла.

Claude Code объединяет managed-settings.json первым, затем каждый файл *.json в каталоге в алфавитном порядке. Назовите файлы с числовыми префиксами для управления порядком, такими как 10-telemetry.json и 20-security.json. Claude Code игнорирует скрытые файлы и файлы, которые не заканчиваются на .json.

Когда два файла устанавливают один и тот же ключ, Claude Code объединяет их по этим правилам:

  • Одиночные значения, такие как "model": "opus" или "cleanupPeriodDays": 7: значение более позднего файла заменяет более раннее
  • Списки, такие как permissions.deny или sandbox.network.allowedDomains: два списка объединяются, с удалением дубликатов
  • Вложенные блоки, такие как env или sandbox: два блока объединяются ключ за ключом, и каждый ключ внутри следует этим же правилам
  • fallbackModel: более поздняя цепь полностью заменяет более раннюю
  • extraKnownMarketplaces и managedMcpServers: более позднее значение с тем же именем полностью заменяет более раннее
  • modelPicker: более поздний набор полностью заменяет более ранний

Как Claude Code объединяет управляемые источники

Когда ваша организация доставляет более одного управляемого источника на одну машину, ключ managedSourcesBehavior определяет, что Claude Code делает с остальными:

  • "first-wins", по умолчанию: Claude Code использует источник с наивысшим рейтингом, который доставляет по крайней мере один ключ политики, и игнорирует остальные, а не объединяет их, за исключением ключей в Ключи, читаемые из каждого источника администратора. Claude Code не показывает предупреждение для источников, которые он пропускает; /status называет источник, который он использовал, и те, которые он пропустил.
  • "merge": Claude Code применяет каждый источник администратора, который доставляет ключ политики, и объединяет их по типу ключа: для большинства ключей применяется значение источника с более высоким рейтингом, списки объединяются, а блокировки принимают наиболее строгое значение. Составьте каждый управляемый источник указывает, где установить ключ и как объединяется каждый тип ключа. Требует Claude Code v2.1.242 или позже.

Оба параметра ранжируют источники одинаково. Эти термины повторяются в этом разделе:

  • Ключ политики: любой ключ настроек, кроме двух управляющих ключей, wslInheritsWindowsSettings и managedSourcesBehavior. Файл управляемых настроек или политика MDM, которые содержат только эти ключи, не учитываются, и Claude Code переходит к следующему источнику.
  • Источник администратора: один из первых трёх источников ниже. Реестр HKCU доступен для записи пользователем и не является источником администратора.

Claude Code проверяет источники в этом порядке, от наивысшего приоритета к наименьшему:

  1. Удалённые настройки, доставленные с claude.ai как настройки, управляемые сервером, или через шлюз приложений Claude. Claude Code получает этот источник только когда сессия аутентифицируется в API Anthropic напрямую с помощью подходящего входа или ключа или входит в шлюз с помощью /login. На других поставщиках или когда ANTHROPIC_BASE_URL указывает на что-то другое, чем API Anthropic, он начинает со следующего источника
  2. Политики MDM или уровня ОС: plist macOS или ключ реестра HKLM
  3. Файлы управляемых настроек, managed-settings.d/*.json и managed-settings.json, объединённые вместе
  4. Реестр HKCU в Windows, а также в WSL после того, как реестр HKLM или файл управляемых настроек Windows включит wslInheritsWindowsSettings и значение HKCU тоже задаст его. Claude Code читает его, только когда над ним нет присутствующего документа администратора и никакие родительские настройки, предоставленные хостом, не задают ограничивающий ключ

Эта диаграмма показывает ранжирование с примерами кросс-источниковых ключей, которые Claude Code читает из первых трёх источников при любом параметре:

Диаграмма, показывающая четыре источника управляемых настроек, ранжированные от удалённых настроек в верхней части через MDM, файлы управляемых настроек и реестр HKCU в нижней части. По умолчанию первый источник с ключом политики предоставляет политику, а остальные пропускаются; с managedSourcesBehavior, установленным на merge, каждый источник администратора с ключом политики вносит вклад, объединённый по типу ключа, и реестр HKCU остаётся в стороне. Боковая панель показывает, что кросс-источниковые ключи, такие как блокировки песочницы, forceRemoteSettingsRefresh и объединение env для каждой переменной, читаются из каждого источника администратора, что исключает реестр HKCU. Диаграмма, показывающая четыре источника управляемых настроек, ранжированные от удалённых настроек в верхней части через MDM, файлы управляемых настроек и реестр HKCU в нижней части. По умолчанию первый источник с ключом политики предоставляет политику, а остальные пропускаются; с managedSourcesBehavior, установленным на merge, каждый источник администратора с ключом политики вносит вклад, объединённый по типу ключа, и реестр HKCU остаётся в стороне. Боковая панель показывает, что кросс-источниковые ключи, такие как блокировки песочницы, forceRemoteSettingsRefresh и объединение env для каждой переменной, читаются из каждого источника администратора, что исключает реестр HKCU.

Когда документ администратора считается присутствующим

При ранжировании управляемых источников Claude Code никогда не применяет доступный для записи пользователю реестр HKCU под присутствующим документом администратора. Документ считается присутствующим, когда:

  • Он задаёт любому ключу политики значение, отличное от null, даже если это значение Claude Code не может прочитать
  • Это значение HKLM, файл управляемых настроек или каталог managed-settings.d, который существует, но не может быть прочитан

В WSL каталог /etc/claude-code тоже доступен для записи пользователю, а запись wslInheritsWindowsSettings описывает, когда документы Windows стоят выше него.

Ключи, читаемые из каждого источника администратора

При параметре по умолчанию "first-wins" Claude Code читает большинство ключей только из источника, который он выбрал, и игнорирует значение в источнике с более низким рейтингом, даже когда выбранный источник оставляет этот ключ неустановленным.

Несколько ключей работают иначе. Claude Code читает их из каждого источника администратора, поэтому политика MDM с более низким рейтингом или файл управляемых настроек могут всё ещё установить их, когда выбранный источник этого не делает. Claude Code исключает доступный для записи пользователем реестр HKCU из этого сканирования; когда HKCU является единственным источником и ни один хост не предоставляет родительские настройки, HKCU применяется как любой выбранный источник.

Кросс-источниковые ключи включают:

  • sandbox.network.allowManagedDomainsOnly и sandbox.filesystem.allowManagedReadPathsOnly: true в любом источнике администратора включает блокировку. Пока блокировка включена, Claude Code объединяет список разрешённых значений, который она блокирует, sandbox.network.allowedDomains вместе с разрешающими правилами WebFetch(domain:...) или sandbox.filesystem.allowRead из каждого источника администратора. Без блокировки Claude Code обрабатывает список разрешённых значений как любой другой ключ, поэтому при "first-wins" список разрешённых значений невыбранного источника администратора игнорируется

  • allowAllClaudeAiMcps

  • allowManagedMcpServersOnly: true в любом источнике администратора включает блокировку списка разрешённых MCP-серверов. Пока блокировка включена, управляемый список allowedMcpServers поступает из источника администратора с наивысшим рейтингом, который его устанавливает. Список, управляемый сервером, заменяет список нижнего источника, а не объединяется с ним.

    Если ни один источник администратора не устанавливает список, каждый сервер, который проходит список запрещённых, загружается, если только родительские настройки не предоставляют список.

    Без блокировки Claude Code читает allowedMcpServers из управляемого источника, который он применяет, поэтому при "first-wins" список невыбранного источника администратора игнорируется. Требует Claude Code v2.1.273 или позже

  • deniedMcpServers и disableClaudeAiConnectors: запись или true в любом источнике администратора применяется. Требует Claude Code v2.1.273 или позже

  • Пути двоичных файлов песочницы sandbox.bwrapPath и sandbox.socatPath

  • Двоичный файл песочницы ripgrep, sandbox.ripgrep

  • sandbox.filesystem.disabled и sandbox.network.strictAllowlist

  • useAutoModeDuringPlan, syncClaudeAiSkills и syncClaudeAiPlugins, где false из любого источника администратора отключает поведение. false в пользовательских или локальных настройках разработчика также отключает его; каждый ключ может только отрицать

  • enableArtifact, где false из любого источника администратора отключает инструмент Artifact. false в пользовательских, проектных или локальных настройках разработчика также отключает его, и ни один источник не включает его обратно; см. какие значения более низкого уровня всё ещё учитываются. Требует Claude Code v2.1.242 или позже

  • maxEffortLevel, где применяется наименьший лимит из любого источника администратора. Если разработчик устанавливает более низкий лимит в своих собственных настройках или с помощью --settings, Claude Code применяет этот; ни один источник не может повысить лимит. Требует Claude Code v2.1.267 или позже

  • Отказ от трейлера коммита в attribution или в устаревшем includeCoAuthoredBy из любого уровня

  • forceRemoteSettingsRefresh

  • env, объединённый для каждой переменной из источников администратора: каждая переменная поступает из источника с наивысшим приоритетом, который её определяет, поэтому нижние источники заполняют переменные, которые оставляют неустановленными более высокие. Несколько переменных следуют своим собственным правилам; Исключения для каждого ключа из управляемых источников называет каждое. Требует Claude Code v2.1.223 или позже. До v2.1.223 Claude Code применял только весь блок env выбранного источника

Ключи входа в шлюз следуют отдельному правилу. Claude Code никогда не читает их из настроек, управляемых сервером, поэтому пока настройки, управляемые сервером, являются выбранным источником, источник администратора на машине с наивысшим рейтингом, который несёт ключ политики, всё ещё их предоставляет. Значение в источнике администратора, ранжированном ниже этого, или в реестре HKCU, игнорируется.

allowedProviders имеет своё собственное правило: примечание Scope его записи говорит, как список, установленный на машине, объединяется с управляемым сервером. Требует Claude Code v2.1.285 или позже.

Когда источник администратора устанавливает allowManagedMcpServersOnly или список allowedMcpServers и это значение не является тем, которое действует, /status и claude doctor называют этот источник и ключ.

Составьте каждый управляемый источник

Чтобы Claude Code применял каждый источник администратора, который доставляет ваша организация, установите managedSourcesBehavior на "merge" в источнике с наивысшим рейтингом, который вы развёртываете. Claude Code читает ключ только из источника с наивысшим рейтингом, который несёт либо ключ, либо ключ политики, поэтому нижний источник не может выбрать себя для объединения с источником выше него, и машина, которая никогда не получает настройки, управляемые сервером, нуждается в ключе в своём профиле MDM тоже. Доступный для записи пользователем реестр HKCU никогда не объединяется с другим источником. Требует Claude Code v2.1.242 или позже.

При "merge" Claude Code добавляет записи списка нижнего источника, такие как правила permissions.allow и хуки, к политике, поэтому включайте это только когда каждый источник, ранжированный ниже вашего наивысшего, находится под контролем администратора.

Эта таблица показывает, как Claude Code объединяет каждый тип ключа при "merge". Запись managedSourcesBehavior называет каждый ключ в трёх из строк: ограничивающие списки разрешённых значений, значения, взятые целиком, и ключи, читаемые только из источника с наивысшим рейтингом.

Тип ключа Как Claude Code его объединяет Примеры
Списки Объединяет записи из каждого источника permissions.allow, hooks, sandbox.network.allowedDomains, deniedMcpServers, deniedModels
Блокировки Применяет наиболее строгое значение, которое устанавливает любой источник; более мягкое значение применяется только из источника с наивысшим рейтингом allowManagedHooksOnly, permissions.disableBypassPermissionsMode, crossSessionInbound, availableModelsMatch
Ограничивающие списки разрешённых значений Берёт список целиком из источника с наивысшим рейтингом, который его устанавливает, без добавления записей из нижних источников availableModels, allowedMcpServers, strictKnownMarketplaces, allowedChannelPlugins и цепь fallbackModel
Значения, взятые целиком Берёт значение целиком из источника с наивысшим рейтингом, который его устанавливает, без объединения записей или полей из нижних источников sandbox.credentials.awsPairs, sandbox.ripgrep
Предоставленные MCP-серверы Объединяет имена серверов из каждого источника; когда два источника устанавливают одно имя, применяет всю запись источника с более высоким рейтингом managedMcpServers
Ключи, читаемые только из источника с наивысшим рейтингом Игнорирует ключ в каждом нижнем источнике, даже когда источник с наивысшим рейтингом оставляет его неустановленным Помощники учётных данных, такие как apiKeyHelper, пины входа, такие как forceLoginOrgUUID, modelPicker, permissions.defaultMode
env Объединяет для каждой переменной из источников администратора при любом параметре, как описано в Ключи, читаемые из каждого источника администратора
Каждый другой ключ Берёт значение из источника с наивысшим рейтингом, который его устанавливает model, cleanupPeriodDays

Чтобы подтвердить, какие источники объединились на машине, прочитайте строку Setting sources в /status; этот раздел говорит, что означает каждая метка.

Вычислите политику с помощью вспомогательной программы

policyHelper — это исполняемый файл, который называет ваша политика MDM или файл управляемых настроек, и Claude Code запускает его для вычисления управляемых настроек при запуске. Когда выбранный источник настраивает один и помощник выдаёт объект managedSettings, этот вывод изменяет то, что читает Claude Code:

Для того, какие запуски помощника не удаются и что Claude Code делает, когда это происходит, см. Сбои помощника.

Позвольте хосту встраивания добавить политику

Когда другое приложение запускает Claude Code, такое как Claude Desktop, расширение IDE или приложение Agent SDK, этот хост может передать свои собственные управляемые настройки через опцию SDK managedSettings. Claude Code называет их родительскими настройками.

По умолчанию Claude Code игнорирует родительские настройки всякий раз, когда присутствует источник администратора: настройки, управляемые сервером, политика MDM или уровня ОС, или файл управляемых настроек.

Чтобы Claude Code объединял родительские настройки наряду с источником администратора, установите parentSettingsBehavior на "merge" в управляемом источнике с наивысшим приоритетом; Claude Code читает ключ только из этого источника.

Claude Code затем сохраняет только значения хоста, которые ограничивают то, что может делать Claude, с одним пробелом, о котором нужно знать: если вы также не установите блокировки allowManaged*Only, разрешающие правила хоста и списки разрешённых значений песочницы всё ещё применяются. См. Ограничьте родительские настройки для блокировок.

policyHelper может отключить объединение родительских настроек независимо от этого ключа; его запись говорит, когда.

Claude Code также применяет эти проверки к значениям, предоставленным родителем, самостоятельно:

  • Когда любой источник администратора устанавливает allowManagedPermissionRulesOnly, Claude Code удаляет предоставленные родителем разрешающие правила и additionalDirectories по мере их чтения, даже когда источник с более высоким приоритетом оставляет ключ неустановленным. Эффект ключа на ваши собственные правила разрешений исходит из управляемых настроек, которые применяет Claude Code, или из родительских настроек, которые вы выбрали для объединения

  • Claude Code применяет значение forceLoginOrgUUID или allowedMcpServers в управляемых настройках, которые он применяет, и блокирует предоставленное родителем. Вне блокировки списка разрешённых MCP-серверов значение в нижнем источнике администратора, который Claude Code не применяет, ни применяется, ни блокирует родителя.

    На Claude Code v2.1.273 или позже, пока allowManagedMcpServersOnly включена, список allowedMcpServers из источника администратора с наивысшим рейтингом, который его устанавливает, применяется и блокирует родителя, как кросс-источниковый ключ. Список родителя применяется только когда ни один источник администратора не устанавливает один. Запись managedSourcesBehavior говорит, какой источник предоставляет каждый ключ при "merge". До v2.1.223 значение в любом источнике администратора блокировало родителя

  • Для availableModels Claude Code применяет значение в управляемых настройках, которые он применяет, и блокирует предоставленный родителем список

  • Для strictKnownMarketplaces Claude Code аналогично применяет список в управляемых настройках, которые он применяет, и блокирует предоставленный родителем. Список родителя применяется только когда ни один применённый управляемый источник не устанавливает один. Требует Claude Code v2.1.282 или позже

  • Для allowedProviders список в выбранном управляемом источнике блокирует предоставленный родителем, а при включённом значении "merge" для managedSourcesBehavior его блокирует список в любом источнике администратора. Требует Claude Code v2.1.285 или позже

  • Предоставленный родителем blockedMarketplaces применяется в дополнение к любому списку блокировок, который устанавливает управляемый источник. Требует Claude Code v2.1.282 или позже

Сохраните доступ к папке Cowork, когда применяются только управляемые правила

Cowork в приложении Claude Desktop запускает свои сессии на Claude Code и предоставляет каждой сессии доступ к её рабочим папкам, таким как папка, которую подключает пользователь, через разрешающие правила, которые он предоставляет при запуске сессии. Когда ваша управляемая политика устанавливает allowManagedPermissionRulesOnly, Claude Code сохраняет только разрешающие правила в управляемой политике: он удаляет разрешающие правила, которые хост предоставляет как родительские настройки, как --allowedTools или в файле настроек, поэтому записи в эти папки теряют предварительное одобрение. В сессии Cowork, которая спрашивает перед редактированием, Cowork не может показать запрос разрешения, и Claude сообщает о каждой записи как заблокированной, потому что путь разрешается в защищённое место или путь вне подключённой папки.

Чтобы восстановить записи, добавьте разрешающие правила для этих папок в управляемый источник, который Claude Code выбирает на этих машинах: на управляемом MDM парке это политика MDM, а не отдельный файл управляемых настроек. Этот пример использует форму файла, и политика MDM принимает те же ключи. Она сохраняет allowManagedPermissionRulesOnly установленным и позволяет редактирование в папке CoworkProjects в домашнем каталоге каждого пользователя; замените путь на папки, которые подключают ваши пользователи:

{
  "allowManagedPermissionRulesOnly": true,
  "permissions": {
    "allow": [
      "Edit(~/CoworkProjects/**)"
    ]
  }
}

После развёртывания политики Claude может сохранять файлы в этой папке в новой сессии Cowork. Правила Read и Edit охватывают синтаксис пути, включая форму // для абсолютных путей.

Что может изменить разработчик

Собственные файлы настроек разработчика, значения --settings и файлы проекта никогда не переопределяют управляемое значение; исключения только позволяют учитывать более строгое значение более низкого уровня. Эти случаи находятся вне этого правила:

  • Модель для сессии: управляемая model — это значение по умолчанию, а не блокировка. --model и ANTHROPIC_MODEL всё ещё выбирают модель для этой сессии, поэтому развёртывайте availableModels для ограничения выбора.
  • Окно автосжатия для сессии: управляемый autoCompactWindow — тоже значение по умолчанию. Флаг --autocompact и переменная CLAUDE_CODE_AUTO_COMPACT_WINDOW всё ещё задают окно автосжатия для этой сессии.
  • Локальные права администратора: разработчик, который является администратором на машине, может редактировать сам управляемый источник, поэтому инструменты MDM могут переразвёртывать профиль или файл по расписанию и почему существуют реестр HKLM и домен управляемых предпочтений macOS.
  • Кэш, управляемый сервером: настройки, управляемые сервером, поступают с серверов Anthropic, и редактирование локального кэша длится только до следующей успешной выборки.
  • Другие инструменты: управляемые настройки привязывают только Claude Code. Разработчик, который вызывает API из другого инструмента, не подчиняется им.

Проверьте, что политика действует

Разработчик сообщает, что политика не применяется, или вы хотите подтвердить, что развёртывание прошло успешно перед развёртыванием на весь парк. Две команды на этой машине дают ответ: /status показывает, какой управляемый источник выбрал Claude Code, а claude doctor перечисляет то, что он отбросил.

Прочитайте источник в /status

На машине разработчика запустите /status внутри Claude Code и прочитайте строку Setting sources. Когда управляемый источник действует, строка перечисляет Enterprise managed settings с источником, выбранным Claude Code, в скобках:

  • (remote): управляемые сервером настройки из claude.ai или шлюза
  • (plist) или (HKLM): политика MDM или ОС
  • (file), (drop-ins) или (file + drop-ins): managed-settings.json, каталог drop-in или оба
  • (remote + file, merged) или другой список, заканчивающийся на , merged: ваша организация объединяет каждый управляемый источник, и Claude Code объединил перечисленные источники в политику. Нижний источник всё ещё может предоставлять переменные env без появления в списке. Требуется Claude Code v2.1.242 или позже
  • (HKCU): резервный вариант реестра, доступный для записи пользователем
  • (parent process): хост встраивания предоставил ограничивающие настройки
  • (helper): policyHelper, настроенный выбранным источником MDM или файла

Когда Claude Code обнаружил управляемый источник на машине и не выбрал его, вторая строка, Skipped sources, называет каждый такой источник. Прочитайте её, чтобы отличить политику, которая никогда не достигла машины, от той, которая достигла её и которую переопределил источник с более высоким приоритетом. Требуется Claude Code v2.1.242 или позже.

Когда политика не применяется, строка Setting sources говорит вам, какая из двух проблем у вас есть:

  • Строка отсутствует: Claude Code не нашёл управляемый источник, который доставляет ключ политики.

    Если вы развернули файл управляемых настроек, проверьте, что он находится по пути для ОС и что он содержит ключ политики, а не только ключи управления. Файл, который не является допустимым JSON, не создаёт это состояние; вместо этого Claude Code отказывается запускаться.

    Если вместо этого вы развернули через управляемые сервером настройки, запустите claude doctor, который сообщает результат получения.

  • Строка называет источник, отличный от того, который вы развернули: присутствует источник с более высоким приоритетом, и Claude Code проигнорировал ваш, а Skipped sources его перечисляет. Как Claude Code объединяет управляемые источники описывает порядок.

Найдите записи, которые Claude Code отбросил

Если ваш файл управляемых настроек, профиль MDM, значение реестра или данные, управляемые сервером, не проходят проверку схемы, Claude Code сначала пропускает каждую отдельную запись, которую он может исправить, например одно неправильное правило разрешений, и предупреждает о каждой. Затем Claude Code отбрасывает любое значение, которое всё ещё не проходит проверку, если только значение не принадлежит одному из ключей, которые вместо этого не проходят закрыто.

Claude Code более строг с managedSettings, которые выдаёт policyHelper: он делает те же исправления записей, но любое оставшееся нарушение схемы приводит к сбою всего запуска помощника, и при запуске Claude Code отказывается запускаться — так же, как и для помощника, который завершается с ненулевым кодом.

Когда файл управляемых настроек, файл drop-in, plist MDM или значение реестра HKLM присутствуют, но не могут быть проанализированы как объект JSON, Claude Code отказывается запускаться и выводит ошибку, называющую источник, даже когда другой источник администратора доставляет допустимую политику. Каждый источник не проходит таким образом, когда:

  • Файл управляемых настроек или файл drop-in: файл не является допустимым JSON или его верхний уровень не является объектом
  • MDM plist: plutil macOS сообщает, что plist неправильно сформирован, или его преобразованное содержимое не является объектом JSON
  • Значение реестра HKLM: значение Settings не является строкой, пусто или не содержит объект JSON

Три состояния источника не вызывают этого отказа:

  • Отсутствующий файл, профиль или значение реестра не является сбоем; Claude Code работает без этого источника.
  • Пустой файл управляемых настроек считается {}.
  • Неправильное значение в доступном для записи пользователем ключе реестра HKCU никогда не блокирует запуск. Вместо этого Claude Code сообщает об этом как уведомление в /status и claude doctor.

Когда файл управляемых настроек, файл drop-in, каталог managed-settings.d/, профиль MDM или значение реестра HKLM существуют, но не могут быть прочитаны, и ни один источник администратора не предоставляет политику, то, что происходит, зависит от причины сбоя чтения:

  • Если операционная система отказала в чтении, например для файла, доступного только root, каждая сессия запускается без политик этого источника. /status и claude doctor записывают сбой, а запуск с -p также выводит его в stderr.
  • При любом другом сбое чтения, например ошибке ввода-вывода, каждая сессия завершается при запуске с сообщением о необходимости связаться с администратором.

Чтобы найти отброшенную запись, посмотрите в одном из трёх мест:

  • Интерактивные сессии показывают диалоговое окно при запуске, в котором перечислены неправильные записи.
  • Неинтерактивные запуски с -p выводят сводку в stderr.
  • claude doctor перечисляет каждую неправильную запись с её источником и полем.

Ключи, которые не проходят закрыто

Когда управляемый источник устанавливает ключ верхнего уровня, который имеет одно ограничивающее значение, такой как allowManagedPermissionRulesOnly, disableAutoMode или skipDangerousModePermissionPrompt, в значение, которое Claude Code не может прочитать, ключ читается как это ограничивающее значение, пока вы его не исправите. Отчёт сообщает, что ключ was present but invalid, и называет значение, которым его считает Claude Code. Для ключа внутри sandbox см. Неправильные значения внутри sandbox.

Эти случаи не проходят закрыто:

  • null удаляет ключ.
  • Неправильный disableAllHooks, даже логическое значение в кавычках, отбрасывается с предупреждением, потому что применение true также выгрузило бы хуки, которые развёртывают ваши собственные управляемые настройки.
  • Для каждого другого логического ключа, который охватывает правило, строка "true" или "false" читается как соответствующее логическое значение, с уведомлением в /status, предлагающим вам удалить кавычки.

Claude Code исправляет блоки permissions, autoMode, worktree и attribution по полям вместо того, чтобы отбрасывать их целиком:

  • Блокировка внутри одного из них, такая как permissions.disableBypassPermissionsMode, читается как её ограничивающее значение.
  • Неправильный permissions.defaultMode читается как default.
  • Пока список deny или ask в permissions вообще не может быть прочитан, Claude Code удерживает allow и additionalDirectories, поэтому разрешения никогда не применяются без ограничений, записанных рядом с ними. Отчёт называет каждое удержанное разрешение и список, который не удалось прочитать.
  • В autoMode список soft_deny или hard_deny, который не может быть прочитан или потерял неправильную запись, таким же образом удерживает allow и environment.

Правило «не проходят закрыто» для ключей с одним ограничивающим значением и исправления по полям требуют Claude Code v2.1.282 или позже.

Эти ключи имеют свой собственный резервный вариант:

Поле Поведение при наличии, но неправильном значении
allowedMcpServers Применяется как пустой список разрешённых серверов до исправления значения, поэтому ни один MCP-сервер, который добавляют пользователи, не допускается. Серверы, которые ваша организация доставляет через managedMcpServers, всё ещё загружаются, а серверы managed-mcp.json загружаются в соответствии с разделом Серверы, которые пропускают проверку списка разрешённых. Неправильная отдельная запись удаляется, и применяется допустимое подмножество.
allowedProviders Применяется как пустой список разрешённых поставщиков до исправления значения, поэтому каждый поставщик API отклоняется и Claude Code не запускается на машине. Если только отдельная запись не является известным именем поставщика, Claude Code отбрасывает эту запись, сообщает о ней и применяет остальные.
allowedHttpHookUrls Claude Code применяет пустой управляемый список разрешённых URL до исправления значения, поэтому HTTP-хук выполняется, только если другой файл настроек перечисляет его URL. Если неправильна только отдельная запись, Claude Code удаляет эту запись и применяет остальные.
httpHookAllowedEnvVars Claude Code применяет пустой управляемый список разрешённых переменных до исправления значения, поэтому переменная заголовка интерполируется, только если другой файл настроек её называет. Если неправильна только отдельная запись, Claude Code удаляет эту запись и применяет остальные.
allowedChannelPlugins Claude Code применяет пустой список разрешённых плагинов до исправления значения, поэтому ни один плагин канала, переданный в --channels, не допускается. Если неправильна только отдельная запись, он удаляет эту запись и применяет остальные.
strictKnownMarketplaces Применяется как пустой список разрешённых маркетплейсов до исправления значения, поэтому ни один источник маркетплейса не допускается. Отдельная запись, которая неправильна или не может быть применена, например регулярное выражение hostPattern, которое не компилируется, удаляется, и применяется допустимое подмножество.
availableModels Применяется как пустой список разрешённых моделей до исправления, поэтому доступна только модель по умолчанию; запись, которая не является строкой, удаляется, и применяется допустимое подмножество.
availableModelsMatch Рассматривается как exact до исправления значения.
forceLoginOrgUUID Ни одной организации не разрешается входить до исправления значения.
gatewayInternalNetworks Когда неправильное значение поступает от управляемого источника с наивысшим приоритетом на машине, /login отклоняет каждый новый вход через облачный шлюз на этой машине до исправления значения.
crossSessionInbound Рассматривается как refuse, наиболее ограничивающее значение, поэтому входящие сообщения между сессиями отклоняются до исправления значения. Разработчик видит предупреждение.
deniedMcpServers Неправильная отдельная запись удаляется, и применяется допустимое подмножество. Полностью неправильное значение отбрасывается с предупреждением, так как запрет каждого сервера заблокировал бы серверы, которые политика никогда не называла.
deniedModels Запись, которая не является строкой, удаляется, и применяется остальная часть списка. Полностью неправильное значение отбрасывается с предупреждением и не блокирует никакие модели до исправления.
blockedMarketplaces Неправильная отдельная запись удаляется, и применяется допустимое подмножество. Запись, которая анализируется, но никогда не может совпасть, например регулярное выражение hostPattern, которое не компилируется, сохраняется с предупреждением. Она ничего не блокирует до исправления, но ограничения маркетплейса остаются активными. Полностью неправильное значение отбрасывается с предупреждением, так как блокирование каждого маркетплейса заблокировало бы источники, которые политика никогда не называла.
sandbox Когда одно значение внутри блока неправильно, Claude Code не отбрасывает весь блок. О том, что происходит с каждым видом неправильного поля, см. Неправильные значения внутри sandbox.
sandbox.credentials Восстанавливаемая неправильная запись понижается до mode: "deny" с предупреждением; невосстанавливаемая удаляется; допустимые записи продолжают применяться. См. неправильные записи учётных данных.
strictPluginOnlyCustomization Рассматривается как true, блокирующее все четыре интерфейса, когда значение не является ни логическим, ни массивом. Запись массива, которую эта версия не распознаёт как интерфейс, ничего не блокирует; примечание статуса подсчитывает такие записи, чтобы вы могли проверить их на опечатки.
enabledPlugins Неправильная запись отбрасывается с предупреждением, и другие записи продолжают применяться. Значение, которое не является картой ID плагинов или каждая запись которого неправильна, отбрасывается целиком с предупреждением.

allowedHttpHookUrls и httpHookAllowedEnvVars объединяются между файлами настроек, поэтому записи в ваших пользовательских, проектных или локальных настройках всё ещё применяются, пока управляемый список пуст.

Резервные варианты для этих двух ключей и для allowedChannelPlugins требуют Claude Code v2.1.267 или позже; более ранние версии отбрасывают весь ключ, когда его значение или любая запись неправильны. Резервные варианты strictKnownMarketplaces и blockedMarketplaces требуют Claude Code v2.1.277 или позже; более ранние версии отбрасывают весь ключ, когда его значение или любая запись неправильны. Резервные варианты strictPluginOnlyCustomization и enabledPlugins требуют Claude Code v2.1.282 или позже.

requiredMinimumVersion и requiredMaximumVersion намеренно не проходят открыто: неправильное значение отбрасывается, а не применяется.

Эта терпимость применяется только к управляемым настройкам. Файлы пользовательских, проектных и локальных настроек остаются строгими: файл, чей JSON или форма верхнего уровня не проходит проверку, отклоняется целиком с сообщением об этом, а отдельная запись, которая не проходит проверку, например неправильное правило разрешений, пропускается с предупреждением, тогда как остальная часть файла применяется.

Неправильные значения внутри `sandbox`

Когда одно значение в вашем управляемом блоке sandbox неправильно, Claude Code не отбрасывает весь блок, потому что он проверяет каждое поле отдельно. Эта обработка по полям требует Claude Code v2.1.283 или позже. В версиях до v2.1.283 Claude Code отбрасывает каждое поле sandbox, кроме credentials, когда значение вне credentials неправильно.

Предупреждение, которое вы получаете для неправильного поля, называет поле и сообщает, что с ним происходит. Что происходит, зависит от того, что контролирует поле:

  • Если вы установите логический ключ в "true" или "false" в кавычках, значение считается соответствующим логическим значением. Вместо предупреждения /status показывает уведомление, предлагающее вам удалить кавычки.
  • Если failIfUnavailable неправилен, Claude Code отбрасывает значение, а не рассматривает его как true, поэтому нечитаемое значение никогда не мешает запуску сессий во всём вашем парке.
  • Каждое другое неправильное логическое значение Claude Code рассматривает как значение, которое сохраняет песочницу максимально строгой, пока вы его не исправите. Ключ, который включает песочницу или одно из её ограничений, например enabled или network.allowManagedDomainsOnly, считается true. Ключ, который ослабляет её, например allowUnsandboxedCommands, считается false.
  • В списке вне credentials, таком как excludedCommands или network.allowedDomains, Claude Code отбрасывает неправильную запись и сохраняет остальную часть списка. Список, который не является массивом или не имеет ни одной допустимой записи, вообще не применяется.
  • Пока network.deniedDomains или любая запись в нём неправильны, Claude Code также удерживает network.allowedDomains, поэтому управляемый список разрешённых доменов ничего не разрешает, пока вы не исправите список запрещённых.
  • Пока filesystem.denyRead, filesystem.denyWrite или любая запись в любом из них неправильны, Claude Code также удерживает и filesystem.allowRead, и filesystem.allowWrite, пока вы не исправите список запрещённых.

Ключи, которые может установить только управляемый источник

Claude Code читает следующие ключи только из управляемого источника; размещение их в файлах параметров пользователя или проекта не имеет эффекта.

Большинство из них — это блокировки: значение, которое блокировка управляет, такое как правила разрешения или sandbox.network.allowedDomains, — это обычный ключ, который может установить любой уровень, и блокировка говорит Claude Code чтить только управляемое значение.

Таблица охватывает элементы управления разрешением, плагином и доставкой. Для любого ключа, не указанного здесь, столбец Scope справочника параметров говорит, является ли он только управляемым.

Параметр Описание
allowAllClaudeAiMcps Загружайте соединители claude.ai, которые Claude Code получает сам, вместе с развернутым managed-mcp.json, вместо их подавления
allowedChannelPlugins Список разрешений плагинов канала, которые могут отправлять сообщения. Заменяет список разрешений Anthropic по умолчанию, когда установлен. Требует channelsEnabled: true. См. Ограничьте, какие плагины канала могут работать
allowManagedHooksOnly Когда true, ограничивает, какие hooks работают; см. что работает под allowManagedHooksOnly для полного списка эффектов
allowManagedMcpServersOnly Когда true, уважаются только allowedMcpServers из управляемых параметров. deniedMcpServers все еще объединяется из всех источников. См. Ключи, читаемые из каждого источника администратора для того, какие управляемые источники могут его установить, и Управляемая конфигурация MCP
allowManagedPermissionRulesOnly Делает управляемые параметры единственным источником параметров правил разрешения. Запись перечисляет каждый источник, который она игнорирует
blockedMarketplaces Список блокировки источников маркетплейса. Заблокированные источники проверяются перед загрузкой, поэтому они никогда не касаются файловой системы. См. управляемые ограничения маркетплейса
channelsEnabled Разрешить каналы для организации. См. элементы управления предприятием для значения по умолчанию на каждом плане
disableCommandPluginSources Когда true, полностью блокирует command источники плагинов, поэтому объявленная маркетплейсом команда никогда не работает. Также блокирует команды headersHelper маркетплейса, кроме маркетплейса, который сами управляемые параметры объявляют. Когда не установлено, следует allowManagedHooksOnly. Требует Claude Code v2.1.229 или позже, и блок headersHelper требует v2.1.238 или позже
disableSideloadFlags Отклоните флаги --plugin-dir, --plugin-url, --agents и --mcp-config при запуске. В облачных сеансах Claude Code вместо этого запускает сеанс и отбрасывает серверы --mcp-config, доставленные сервером, кроме исключений, которые перечисляет его справочная запись. Требует Claude Code v2.1.193 или позже
forceRemoteSettingsRefresh Когда true, блокирует запуск CLI, пока управляемые параметры удаленного сервера не будут свежо получены, и выходит, если выборка не удается. См. применение fail-closed
managedMcpServers Удаленные MCP серверы, предоставленные каждому пользователю вместе с их собственными. Он предоставляет серверы, а не блокирует что-либо. См. Предоставьте серверы через управляемые параметры. Требует Claude Code v2.1.259 или позже
managedSourcesBehavior Применяет ли Claude Code только управляемый источник с наивысшим приоритетом или составляет каждый из них
parentSettingsBehavior Объединяются ли параметры родителя, предоставленные хостом, под управляемой политикой
pluginSuggestionMarketplaces Маркетплейсы, плагины которых Claude Code может предложить пользователям
pluginTrustMessage Пользовательское сообщение, добавленное к предупреждению о доверии плагина, показываемому перед установкой
policyHelper Исполняемый файл, который вычисляет управляемые параметры при запуске; см. Вычислите управляемые параметры с помощью помощника политики
sandbox.filesystem.allowManagedReadPathsOnly Когда true, уважаются только пути filesystem.allowRead из управляемых параметров. denyRead все еще объединяется из всех источников
sandbox.network.allowManagedDomainsOnly Чтите только управляемые allowedDomains и правила разрешения WebFetch(domain:...); блокируйте другие домены без подсказки
strictKnownMarketplaces Контролирует, какие источники маркетплейса плагинов пользователи могут добавлять и устанавливать плагины из. См. управляемые ограничения маркетплейса
strictPluginOnlyCustomization Блокируйте skills, agents, hooks и MCP серверы из источников пользователя и проекта; true блокирует все четыре, массив называет, какие
wslInheritsWindowsSettings Когда установлено в реестре HKLM или файле под C:\Program Files\ClaudeCode, имейте WSL читать цепь политики Windows и читайте /etc/claude-code только когда нет документа администратора Windows; запись дает порядок

Отключите телеметрию для вашей организации

Claude Code отправляет Anthropic операционную телеметрию по умолчанию на сеансы, которые используют API Anthropic, прямо, через шлюз LLM или через пользовательский ANTHROPIC_BASE_URL; Поведения по умолчанию по поставщику API говорит, какие поставщики отправляют ее. Чтобы отключить ее для каждого разработчика без опоры на каждого человека, доставьте DISABLE_TELEMETRY через блок env ваших управляемых параметров. Этот пример устанавливает DISABLE_TELEMETRY для всех, кого достигает политика:

{
  "env": {
    "DISABLE_TELEMETRY": "1"
  }
}

Claude Code применяет значение 1 без показа пользователю диалога одобрения.

Если вы отключите телеметрию, Claude Code прекратит отправку данных об использовании, которые питают панель аналитики вашей организации для разработчиков, которых достигает политика. Переменная также отключает получение флагов функций для этих разработчиков. Для Remote Control см. требования Remote Control.

Где и когда политика применяется говорит, какой механизм доставки достигает каждую поверхность, и Доступность платформы говорит, какие сеансы пропускают выборку управляемых параметров сервера.

Если ваша организация использует управляемые клиентом ключи шифрования и маршрутизирует Claude Code через шлюз, Настройте прокси и шлюзы говорит, почему этим сеансам нужна эта переменная.

Смотрите также