Настройка разрешений
Настройка режимов разрешений Claude Code для управления тем, какие операции требуют подтверждения человека
Нужен API-ключ? Зарегистрироваться →Эндпоинты и Base URL →
Содержание
Claude Code использует систему разрешений для контроля над тем, какие операции требуют подтверждения пользователя. Правильная настройка разрешений обеспечивает безопасность и повышает эффективность разработки.
Режимы разрешений¶
| Режим | Описание | Сценарий применения |
|---|---|---|
default |
Запрашивает разрешение при первом использовании инструмента (режим manual) | Повседневная разработка, баланс безопасности и эффективности |
acceptEdits |
Автоматически одобряет редактирование файлов, другие операции по-прежнему требуют подтверждения | Задачи, требующие частого изменения файлов |
plan |
Только анализ без выполнения (Plan Mode); когда доступен режим auto, shell-команды во время планирования проверяются классификатором | Изучение и проверка кода без внесения изменений Claude |
auto |
Классификатор проверяет действия, которые требуют одобрения; явно выходящие за рамки блокируются, остальные выполняются без запроса | Повседневная разработка с меньшим числом прерываний (режим по умолчанию для интерактивных сессий с Claude Code 2.1.283) |
dontAsk |
Выполняет только действия, не требующие одобрения (например, чтение файлов в рабочем каталоге и команды только для чтения), и действия, предварительно одобренные правилами allow; остальное отклоняется без запроса | CI/CD и другие запуски без участия человека |
bypassPermissions |
Пропускает все запросы на разрешение | Полностью изолированные доверенные среды |
Режим auto и QCode: auto работает через QCode. Запросы к классификатору отправляет сам Claude Code (модель по умолчанию
claude-sonnet-5), и они учитываются в вашем расходе. Если вы видите английское уведомление «your requests go through … which isn't compatible», интерактивная сессия задерживает первое действие, требующее проверки, пока вы не нажмёте Enter; установитеCLAUDE_CODE_AUTO_MODE_SERVER=0, чтобы оно не появлялось. См. Доступность функций.
Переключение режима разрешений¶
- Нажмите
Shift+Tabдля циклического переключения режимов; начиная с auto порядок такой: auto → default → acceptEdits → plan - Для входа в Plan Mode нажмите
Shift+Tabдважды из режима manual (default) или трижды из auto - Выберите режим при запуске:
claude --permission-mode acceptEdits - Выберите режим непосредственно в диалоговом окне
Настройка режима разрешений по умолчанию¶
Настройте в .claude/settings.json (проект) или ~/.claude/settings.json (пользователь):
{
"permissions": {
"defaultMode": "acceptEdits"
}
}
Примечание:
"defaultMode": "auto"действует только в~/.claude/settings.jsonуровня пользователя или в управляемых настройках вашей организации; в.claude/settings.jsonили.claude/settings.local.jsonпроекта он игнорируется, и сессия использует встроенное значение по умолчанию (а не настройку уровня пользователя).bypassPermissionsв настройках проекта тоже не действует. Флаг--permission-modeимеет приоритет над файлами настроек.
Правила Allow: предварительное одобрение команд¶
Предварительно одобрите определённые команды, чтобы не запрашивать разрешение каждый раз:
{
"permissions": {
"allow": [
"Bash(npm run lint)",
"Bash(npm run test:*)",
"Bash(git status)",
"Bash(git add:*)",
"Bash(git diff:*)"
]
}
}
Синтаксис правил Allow:
Bash(команда)— точное совпадение командыBash(префикс_команды:*)— совпадение с командами, начинающимися с указанного префиксаRead(путь_к_файлу)— разрешить чтение определённого файлаWrite(путь_к_файлу)— разрешить запись в определённый файл
Правила Deny: защита конфиденциальных файлов¶
Запрет на доступ или изменение конфиденциальных файлов для Claude:
{
"permissions": {
"deny": [
"Read(./.env)",
"Read(./.env.*)",
"Read(./secrets/**)",
"Write(./.git/**)",
"Bash(rm -rf:*)"
]
}
}
Синтаксис правил Deny:
- Шаблоны путей поддерживают подстановочные знаки
*(один уровень) и**(несколько уровней) - Правила Deny имеют более высокий приоритет, чем правила Allow
Совместное использование Allow и Deny¶
{
"permissions": {
"defaultMode": "acceptEdits",
"allow": [
"Bash(npm run *)",
"Bash(git status)",
"Bash(git diff)"
],
"deny": [
"Bash(git push:*)",
"Bash(rm -rf:*)",
"Read(./.env*)"
]
}
}
Иерархия файлов конфигурации¶
Claude Code объединяет настройки разрешений в следующем порядке приоритета:
| Приоритет | Расположение | Область применения |
|---|---|---|
| Наивысший | .claude/settings.local.json (не коммитить в Git) |
Личные локальные переопределения |
| Средний | .claude/settings.json (коммитить в Git) |
Общие настройки команды |
| Наименьший | ~/.claude/settings.json |
Глобальные настройки пользователя |
Рекомендации для командной работы:
- Размещайте общие для команды правила allow/deny в
.claude/settings.jsonи коммитьте в Git - Индивидуальные специальные потребности размещайте в
.claude/settings.local.json, добавив его в.gitignore
Лучшие практики¶
1. Защита конфиденциальных учётных данных
{
"permissions": {
"deny": [
"Read(./.env)",
"Read(./.env.*)",
"Read(./credentials/**)",
"Read(./.ssh/**)"
]
}
}
2. Настройка для фронтенд-проекта
{
"permissions": {
"defaultMode": "acceptEdits",
"allow": [
"Bash(npm run dev)",
"Bash(npm run build)",
"Bash(npm run test:*)",
"Bash(npm run lint:*)"
]
}
}
3. Автоматизация CI/CD
С Claude Code 2.1.285 claude -p и Agent SDK запускаются в auto, если режим разрешений не задан, в сессиях,
которые не получают флаги возможностей. Подключение к QCode с ANTHROPIC_AUTH_TOKEN не даёт Claude Code учётных данных
для их получения (то же самое для контейнеров CI, которые каждый запуск стартуют заново), поэтому в CI это и есть
значение по умолчанию. В CI задавайте режим явно. Рекомендуем dontAsk с allow-списком: выполняются только действия,
не требующие одобрения, и перечисленные инструменты, остальное отклоняется.
claude -p "Run the tests and fix failures" \
--permission-mode dontAsk \
--allowedTools "Read,Edit,Bash(npm test)"
Или в настройках проекта:
{
"permissions": {
"defaultMode": "dontAsk",
"allow": ["Read", "Edit", "Bash(npm test)"]
}
}
⚠️ Внимание: режим
bypassPermissionsпропускает все проверки безопасности. Используйте его только в полностью изолированных доверенных средах (например, в одноразовом контейнере).
Начните с QCode
Один API-ключ для Claude Code, Codex и других инструментов; тарификация по токенам, цены каждой модели — на qcode.cc/models