SpyBara
Go Premium

managed-settings.md 2026-09-28 22:59 UTC to 2026-09-29 03:02 UTC

This page contains 121 additions and 86 deletions.

2026
Sat 12 03:02 Mon 14 22:58 Fri 18 23:58 Tue 22 23:59 Thu 24 22:57 Fri 25 23:58 Mon 28 22:59 Tue 29 04:01

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

Развертывайте управляемые параметры на машину каждого разработчика: механизмы доставки для каждой ОС, как 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 объединяет управляемые источники охватывает согласие, которое применяется к обоим.

  • Сеансы 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 никогда не применяет доступный для записи пользователем реестр HKCU под документом администратора, который присутствует. Документ присутствует, когда он устанавливает любой ключ политики на значение, отличное от null, даже значение, которое Claude Code не может прочитать. Значение HKLM, файл управляемых параметров или каталог managed-settings.d, которые существуют, но не могут быть прочитаны, также присутствуют. На WSL /etc/claude-code также доступен для записи пользователем, и запись wslInheritsWindowsSettings указывает, когда документы Windows находятся выше него.

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

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

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

При параметре по умолчанию "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, игнорируется.

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

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

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

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

Эта таблица показывает, как 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 или позже

  • Предоставленный родителем 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 для ограничения выбора.
  • Локальные права администратора: разработчик, который является администратором на машине, может редактировать сам управляемый источник, поэтому инструменты 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/ не могут быть прочитаны и ни один источник администратора не предоставляет политику, сеансы, вошедшие с учетными данными claude.ai или Claude Console, выходят при запуске с сообщением о необходимости связаться с администратором.

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

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

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

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

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

  • null удаляет ключ.
  • Неправильный disableAllHooks, даже логическое значение в кавычках, отбрасывается с предупреждением, потому что применение true также выгрузит hooks, которые развертывают ваши собственные управляемые параметры.
  • Для каждого другого логического ключа, который охватывает правило, строка "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 загружаются в соответствии с Как сервер оценивается. Неправильная отдельная запись удаляется и применяется допустимое подмножество.
allowedHttpHookUrls Claude Code применяет пустой управляемый список разрешений до исправления значения, поэтому HTTP hook работает только если другой файл параметров перечисляет его 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 справочника параметров говорит, является ли он только управляемым; оставшиеся ключи только управляемые там включают URL входа шлюза, версию, браузер, мобильный симулятор, хост SSH, локальный сеанс Desktop, путь двоичного файла песочницы, ценообразование модели, ограничение модели и элементы управления CLAUDE.md.

Параметр Описание
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 серверы, которые сервер доставил через --mcp-config, кроме записей type: "sdk" в процессе, и запускает сеанс. Требует 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 через шлюз, Настройте прокси и шлюзы говорит, почему этим сеансам нужна эта переменная.

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