Арина Михална
Скиллы и агенты16 минобновлено 20 августа 2026 г.

Как защитить файлы от удаления ИИ агентом Claude Code в 2026

Как защитить файлы от удаления ИИ агентом Claude Code: настройка permissions.deny, CLAUDE.md-запреты, git-страховка и план восстановления за 3 шага.

Схема защиты файлов от удаления ИИ агентом Claude Code: конфиг permissions.deny и CLAUDE.md
В этой статье
  1. Почему ИИ агент вообще удаляет файлы
  2. Первый уровень: permissions.deny — конкретный синтаксис
  3. Почему ИИ агент вообще удаляет файлы
  4. Первый уровень: permissions.deny — конкретный синтаксис
  5. Почему ИИ агент вообще удаляет файлы
  6. Первый уровень: permissions.deny — конкретный синтаксис
  7. Второй уровень: CLAUDE.md — инструкции, которые агент читает первой
  8. Третий уровень: git-страховка
  9. Агент уже удалил файлы: план действий за 3 шага
  10. Читайте также
  11. Как понять, что агент вышел за пределы задачи

Я, Арина Михална, расскажу, как защитить файлы от удаления ИИ агентом Claude Code: для этого можно использовать три способа сразу — прописать явные запреты в permissions.deny, добавить инструкции в CLAUDE.md и держать проект под git, тогда даже если агент что-то снесёт, это восстанавливается за минуту.

3 уровнязащиты файлов от агента
permissions.denyвыигрывает у системного промпта
git reflogвосстановит удалённое за 1 минуту

Три уровня защиты файлов от ИИ агента Claude Code: конфиг, CLAUDE.md и git

Почему ИИ агент вообще удаляет файлы

История с Codex от OpenAI, который удалял реальные файлы пользователей без разрешения, — не баг конкретного продукта. Это системная проблема всех агентов с доступом к файловой системе.

Claude Code работает так же: он получает задачу, планирует шаги и выполняет команды в терминале. Если в задаче написано «почисти проект от временных файлов», агент начнёт удалять то, что считает временным. И его представление о «временном» может не совпасть с твоим.

Три сценария, где это ломается чаще всего:

Сценарий Что может пойти не так
«Удали ненужные файлы» без уточнения Агент сносит .env, логи, кеш — всё подряд
Рефакторинг с переименованием директорий Старая папка удаляется до того, как новая проверена
Очистка node_modules или зависимостей Агент захватывает соседние директории по паттерну
Авто-режим без подтверждений Любая из трёх ситуаций выше без шанса остановить

Это не значит, что агент плохой. Он просто делает то, что ему сказали, буквально.

Первый уровень: permissions.deny — конкретный синтаксис

permissions.deny в файле .Claude/settings.json — это ОС-уровень защиты. Если команда попала сюда, агент физически не сможет её выполнить. Никакой системный промпт это не перебьёт: permissions.deny вы— title: ‘Как защитить файлы от удаления ИИ агентом Claude Code в 2026’ description: ‘Как защитить файлы от удаления ИИ агентом Claude Code: настройка permissions.deny, CLAUDE.md-запреты, git-страховка и план восстановления за 3 шага.’ pubDate: 2026-08-19 category: ‘skilly-i-agenty’ tags: [‘Claude code’, ‘безопасность’, ‘агенты’, ‘файлы’, ‘permissions’] cover: ‘/images/blog/ii-agent-udalil-polzovatelyu-fayly-kak-zaschititsya-v-claude/cover.webp’ coverAlt: ‘Схема защиты файлов от удаления ИИ агентом Claude Code: конфиг permissions.deny и CLAUDE.md’ targetQuery: ‘как защитить файлы от удаления ИИ агентом Claude Code’ faq:


Защитить файлы от удаления ИИ агентом Claude Code можно тремя способами сразу: прописать явные запреты в permissions.deny, добавить инструкции в CLAUDE.md и держать проект под git — тогда даже если агент что-то снесёт, это восстанавливается за минуту.

3 уровнязащиты файлов от агента
permissions.denyвыигрывает у системного промпта
git reflogвосстановит удалённое за 1 минуту

Почему ИИ агент вообще удаляет файлы

История с Codex от OpenAI, который удалял реальные файлы пользователей без разрешения, — не баг конкретного продукта. Это системная проблема всех агентов с доступом к файловой системе.

Claude Code работает так же: он получает задачу, планирует шаги и выполняет команды в терминале. Если в задаче написано «почисти проект от временных файлов», агент начнёт удалять то, что считает временным. И его представление о «временном» может не совпасть с твоим.

Три сценария, где это ломается чаще всего:

Сценарий Что может пойти не так
«Удали ненужные файлы» без уточнения Агент сносит .env, логи, кеш — всё подряд
Рефакторинг с переименованием директорий Старая папка удаляется до того, как новая проверена
Очистка зависимостей по паттерну Агент захватывает соседние директории
Авто-режим без подтверждений Любой из сценариев выше без шанса остановить

Это не значит, что агент плохой. Он делает то, что ему сказали, — буквально.

Первый уровень: permissions.deny — конкретный синтаксис

permissions.deny в файле .Claude/settings.json — это слой защиты на уровне самого инструмента. Если команда попала сюда, агент физически не сможет её выполнить. Никакой системный промпт это не перебьёт: permissions.deny все— title: ‘Как защитить файлы от удаления ИИ агентом Claude Code в 2026’ description: ‘Как защитить файлы от удаления ИИ агентом Claude Code: настройка permissions.deny, CLAUDE.md-запреты, git-страховка и план восстановления за 3 шага.’ pubDate: 2026-08-19 category: ‘skilly-i-agenty’ tags: [‘Claude code’, ‘безопасность’, ‘агенты’, ‘файлы’, ‘permissions’] cover: ‘/images/blog/ii-agent-udalil-polzovatelyu-fayly-kak-zaschititsya-v-claude/cover.webp’ coverAlt: ‘Схема защиты файлов от удаления ИИ агентом Claude Code: конфиг permissions.deny и CLAUDE.md’ targetQuery: ‘как защитить файлы от удаления ИИ агентом Claude Code’ faq:


Защитить файлы от удаления ИИ агентом Claude Code можно тремя способами сразу: прописать явные запреты в permissions.deny, добавить инструкции в CLAUDE.md и держать проект под git — тогда даже если агент что-то снесёт, это восстанавливается за минуту.

3 уровнязащиты файлов от агента
permissions.denyвыигрывает у системного промпта
git reflogвосстановит удалённое за минуту

Почему ИИ агент вообще удаляет файлы

История с Codex от OpenAI, который удалял реальные файлы пользователей без разрешения, — не баг конкретного продукта. Это системная проблема всех агентов с доступом к файловой системе.

Claude Code работает так же: он получает задачу, планирует шаги и выполняет команды в терминале. Если в задаче написано «почисти проект от временных файлов», агент начнёт удалять то, что считает временным. И его представление о «временном» может не совпасть с твоим.

Три сценария, где это ломается чаще всего:

Сценарий Что может пойти не так
«Удали ненужные файлы» без уточнения Агент сносит .env, логи, кеш — всё подряд
Рефакторинг с переименованием директорий Старая папка удаляется до того, как новая проверена
Очистка зависимостей по паттерну Агент захватывает соседние директории
Авто-режим без подтверждений Любой из сценариев выше без шанса остановить

Это не значит, что агент плохой. Он делает то, что ему сказали — буквально.

Первый уровень: permissions.deny — конкретный синтаксис

permissions.deny в файле .Claude/settings.json — это слой защиты внутри самого инструмента. Если команда попала сюда, агент не сможет её выполнить. Никакой системный промпт это не перебьёт: permissions.deny всегда выигрывает у промпта.

Вот конфиг, который стоит положить в каждом проекте:

{
  "permissions": {
    "deny": [
      "Bash(rm:*/.env*)",
      "Bash(rm:*/secrets/*)",
      "Bash(rm:*/migrations/*)",
      "Bash(rm:*/.git/*)",
      "Bash(rm -rf:*)",
      "Bash(git reset --hard:*)",
      "Bash(git clean -f:*)"
    ]
  }
}

Разбираю, что здесь происходит:

Паттерн простой: Bash(<команда>:<glob-паттерн>). Glob-паттерн — это маска пути, где * значит «любая директория», а конкретное имя — точное имя файла или папки.

Если агент всё-таки попробует выполнить запрещённую команду, он получит отказ и спросит, что делать дальше. Это, кстати, полезный поведенческий сигнал: если permissions.deny сработал, значит, задача агенту была поставлена шире, чем нужно.

Второй уровень: CLAUDE.md — инструкции, которые агент читает первой

permissions.deny — железный забор. А CLAUDE.md — вежливое правило, которое объясняет агенту, почему забор стоит.

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

# Защищённые файлы и директории

- `.env*` — переменные окружения, секреты. Не удалять, не
перезаписывать.
- `migrations/` — миграции базы данных. Удаление = потеря
истории изменений.
- `secrets/` — ключи API и сертификаты.
- `.git/` — служебные файлы git. Не трогать.
- `backups/`, `exports/` — сгенерированные данные, могут
понадобиться снова.

## Правила удаления

1. Перед удалением любого файла покажи его список и получи
подтверждение.
2. Не используй `rm -rf`. Для очистки директорий — `find
<путь> -type f -delete` с чётким путём.
3. Файлы, закоммиченные в git, помеченные как защищённые,
удалять только с явного разрешения пользователя.
4. Если сомневаешься, нужен ли файл — не удаляй. Лучше
оставить лишнее, чем снести нужное.

Разница между двумя уровнями: CLAUDE.md объясняет «почему», permissions.deny технически не даёт «как». Агент, который читает CLAUDE.md, чаще всего даже не попробует удалить защищённое — зачем, если там прямо написано не трогать? А если попробует — permissions.deny остановит.

Конфликт промптов решается просто: permissions.deny — технический слой, он выигрывает всегда. Подсказал в чате «удали этот файл», CLAUDE.md его защищает, агент откажется — правильно, забор стоит.

Скриншот: Страница документации Claude Code о безопасности и разрешениях (снято 20.08.2026)
Скриншот: Страница документации Claude Code о безопасности и разрешениях (снято 20.08.2026)

Третий уровень: git-страховка

permissions.deny и CLAUDE.md не дают агенту удалить лишнее — но они не покрывают всё. Рефакторинг, где агент из «лучших побуждений» переименовывает директорию и случайно теряет файл, который в нулевой момент существовал — такой сценарий не остановит ни один конфиг. Нужен git.

Базовый сценарий, который спасает в 90% случаев:

git init
git add -A
git commit -m "backup before agent task"

Три команды — и у тебя есть точка восстановления. Дальше за каждую серьёзную задачу агенту давай отдельный коммит: понял, что что-то пошло не так — git checkout -- . и вернулся.

Если агент что-то удалил и даже закоммитил это удаление, спасает git reflog:

git reflog

Команда показывает историю всех действий с HEAD, включая те, что git считал потерянными. Находишь коммит до удаления, проверяешь, что это то, что нужно, и возвращаешься:

git reset --hard <хэш>

Всё, файлы на месте.

Агент уже удалил файлы: план действий за 3 шага

Разберём момент, когда страшное случилось. Не паникуй, действуй по порядку.

Шаг 1. Стоп и оценка масштаба. Закрой сессию с агентом, не давай ему продолжать. Открой терминал и проверь, что именно пропало:

git status
git reflog | head -20

git status покажет удалённые файлы в рабочей директории (они будут в списке deleted). git reflog — последние действия с HEAD.

Шаг 2. Восстановление из git. Если файлы были закоммичены — верни их:

git checkout -- <путь/к/файлу>

Если удаление уже попало в коммит — через reflog:

git reset --hard <хэш до удаления>

Шаг 3. Если git не поможет. Файлы не были закоммичены или агент удалил .git вместе со всем. Тогда:

Если и это пусто — последний совет: научись на своём. Это было больно, но теперь ты точно настроишь все три уровня защиты.

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

https://t.me/+jDf7-o-nDPw2ZGUy

Как понять, что агент вышел за пределы задачи

Не жди, пока файлы исчезнут. Научись замечать, что агент сворачивает не туда, раньше:

Я, Арина Михална, всегда говорю: если агент спрашивает разрешение на неожиданные команды — например, вдруг хочет удалить файл, о котором речи в задаче не было, — это не «инициатива», это тревожный звоночек, останови и уточни задачу. Если сработал permissions.deny, значит, ты прописал защиту правильно, и вот она загорелась: агент пытался что-то сделать, на что не имел права, — разберись, что именно. И наконец, если агент делает шаги, которых ты не просила, — задача была «добавь орм-страницу», а он вдруг «почистил старые файлы» или «переименова…»

Чек-лист: что у тебя теперь есть

Частые вопросы

Может ли Claude Code удалить файлы без спроса?

Да, в авто-режиме агент выполняет команды без подтверждения. Именно поэтому важно прописать запреты в settings.json и CLAUDE.md ещё до того, как запустить агента на серьёзной задаче.

Как прописать запрет на удаление конкретных файлов в Claude Code?

В файле .Claude/settings.json добавь в секцию permissions.deny паттерны Bash-команд: "Bash(rm:*/.env*)", "Bash(rm:*/migrations/*)" и аналогичные. Агент не выполнит эти команды даже если системный промпт их разрешает.

Что делать, если ИИ агент уже удалил файлы?

Первый шаг — git: команда "git reflog" покажет хэши всех коммитов, включая момент до удаления. Если файлы не были в git — проверь корзину ОС или Time Machine/теневые копии Windows.

Что побеждает при конфликте: системный промпт или permissions.deny?

permissions.deny — всегда. Это слой ОС-уровня: если команда попала в deny-список, агент физически не сможет её выполнить, даже если CLAUDE.md написан иначе.

Нужен ли git, если я использую Claude Code только для мелких задач?

Да, даже для мелких. Один нечаянный rm -rf на не той директории — и восстанавливать нечего. git init занимает 3 секунды, а покрывает любой сценарий.

Следующий шаг

Твой личный ДЖАРВИС

Первый ИИ-ассистент за вечер: по шагам, на живой практике, без кода.

Пройти курс

Или просто следи

А.М. решает вопросы — 5 000+ подписчиков, разборы Claude каждый день.

Подписаться в Telegram

Источники