Claude Code --dangerously-skip-permissions безопасно

Что пропускает флаг --dangerously-skip-permissions в Claude Code, что его останавливает, какие риски и как убрать запросы безопаснее: режимы, правила, песочница.

Solviera Teknoloji 10 мин чтения

--dangerously-skip-permissions запускает Claude Code в режиме bypassPermissions, и вызовы инструментов выполняются без вопроса к вам. Это самый быстрый способ избавиться от запросов и самый рискованный. Документация Anthropic прямо говорит использовать его только в изолированных средах, например в контейнерах или виртуальных машинах. Обычно он не нужен: несколько allow-правил, режим auto или песочница убирают большинство запросов и сохраняют защиту.

В статье разобрано, что флаг пропускает, что не пропускает, где он подводит и какие есть более безопасные варианты. В конце показано, как AgentVera решает ту же задачу, когда агентов запущено несколько.

Что на самом деле делает флаг

В Claude Code есть режимы разрешений. Флаг — сокращение для одного из них:

claude --dangerously-skip-permissions
# same as
claude --permission-mode bypassPermissions

В этом режиме Claude редактирует файлы, запускает команды оболочки и вызывает инструменты без остановок. Согласно документации по режимам разрешений, кое-что его всё же останавливает:

  • Deny-правила. Deny-правило в ваших настройках блокирует инструмент в любом режиме, включая bypass.
  • Явные ask-правила. Если вы написали правило ask, запрос по-прежнему появится.
  • Вопросы Claude к вам. Claude всё так же может остановиться и задать вопрос.
  • Удаление критичных путей. rm или rmdir корня файловой системы, папок верхнего уровня, домашней папки или рабочей папки и её родителей по-прежнему вызывает запрос.

В режиме bypass allow-правила ни на что не влияют, потому что и так разрешено всё. Запись в защищённые пути вроде .git и .claude тоже разрешена.

Ещё несколько деталей, важных на практике:

  • При первом интерактивном использовании Claude Code показывает диалог с предупреждением. Если принять его, в ~/.claude/settings.json запишется skipDangerousModePermissionPrompt: true.
  • В неинтерактивном запуске (claude -p) диалога нет.
  • В Linux и macOS флаг не запускается от root или через sudo. Внутри распознанной песочницы проверка пропускается.
  • Переключиться в bypass из сессии, начатой без него, нельзя. --allow-dangerously-skip-permissions добавляет режим в цикл Shift+Tab, не включая его.
  • Администраторы могут отключить режим для всех через permissions.disableBypassPermissionsMode: "disable" в managed settings.

Риски

Документация говорит прямо: режим bypass «не защищает от prompt injection и непреднамеренных действий». Вот что это значит в повседневной работе.

Prompt injection

Claude читает файлы, веб-страницы, текст задач и вывод инструментов. Если в них есть инструкции, модель может им последовать. С включёнными запросами вы замечаете странный curl на неизвестный хост до его запуска. В режиме bypass вы узнаёте об этом потом.

Разрушительные команды, которых нет в критичном списке

Проверка критичных путей охватывает rm вашей домашней папки или корня проекта. Она не охватывает git reset --hard, git clean -fd, удалённую таблицу базы данных, force push или миграцию на не том окружении. Всё это выполняется без запроса.

Секреты и всё остальное на вашей машине

На вашем ноутбуке Claude работает от вашего имени. Он может читать ваши SSH-ключи, облачные учётные данные и файлы .env, а также ходить в сеть. Ошибке или внедрённой инструкции доступен весь ваш аккаунт.

Контрольные точки покрывают не всё

Claude Code создаёт контрольную точку перед каждым промптом, а /rewind (или двойное нажатие Esc) восстанавливает код, разговор или и то и другое. Но документация по контрольным точкам говорит, что изменения, сделанные командами Bash вроде rm, mv и cp, не отслеживаются, как и изменения вне сессии. Rewind не заменяет git.

Более безопасные способы убрать запросы разрешений

Чаще всего за флаг хватаются, потому что запросы замедляют работу. Эти варианты решают проблему запросов и сохраняют защиту.

1. Выберите подходящий режим разрешений

РежимВыполняется без вопросовПодходит для
default (Manual)Только чтениеНезнакомый код, чувствительные репозитории
acceptEditsЧтение, правки файлов, обычные файловые команды вроде mkdir, mv, cpПовседневное программирование, где вы просматриваете diff
planТолько чтение, без правок исходниковИсследование и планирование перед изменением
autoВсё, но классификатор сначала проверяет каждое действиеДлинные задачи, когда вы доверяете направлению
dontAskТолько заранее одобренные инструменты; остальное отклоняетсяCI и скрипты
bypassPermissionsВсё, кроме случаев вышеТолько изолированные контейнеры и ВМ

Shift+Tab переключает режимы в сессии. --permission-mode выбирает режим при запуске, а permissions.defaultMode в настройках задаёт режим по умолчанию.

Режим auto — золотая середина, которую хотят большинство. Модель-классификатор проверяет каждое действие до выполнения. Она блокирует действия, выходящие за рамки вашего запроса, направленные на неизвестную ей инфраструктуру или похожие на вызванные враждебным содержимым. Если блокировок три подряд или 20 в сумме, auto приостанавливается и возвращаются обычные запросы. Есть два ограничения: нужна поддерживаемая модель, а документация говорит, что режим «сокращает запросы разрешений, но не гарантирует безопасность». Свежие версии Claude Code по умолчанию запускают интерактивные сессии в режиме auto. Проверьте /permissions, чтобы узнать, в каком вы режиме.

2. Напишите allow- и deny-правила

Правила разрешений лежат в settings.json и применяются самим Claude Code, а не моделью. Они проверяются по порядку: deny, затем ask, затем allow. Побеждает первое совпадение, так что allow-правило никогда не отменит deny.

{
  "permissions": {
    "allow": ["Bash(npm run test *)", "Bash(npm run lint)", "Bash(git diff *)"],
    "ask": ["Bash(git commit *)"],
    "deny": ["Bash(git push *)", "Read(./.env)"]
  }
}

Через /permissions можно смотреть и редактировать правила в сессии. Разрешите команды, которые вы запускаете по пятьдесят раз в день: тесты, lint и git только для чтения. Запретите те, которые агент не должен выполнять никогда. CLAUDE.md — рекомендации для модели. Он не меняет разрешения.

Для скриптов dontAsk с коротким списком allow строже, чем bypass:

claude -p "run the test suite and fix failures" \
  --permission-mode dontAsk --allowedTools "Bash(npm test)" "Read" "Edit"

3. Включите песочницу Bash

Документация по песочнице описывает песочницу на уровне ОС, которая ограничивает, к каким файлам и сетевым доменам могут обращаться команды оболочки. Включите её через /sandbox или sandbox.enabled: true. Она работает в macOS, Linux и WSL2. Применяется только к командам оболочки. Файловые инструменты, серверы MCP и hooks работают вне её.

4. Если пропускаете разрешения, сначала изолируйтесь

Иногда bypass — правильное решение, например длинный запуск без присмотра на одноразовом коде. Тогда следуйте настройке из документации: контейнер, ВМ или dev-контейнер, пользователь без root, никаких смонтированных секретов и, в идеале, никакого доступа в интернет. Типичная форма запуска без присмотра:

claude -p "<task>" --dangerously-skip-permissions

Запускайте её внутри контейнера, а не на своём ноутбуке.

5. Работайте в worktree и часто коммитьте

Git worktree даёт агенту собственную папку и ветку. Если он испортит ветку, вы удаляете worktree, а main ничего не заметит. Частые коммиты дают точки восстановления, которые покрывают и то, что изменил Bash, чего контрольные точки не умеют.

Краткая таблица выбора

СитуацияЧто использовать
Вы постоянно одобряете одни и те же команды тестов и lintAllow-правила
Хотите меньше запросов, но с проверкой безопасностиРежим auto
Задача CI или скрипт с известным набором инструментовdontAsk плюс --allowedTools
Команды оболочки не должны трогать сеть и вашу домашнюю папкуПесочница Bash
Долгий запуск без присмотра на одноразовом кодеBypass внутри контейнера, не от root
На машине есть продакшен-учётные данныеНикогда не использовать bypass

Как с этим работает AgentVera

Когда вы запускаете несколько агентов, запросов становится больше. Пять агентов — это пять мест, где что-то может ждать вашего «да». AgentVera даёт те же варианты для каждого агента и ещё способы отвечать на запросы откуда угодно.

Свой уровень разрешений для каждого агента

В диалоге агента и в выборе модели есть поле Permissions с тремя вариантами:

  • Ask: CLI спрашивает как обычно.
  • Auto: собственный режим auto у CLI. Правки и безопасные команды проходят, рискованные по-прежнему останавливаются. Для Claude Code агент запускается с --permission-mode auto.
  • Full access: никогда не спрашивает. Для Claude Code это --dangerously-skip-permissions. Подсказка в приложении говорит об этом прямо: «Best in a worktree or container».

В заголовке агента виден значок вроде «Permissions: Auto». У Codex и других CLI есть свои эквиваленты. Смена уровня перезапускает агента, а разговор продолжается. Если политика команды ограничивает одобрения, агенты продолжают спрашивать.

Auto-approve safe requests (Pro и Team)

Автоодобрение — средний путь для агентов Claude Code. Когда включено Auto-approve safe requests, AgentVera отвечает только на те запросы, которые Claude и так задал бы, и только на безопасные:

  • инструменты чтения, такие как Read, Glob, Grep и LS,
  • команды оболочки и git только для чтения,
  • команды тестов, lint, проверки типов и сборки для npm, pnpm, yarn, bun, pytest, cargo, go и других.

Команды с >, $() или обратными кавычками никогда не одобряются автоматически. Ваши собственные allow- и deny-правила Claude по-прежнему действуют. Also approve file edits inside the project по умолчанию выключено. Если включить, оно охватывает правки внутри проекта или worktree и никогда не затрагивает .git и .env. Список Never auto-approve начинается с git push, npm publish, rm, git reset --hard и git clean, и вы можете добавить свои пункты. Recent auto-approvals показывает, что прошло в текущей сессии.

Переключатель включён по умолчанию, но действует только на Pro и Team. На бесплатном тарифе запросы по-прежнему приходят к вам.

Отвечайте на запросы с компьютера, телефона или из Telegram

Оставшиеся запросы приходят к вам, где бы вы ни были. На компьютере в строке состояния есть очередь одобрений, ⇧⌘A переходит к агенту, который ждёт дольше всех, а значок в Dock показывает счётчик. Если вы оставите одобрение без ответа, через пять минут придёт напоминание. См. уведомления и одобрения.

Вдали от компьютера:

Поскольку ответ на запрос занимает секунды, причин тянуться к Full access становится меньше.

Агенты в Docker для настоящей изоляции

Для запусков, где Full access всё же нужен, запустите агента с Run in a Docker container. Это работает для локальных агентов Claude Code и Codex и доступно на всех тарифах. См. агенты в Docker.

  • Контейнер видит только папку проекта, а не ваши SSH-ключи и остальной компьютер.
  • Когда агент останавливается, контейнер удаляется. Остаются только изменения в папке проекта.
  • Можно задать лимиты CPU и памяти.
  • Hooks и MCP продолжают работать.

Нужен Docker Desktop, Colima или OrbStack. Это та самая изолированная среда, о которой говорит документация Claude Code, без необходимости самим писать Dockerfile.

Контрольные точки для каждого хода

Контрольные точки AgentVera снимают снимок рабочей папки в скрытую git-ссылку в начале каждого хода и хранят последние 60 ходов на агента. Поскольку снимается сама папка, они ловят и файлы, изменённые командой оболочки. Вы видите, какие файлы затронул ход, можете отменить ход и отменить отмену. Ваши ветки, индекс и stash остаются нетронутыми.

Чек-лист перед пропуском разрешений

  • Не уберут ли запросы allow-правила или режим auto?
  • Агент в контейнере или ВМ, а не на вашей основной машине?
  • Он запущен от пользователя без root?
  • Секреты, SSH-ключи и продакшен-учётные данные недоступны?
  • Доступ в сеть ограничен или выключен?
  • Работа идёт в отдельной ветке или worktree, и есть свежий коммит, к которому можно вернуться?
  • Deny-правила покрывают git push и всё остальное, чего вы никогда не хотите?

Итоги

--dangerously-skip-permissions — настоящий инструмент с узким применением: одноразовые изолированные среды. Для повседневной работы allow- и deny-правила, режим auto и песочница убирают большинство запросов и оставляют контроль у вас. Если вы запускаете много агентов, дайте каждому нужный ему уровень. Пусть безопасные запросы проходят сами, на остальные отвечайте с телефона, а агентов, которым нужен Full access, помещайте в контейнер.

Читайте также:

Чтобы попробовать AgentVera, начните с главной страницы.

Вопросы

Что делает --dangerously-skip-permissions в Claude Code?

Запускает сессию в режиме bypassPermissions, как и --permission-mode bypassPermissions. Вызовы инструментов выполняются без запроса, кроме явных ask-правил, deny-правил, вопросов Claude к вам и удаления критичных путей, например вашей домашней папки.

Безопасно ли использовать --dangerously-skip-permissions?

Только в изолированной среде. Документация Anthropic советует контейнеры, виртуальные машины или dev-контейнеры без доступа в интернет и отмечает, что флаг не защищает от prompt injection и непреднамеренных действий.

Почему Claude Code отказывается пропускать разрешения от root?

В Linux и macOS флаг по соображениям безопасности не запускается с правами root или через sudo. Внутри распознанной песочницы эта проверка пропускается. Запускайте Claude Code от обычного пользователя или от пользователя без root внутри контейнера.

Какая есть более безопасная альтернатива пропуску разрешений?

Allow-правила в settings.json для команд, которым вы доверяете, deny-правила для тех, что вам не нужны никогда, режим auto с классификатором безопасности и песочница Bash. Вместе они убирают большинство запросов, не лишая вас контроля.

Как AgentVera работает с разрешениями Claude Code?

У каждого агента есть настройка Permissions: Ask, Auto или Full access. В тарифах Pro и Team Auto-approve safe requests сам отвечает на запросы только для чтения и запуска тестов. Агенты также могут работать в контейнере Docker, а каждый ход получает контрольную точку, которую можно отменить.

Соберите своих агентов за одним столом.

Скачайте AgentVera бесплатно; ваши установленные CLI уже готовы к работе.

Другие статьи