Настройка разрешений
Настройка режимов разрешений 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пропускает все проверки безопасности. Используйте его только в полностью доверенных автоматизированных средах.