Настройка разрешений

Настройка режимов разрешений Claude Code для управления тем, какие операции требуют подтверждения человека

Настройка разрешений

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

Четыре режима разрешений

Режим Описание Сценарий применения
default Запрашивает разрешение при первом использовании инструмента Повседневная разработка, баланс безопасности и эффективности
acceptEdits Автоматически одобряет редактирование файлов, другие операции по-прежнему требуют подтверждения Задачи, требующие частого изменения файлов
plan Только анализ без выполнения (Plan Mode) Изучение и проверка кода без внесения изменений Claude
bypassPermissions Пропускает все запросы на разрешение Автоматизация CI/CD, доверенные безопасные среды

Переключение режима разрешений

  • Нажмите Shift+Tab для циклического переключения режимов
  • Нажмите Shift+Tab дважды для входа в Plan Mode (Escape для выхода)
  • Выберите режим непосредственно в диалоговом окне

Настройка режима разрешений по умолчанию

Настройте в .claude/settings.json:

{
  "permissions": {
    "defaultMode": "acceptEdits"
  }
}

Правила 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

{
  "permissions": {
    "defaultMode": "bypassPermissions"
  }
}

⚠️ Внимание: режим bypassPermissions пропускает все проверки безопасности. Используйте его только в полностью доверенных автоматизированных средах.

🚀
Начните с QCode — ИИ-ассистент для программистов
Официальный ретранслятор Claude Code, быстро и надёжно
Посмотреть тарифы → Создать аккаунт