Мастер Claude · Блок 12. Качество и безопасность

Урок 87 из 93 · ~11 мин чтения

Песочница и ограниченный режим

Урок пока закрыт

Курс проходится последовательно.

К текущему уроку

Почему это важно именно вам

Разрешения отвечают на вопрос «спрашивать ли перед действием». Песочница отвечает на другой: «а может ли это действие вообще что-то сломать».

Разница принципиальна. Разрешение можно выдать по ошибке — усталость, спешка, невнимательность. Границу, установленную операционной системой, выдать по ошибке нельзя: команда просто не сможет выйти за пределы разрешённых папок и адресов, что бы ни решила модель.

Для человека, который даёт системе всё больше автономии, это разница между «я доверяю» и «я могу себе позволить доверять».

Что это такое

Песочница Bash — механизм, при котором команды выполняются в изоляции: вы задаёте, какие файлы и сетевые адреса им доступны, а операционная система следит за соблюдением границы для команды и всех порождённых ею процессов.

Практический эффект: большинство команд можно выполнять без подтверждений, потому что вред ограничен. Но только в одном из двух режимов — их выбирают первым же шагом в панели /sandbox. Auto-allow: команды, которые удалось поместить в песочницу, выполняются без вопросов. Regular permissions: подтверждения остаются как были, песочница лишь ограничивает область. Включили песочницу и ничего не изменилось — вы во втором режиме.

Работает на macOS, Linux и WSL2. На macOS ничего ставить не нужно — используется встроенный механизм системы. На Linux и WSL2 нужны два пакета; панель /sandbox сама покажет, чего не хватает. Нативная Windows не поддерживается — там Claude Code запускают внутри WSL2.

Ограниченный режим (--restricted) — другой инструмент с похожей целью. Он убирает встроенные инструменты, выполняющие команды и код, а также веб-загрузку; ограничивает файловые операции рабочими каталогами; загружает только управляемые настройки; отказывает в bypassPermissions. Нужен, когда claude запускается на общей машине автоматической системой и не должен ни выполнять команды, ни читать чужие настройки. Требуется версия 2.1.248 или новее.

Безопасный режим (--safe-mode) решает третью задачу — диагностику. Он запускает Claude Code без ваших надстроек: без CLAUDE.md, скиллов, плагинов, хуков, MCP-серверов, своих команд и агентов. Вход, выбор модели, встроенные инструменты и разрешения при этом работают как обычно, корпоративная политика тоже остаётся. Поэтому он отвечает на вопрос «виновата ли надстройка», но не проверяет сами настройки: если подозрение на них, запускайте сессию с пустым конфиг-каталогом (CLAUDE_CONFIG_DIR).

Как работает на практике

Включить и посмотреть

/sandbox

Панель показывает режим, состояние аварийного выхода, итоговые настройки и чего не хватает для работы. Сами списки — какие каталоги доступны на запись (sandbox.filesystem.allowWrite) и к каким адресам разрешены обращения (sandbox.network.allowedDomains) — задаются в файле настроек; в панели их видно на вкладке Config.

Разумная конфигурация для рабочей машины

Принцип: разрешать только то, что нужно текущей работе.

Файлы. Запись — только в рабочую папку проекта и временные каталоги. Всё остальное, включая домашнюю папку целиком, — недоступно.

Сеть. Только адреса, действительно нужные: ваши сервисы, документация, конкретные API. Открытый доступ ко всей сети в песочнице — это песочница без стенок.

Когда песочница мешает

Честно: она мешает, когда работа выходит за границы. Но по умолчанию команда не просто падает: увидев нарушение, Claude может повторить её вне песочницы, и тогда решение принимает обычный механизм разрешений — а в авторежиме это значит «решает классификатор», без вопроса вам.

Нужна жёсткая граница — выключите этот аварийный выход: вкладка Overrides в /sandbox → «Strict sandbox mode» (настройка sandbox.allowUnsandboxedCommands: false). И держите в голове, что сама документация предупреждает: песочница снижает риск, но не является полной границей изоляции.

Правильная реакция на блокировку — расширить границу осознанно (добавить конкретную папку), а не выключить песочницу целиком.

Диагностика через безопасный режим

claude --safe-mode

Классический сценарий: после установки очередного плагина всё стало странно себя вести. Запуск в безопасном режиме отвечает на вопрос «дело в моих настройках или нет» за минуту.

Если в безопасном режиме всё хорошо — виновата одна из ваших настроек; отключайте по одной. Если плохо — проблема не в них.

Песочница — не замена разрешениям

Она ограничивает возможности среды, но не решает, стоит ли выполнять действие. Отправка данных на разрешённый адрес или удаление файла внутри разрешённой папки — законные операции с точки зрения песочницы. Два слоя нужны вместе: разрешения решают «что», песочница ограничивает «где».

Частые ошибки

Считать, что песочница делает автономность безопасной. Она ограничивает область поражения, а не намерения. Необратимые действия внутри разрешённой области по-прежнему возможны.

Разрешать всю домашнюю папку. Это самое частое «упрощение», которое обнуляет смысл: там лежат ваши документы, ключи и настройки.

Открывать всю сеть. Без ограничения адресов исчезает защита от утечки данных наружу.

Выключать песочницу при первом неудобстве. Расширяйте границу точечно.

Забывать про --safe-mode при поломках. Люди часами ищут проблему в системе, когда виноват один хук.

Считать, что песочница включена, раз вы её настроили. Если она не может стартовать (не хватает пакетов, неподдерживаемая платформа), по умолчанию Claude Code просто показывает предупреждение и выполняет команды без неё. Чтобы это стало жёсткой ошибкой, поставьте sandbox.failIfUnavailable: true.

Когда нужно / когда нет

Песочница нужна:

Можно без неё:

--restricted нужен: когда claude запускает автоматическая система на общей машине.

Связь с другими уроками

День 86 — разрешения. Первый слой; песочница — второй, независимый.

День 75 — изоляция агентов. Изоляция по файлам проекта; песочница — по возможностям системы.

День 89 — диагностика. --safe-mode и /doctor работают в паре.

Задание на сегодня

  1. Выполните /sandbox и посмотрите состояние: работает ли песочница, всё ли установлено.
  2. Настройте доступ на запись только к рабочим каталогам, а не ко всей домашней папке.
  3. Ограничьте сетевые обращения списком адресов, которые действительно нужны.
  4. Запустите длинную автономную задачу в песочнице и убедитесь, что она проходит.
  5. Запустите claude --safe-mode и посмотрите, как выглядит система без ваших настроек, — пригодится при следующей поломке.

Критерий «выполнено»: ваши автономные задачи выполняются в песочнице с ограниченным доступом к файлам и сети.

Резюме

Следующий урок откроется после отметки.