Если ваш хук file-guard зарегистрирован на чтение, он никогда не увидит cat
Автор исследовал, как работают ограничения доступа к файлам, в частности хуки PreToolUse и правила deny в Claude Code. Его хук PreToolUse, предназначенный для исключения файла из контекста модели, был неожиданно обойден при использовании команды cat вместо инструмента Read. Однако однострочное правило deny успешно заблокировало команду cat. Это привело к серии тестов для измерения охвата этих ограничений в различных условиях и версиях Claude Code.Тесты подтвердили, что хуки PreToolUse, зарегистрированные для Read, не срабатывали при доступе к файлу через cat в Bash, в то время как сам инструмент Read был заблокирован. И наоборот, правила deny успешно блокировали команды cat. Два контрольных эксперимента выявили важные нюансы: правило deny, указанное для одного файла, было ошибочно истолковано как применимое ко всему каталогу в системных сообщениях, а выполнение скрипта Python, которое изначально казалось заблокированным правилом deny, на самом деле было остановлено классификатором автоматического режима.Документация поясняет, что правила deny применяются к встроенным инструментам Claude и распознанным командам Bash, но не к произвольным подпроцессам, таким как скрипты Python, которые открывают файлы напрямую. Для всестороннего контроля на уровне ОС рекомендуется использовать песочницу. Аналогичные эксперименты с хуком Edit показали, что он также был обойден командой sed -i, в то время как правило deny его заблокировало.Однако правило deny имело свои ограничения, не сумев заблокировать модификацию файлов через перенаправления оболочки, хотя и перехватило одно конкретное перенаправление. Другая команда для записи в файл прошла без блокировки. Это говорит о том, что, хотя правила deny имеют более широкий охват, чем хуки, они не являются исчерпывающими, и уровень ОС является наиболее надежным решением для полного контроля доступа к файлам. Автор подчеркивает важность тестирования собственной конфигурации для выявления потенциальных пробелов.
catвместо инструментаRead. Однако однострочное правило deny успешно заблокировало командуcat. Это привело к серии тестов для измерения охвата этих ограничений в различных условиях и версиях Claude Code.Тесты подтвердили, что хуки PreToolUse, зарегистрированные дляRead, не срабатывали при доступе к файлу черезcatв Bash, в то время как сам инструментReadбыл заблокирован. И наоборот, правила deny успешно блокировали командыcat. Два контрольных эксперимента выявили важные нюансы: правило deny, указанное для одного файла, было ошибочно истолковано как применимое ко всему каталогу в системных сообщениях, а выполнение скрипта Python, которое изначально казалось заблокированным правилом deny, на самом деле было остановлено классификатором автоматического режима.Документация поясняет, что правила deny применяются к встроенным инструментам Claude и распознанным командам Bash, но не к произвольным подпроцессам, таким как скрипты Python, которые открывают файлы напрямую. Для всестороннего контроля на уровне ОС рекомендуется использовать песочницу. Аналогичные эксперименты с хукомEditпоказали, что он также был обойден командойsed -i, в то время как правило deny его заблокировало.Однако правило deny имело свои ограничения, не сумев заблокировать модификацию файлов через перенаправления оболочки, хотя и перехватило одно конкретное перенаправление. Другая команда для записи в файл прошла без блокировки. Это говорит о том, что, хотя правила deny имеют более широкий охват, чем хуки, они не являются исчерпывающими, и уровень ОС является наиболее надежным решением для полного контроля доступа к файлам. Автор подчеркивает важность тестирования собственной конфигурации для выявления потенциальных пробелов.