Claude Code · доступ к данным

Claude Code безопасность данных в 2026 году: закрой .env и .ssh

Открой команду /permissions, посмотри свой текущий режим и добавь три строки deny под личные файлы - и Claude Code больше не прочитает .env и папку .ssh, в каком бы режиме разрешений ты не работал. На это уходит пять минут, готовый блок для вставки лежит ниже

К концу статьи у тебя будет закрыт реальный доступ к ключам и паролям на твоём компьютере, а не абстрактное понимание того, что "где-то есть настройки безопасности". Дальше по шагам: где смотреть текущий режим, куда вставлять запрет, как проверить, что он реально сработал, и что делать, если файл настроек перестал открываться после правки

Сегодня делаешь так: сохраняешь блок из статьи в свой файл настроек, перезапускаешь Claude Code и сразу проверяешь готовое правило на живом файле - просишь агента прочитать свой .env и смотришь на отказ своими глазами. Если после сохранения появилось сообщение об ошибке, а не тишина - смотри таблицу сбоев ниже, там разбор по каждому виду ошибки

Шаг 1. Открой список своих правил командой /permissions

Одна команда показывает весь список текущих разрешений и режим, в котором сейчас работает твой Claude Code

Куда нажать. Внутри окна Claude Code (там, где ты пишешь ему задачи обычными словами) напечатай /permissions и нажми Enter

Что увидишь. Откроется список правил с пометкой, из какого файла настроек каждое взято, и наверху - твой текущий режим: default (в интерфейсе подписан как Manual), acceptEdits, plan, auto, dontAsk или bypassPermissions

Что это даёт. Ты узнаёшь, сколько раз в день Claude Code реально спрашивает у тебя разрешение, прежде чем что-то сделать - и понимаешь, что это за режим, до того как что-то пойдёт не так

Разница между режимами - именно в том, сколько действий агент делает без вопроса к тебе. Таблица снята с живой документации 09.09.2026:

РежимЧто делает без вопроса к тебеКому подходит
default (Manual)спрашивает разрешение при первом использовании каждого инструментаревью каждого шага, чувствительные данные
acceptEditsправки файлов и обычные команды с папками (создать, переместить, скопировать)правка кода, который ты и так проверяешь
planтолько чтение и разведка, ничего не меняетпосмотреть на чужой проект перед правками
autoпочти всё, с фоновой проверкой встроенным классификаторомдолгие задачи, меньше прерываний
dontAskтолько заранее одобренные тобой командызакрытая автоматизация без диалога, без лишних вопросов
bypassPermissionsбуквально всё без единого вопросатолько изолированный контейнер или виртуальная машина

Таблица прокручивается вбок →

Официальная документация Claude Code, раздел про правила разрешений и синтаксис deny
Официальная страница code.claude.com/docs/en/security, снята 05.09.2026, живьём проверена на доступность 09.09.2026: страница открылась. Раздел про permission-based architecture и границу рабочей папки

Важная деталь про платные тарифы, из-за которой стоит проверить именно свою установку, а не считать "там наверное всё по умолчанию максимально осторожно": на Pro, Max и Team-планах стартовый режим - auto, а не самый строгий default. Часть решений там принимает встроенный классификатор вместо тебя

Шаг 2. Найди файл настроек и открой его в редакторе

Правила deny добавляются не через команду /permissions напрямую (хотя через её диалог тоже можно), а прямо в файл настроек - находишь его один раз и дальше правишь текстом

Куда нажать. Файл лежит по пути ~/.claude/settings.json - это твои личные настройки, действуют во всех проектах. Открой его любым текстовым редактором (Блокнот, TextEdit, VS Code, что угодно)

Что увидишь. Обычный текстовый файл с записью в фигурных скобках, кавычках и квадратных скобках для списков. Если файла нет вообще - создай его пустым и вставь блок из следующего шага целиком

Что это даёт. Ты нашёл единственное место, откуда управляются все запреты и разрешения твоей установки - дальше вся настройка сводится к правке этого одного файла

На собственной машине, где собирается этот сайт, живой прогон 09.09.2026 показал: defaultMode: bypassPermissions, при этом 38 разрешённых категорий действий и 0 правил deny. То есть даже у рабочей установки, которую использую каждый день, поначалу нет ни одного явного запрета - его нужно добавить руками, автоматически он не появляется ни в одном режиме

Шаг 3. Вставь готовый блок deny под свои личные файлы

Три строки закрывают три самых частых места хранения ключей и паролей на любом компьютере: файл с секретными настройками проекта (обычно называется .env), его резервные копии и папку с ключами для входа на чужие компьютеры по сети (обычно называется .ssh)

Куда нажать. Скопируй блок ниже целиком и вставь его в свой settings.json. Если в файле уже есть раздел "permissions" - перенеси строки из "deny" внутрь существующего раздела, не создавая второй такой же ключ

{
  "permissions": {
    "deny": [
      "Read(./.env)",
      "Read(./.env.*)",
      "Read(~/.ssh/**)"
    ]
  }
}

Что увидишь. Файл сохранился без ошибок, три строки внутри массива deny

Что это даёт. Claude Code теперь физически не может прочитать эти пути ни через свои встроенные инструменты чтения, ни через узнаваемые команды вроде cat или sed - запрет действует независимо от режима разрешений, который ты выбрал на шаге 1, включая даже самый разрешительный bypassPermissions

Официальная документация Claude Code, живой пример правила deny для файла .env в файле настроек
Официальная страница code.claude.com/docs/en/settings, снята 09.09.2026: тот же готовый блок deny для .env, что вставлен в шаге выше

Расширенный вариант того же блока - для типовых мест хранения ключей и сертификатов, если они у тебя есть отдельно от .env:

{
  "permissions": {
    "deny": [
      "Read(./.env)",
      "Read(./.env.*)",
      "Read(~/.ssh/**)",
      "Read(*.pem)",
      "Read(*.key)"
    ]
  }
}

Одна важная особенность синтаксиса, которая часто путает на старте: путь без // в начале и без ~/ читается ОТ ТЕКУЩЕЙ РАБОЧЕЙ ПАПКИ, а не от корня диска. Read(~/.ssh/**) возьмёт папку .ssh в твоей домашней директории откуда угодно, а вот Read(/secrets/**), добавленный в личный файл настроек, заблокирует не папку secrets в проекте, а ~/.claude/secrets/** - потому что одиночный слеш в начале означает "от места, где лежит сам файл настроек", а не "от корня диска". Для абсолютного пути от корня нужны именно ДВА слеша: //Users/имя/secrets/**

Шаг 4. Сохрани файл и проверь, что запись не сломана

Одна лишняя запятая - и файл настроек перестанет читаться целиком, а не только новое правило

Куда нажать. Сохрани файл обычным сочетанием (Ctrl+S на Windows, Cmd+S на Mac) и открой Claude Code заново в любой папке

Что увидишь. Если запись правильная - никаких сообщений, Claude Code просто стартует как обычно. Если запись сломана - при старте появится сообщение об ошибке настроек, и не только новое правило deny, а ВЕСЬ файл перестанет применяться

Что это даёт. Ты убедился, что запрет реально заработал, а не просто лежит строкой в файле, который Claude Code не смог прочитать

Файл настроек читается строго: лишняя запятая после последнего элемента списка или пояснение прямо внутри файла - это ошибка записи, а не мелочь. Живой тест на этой машине 09.09.2026: строка {"permissions": {"deny": ["Read(./.env)",]}} (запятая после последнего элемента) сразу даёт ошибку разбора «висячая запятая перед концом списка» - и обычный текстовый редактор эту ошибку сам не подсветит цветом, как это делают специальные программы для кода

Что видишьЧто это значитЧто сделать
Claude Code запустился без единого сообщения об ошибкеФайл настроек прочитан успешноПереходи к шагу 5 и проверяй запрет живьём
При старте появилось сообщение про ошибку в файле настроекГде-то в файле лишняя запятая, незакрытая кавычка или скобкаСравни свой файл построчно с блоком из шага 3 - скорее всего запятая осталась после последнего элемента списка
В /permissions новое правило deny не появилось в спискеПравка попала не в тот файл (например, в личные настройки этого одного проекта, а не в общий файл настроек для всех проектов)Открой именно общий файл ~/.claude/settings.json и повтори вставку там
Файл был пустой, и после вставки блока Claude Code не запускаетсяПропущены внешние фигурные скобки - вставлен только внутренний блок permissions без обёртки в объектСверь весь файл целиком со структурой из шага 3, включая внешние { }

Таблица прокручивается вбок →

Шаг 5. Перезапусти Claude Code и проверь запрет живьём

Попроси Claude Code прочитать свой .env - если правило встало, он откажет с понятной причиной, а не молча притворится, что файла не существует

Куда нажать. В открытом окне Claude Code напиши обычными словами: "Прочитай файл .env в этой папке" (при условии что такой файл в папке есть, пусть даже пустой)

Что увидишь. Вместо содержимого файла - сообщение о том, что путь закрыт правилом разрешений, со ссылкой на конкретное правило deny из твоих настроек

Что это даёт. Ты своими глазами увидел, что запрет не теоретический: агент физически не может достать этот файл, даже если сам явно попросит его прочитать через инструмент чтения

Отдельно стоит знать честную границу этого способа: deny-правило блокирует встроенные инструменты чтения файлов Claude Code (и узнаваемые команды вроде cat, head, sed) - но не останавливает отдельную стороннюю программу, которую агент сам написал и запустил, если та открывает файл напрямую, минуя саму проверку. Для защиты на уровне всей системы, которая держит любую запущенную программу без исключений, служит отдельный механизм - песочница, включается командой /sandbox. Deny в файле настроек - это первый и самый быстрый барьер, а не единственный из всех возможных

Куда уходят данные, если ты их всё же показал агенту

Разница между «агент физически не видит файл» и «агент увидел файл, а что дальше с этими данными» - два разных вопроса, и у второго свой ответ, без зависимости от deny-правил из шагов выше

Anthropic Privacy Center: используются ли данные коммерческих клиентов для обучения модели
Официальная страница Anthropic Privacy Center, «Is my data used for model training?», снята 05.09.2026: строка «By default, we will not use your inputs or outputs from our commercial products... to train our models»
Способ подключенияОбучение на данных по умолчаниюЧто меняет ситуацию
Ключ доступа к API (сюда же Team, Enterprise)ВыключеноЯвно отправленный тобой фидбег через кнопку в интерфейсе
Личный аккаунт Claude.ai (Free, Pro, Max)ВыключеноТвоё явное согласие в настройках приватности - тогда включается

Таблица прокручивается вбок →

Если работаешь по ключу доступа к программному интерфейсу Anthropic - обучение выключено по умолчанию, это прямая цитата с официальной страницы: «By default, we will not use your inputs or outputs from our commercial products... to train our models». Если работаешь через личный аккаунт Claude.ai - действует другая, потребительская политика: обучение включается только по твоему явному согласию в настройках приватности

Три вещи, которые deny-правило не решает

Три места, где одного файла настроек недостаточно, и туда стоит идти отдельно, а не считать, что три строки deny закрыли вообще всё

  • Незнакомая сторонняя надстройка MCP (внешний инструмент, который подключаешь к Claude Code сам, помимо встроенных) - Anthropic проверяет такие надстройки перед добавлением в общий каталог, но не разбирает содержимое каждой построчно. Относись к новой незнакомой надстройке как к незнакомому расширению браузера, которое не проверил
  • Прямой доступ к боевой базе данных живого продукта без изоляции - ошибка в одной команде агента становится ошибкой на реальных пользователях, а не в тестовой копии. Deny-правило про файлы тут не поможет, нужна отдельная тестовая копия базы
  • Чужие персональные данные без согласия того, кому они принадлежат - если по работе обрабатываешь данные клиентов или пациентов, вопрос не в настройках Claude Code, а в том, есть ли у тебя право показывать эти данные вообще какому-либо облачному инструменту

Что ещё почитать про безопасность Claude Code

Источники

Страницы проверены живьём: первый снимок 05.09.2026, повторная проверка доступности 09.09.2026 (обе страницы открылись без ошибок), собственный прогон настроек этой машины - 09.09.2026

Памятка: закрыть доступ Claude Code к личным данным за 5 минут

Пять строк пути от открытого файла до проверенного запрета

Сохрани себе

  • Открыл /permissions и увидел свой текущий режим - default, acceptEdits, plan, auto, dontAsk или bypassPermissions
  • Нашёл файл ~/.claude/settings.json и открыл его в текстовом редакторе
  • Вставил блок deny с тремя правилами: Read(./.env), Read(./.env.*), Read(~/.ssh/**)
  • Сохранил файл, перезапустил Claude Code и убедился, что ошибки формата нет
  • Попросил агента прочитать закрытый файл и получил отказ с указанием правила - запрет подтверждён живым тестом

Пять минут потрачены

Настройки закрыты, следующий шаг тоже бесплатный

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

Забрать путёвку в ИИ-Лагерь

Заявка в закрытый канал, одобряю сразу. Бот сам напишет первым и покажет, как забрать три дня Лагеря. Бесплатно

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

Claude Code читает вообще все файлы на компьютере?

Нет. По умолчанию, в режиме default (Manual), Claude Code спрашивает разрешение на первое использование каждого инструмента чтения, а за пределами рабочей папки - на каждую попытку заглянуть в файл. Но на платных тарифах Pro, Max и Team стартовый режим по умолчанию - auto, где часть решений принимает не ты, а встроенный классификатор. Проверить свой текущий режим - первый шаг этой статьи

Правило deny действует в любом режиме разрешений?

Да, и это его смысл. Deny стоит выше режима: даже в разрешительном auto или в bypassPermissions правило deny из settings.json продолжает блокировать совпавший путь. Единственное, что снимает deny - его собственное удаление из файла настроек

Почему не работает файл .claudeignore?

Потому что такого механизма в Claude Code не существует. Официальная документация не описывает игнор-файл вроде .gitignore для запрета чтения - единственный рабочий способ закрыть путь это правило deny в settings.json. Если где-то видел совет создать .claudeignore, он не сработает

Что будет, если в settings.json опечатка - лишняя запятая?

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

Мои данные из Claude Code идут на обучение модели Anthropic?

Зависит от способа подключения. По API-ключу (сюда же Team и Enterprise) обучение выключено по умолчанию, исключение - только если сам отправил фидбег через кнопку в интерфейсе. Через личный аккаунт Claude.ai (Free, Pro, Max) обучение включается лишь по явному согласию в настройках приватности

Deny-правило защитит и от отдельной программы, которую агент написал сам и запустил?

Нет. Deny блокирует встроенные инструменты чтения Claude Code и узнаваемые команды вроде cat и sed, но не останавливает отдельную запущенную программу, которая открывает файл напрямую, минуя эти инструменты. Для защиты на уровне всей системы, которая держит любую программу без исключений, служит песочница, включается командой /sandbox