Вики · Проверка и доверие
Круг дозволенного
Разрешения — это два независимых слоя. Режим решает, спрашивать ли перед действием. Песочница решает, куда действие может дотянуться, когда уже запущено. Их путают, и из-за этого выбирают самый разрешающий режим там, где нужна была изоляция.
Шесть режимов
| Режим | Что идёт без вопроса | Для чего |
|---|---|---|
default (в интерфейсе — Manual) | только чтение | чувствительная работа, незнакомый код |
acceptEdits | чтение, правки файлов и обычные файловые команды (mkdir, touch, mv, cp, rm, rmdir, sed) | итерации по коду, который вы всё равно смотрите |
plan | чтение, плюс команды, одобренные классификатором, если доступен авторежим | разведка до изменений |
auto | почти всё, с фоновой проверкой классификатором | длинные задачи, усталость от подтверждений |
dontAsk | только заранее разрешённые инструменты | заблокированный CI и скрипты |
bypassPermissions | всё | только контейнеры и виртуальные машины |
Переключение в CLI — Shift+Tab. Цикл идёт default → acceptEdits → plan и обратно; auto появляется в цикле, если ваш аккаунт ему соответствует, а bypassPermissions — только если сессия стартовала с соответствующим флагом. dontAsk в цикле не появляется никогда, он ставится флагом --permission-mode dontAsk.
Стартовый режим берётся из первого подходящего источника: флаг --permission-mode, затем permissions.defaultMode из файла настроек, затем встроенный дефолт. Тонкость, которая ловит многих: значение "auto" в .claude/settings.json и .claude/settings.local.json не срабатывает — его место в ~/.claude/settings.json.
Правила поверх режима
Режим задаёт базовую линию, правила — точечные исключения. Порядок вычисления: deny → ask → allow, побеждает первое совпадение. Запрещающее правило действует во всех режимах, включая bypassPermissions; разрешающее в bypassPermissions смысла не имеет.
Есть действия, которые не одобряет автоматически ни один режим: инструменты, попавшие под явное правило ask; инструменты, требующие участия человека; удаление по критическому пути (rm -rf /, rm -rf ~). Отдельно защищены пути, из которых Claude Code читает свою конфигурацию: файлы настроек, каталоги .claude/skills, .claude/agents, .claude/commands, .claude/hooks, .mcp.json. Логика прозрачна — команда, способная отредактировать эти файлы, способна выдать себе права.
Песочница
Песочница — не режим, а изоляция уровня операционной системы для команд оболочки. На macOS это Seatbelt, на Linux и WSL 2 — bubblewrap плюс socat. На нативном Windows её нет: там нужен WSL 2 (Посадка).
Панель /sandbox открывает три вкладки: Mode (авторазрешение или обычные разрешения), Overrides (можно ли команде откатиться к запуску вне песочницы — настройка allowUnsandboxedCommands) и Config (итоговые пути и домены).
Границы по умолчанию:
- запись — рабочий каталог, каталоги, добавленные через
--add-dir, и временный каталог сессии; - чтение — весь компьютер, кроме явно запрещённого. Да, это включает
~/.aws/credentialsи~/.ssh/; закрывается настройкойsandbox.credentialsилиdenyRead; - сеть — предварительно не разрешено ни одного домена. Первый выход на новый домен спрашивает разрешение;
allowedDomainsразрешает заранее,strictAllowlist: trueменяет вопрос на отказ.
Включается на всю машину через sandbox.enabled: true в ~/.claude/settings.json; выбор в панели сохраняется в локальные настройки проекта. Для управляемых развёртываний есть sandbox.failIfUnavailable: true — без него отсутствие зависимостей приводит к предупреждению и запуску без песочницы.
Ограничение, о котором нужно знать заранее: встроенный прокси решает по имени хоста и по умолчанию не расшифровывает TLS. Широкое разрешение вроде github.com открывает дорогу для утечки данных.
Как слои складываются
Авторазрешающая песочница и авторежим работают независимо и комбинируются — с одним исключением. В режиме плана авторазрешение не расширяет одобрения: команды всё равно проходят через классификатор или через вопрос (Чертёж).
Ещё один слой сверху — хуки. PreToolUse срабатывает до проверки режима, в любом режиме, включая dontAsk и bypassPermissions. Хук, вернувший permissionDecision: "deny", блокирует инструмент даже там, где пользователь отключил все вопросы. Обратное неверно: "allow" от хука не отменяет запрещающих правил. Хуки умеют ужесточать, но не ослаблять — Стражи.
Как выбирать
Соотносите глубину проверки с ценой ошибки, а не с уровнем раздражения от подтверждений. Практический ориентир: сначала попробуйте Manual плюс песочница в авторазрешающем режиме — вопросов станет мало, а границы останутся настоящими. bypassPermissions уместен только там, где сама среда одноразовая: контейнер, виртуальная машина, изолированный раннер. В организации всё это фиксируется управляемыми настройками — Развёртывание на гильдию.
Сверено по
Прокачаться: юниты