file-protection — хук для Claude Code: защита файлов
Хук блокирует Edit, MultiEdit и Write для путей, совпавших с заданными шаблонами. Он пригодится, чтобы агент случайно не изменил системные файлы или production-конфигурацию.
npx claude-code-templates@latest --hook security/file-protectionЧто делает file-protection
Перед вызовом Edit, MultiEdit или Write хук проверяет путь в CLAUDE_TOOL_FILE_PATH. Если путь совпадает с одним из шаблонов, команда завершается с ошибкой и запрещает изменение файла.
Под защиту попадают пути вроде */etc/*, */usr/bin/*, *.production.*, *prod*config*, */node_modules/* и */vendor/*. Это список конкретных шаблонов, а не проверка всех важных файлов: пути вне него хук не блокирует.
Для установки выполните npx claude-code-templates@latest --hook security/file-protection; настройка находится в .claude/settings.json. Если нужный файл не совпадает с шаблонами, агент сможет его редактировать.
Какие задачи решает
- заблокировать правки файлов в
*/etc/* - предотвратить запись в
*/node_modules/* - защитить файлы с
*.production.* - не дать менять конфигурации, совпавшие с
*prod*config*
Примеры запросов агенту
- Измени конфигурацию в
prod-config.json. - Запиши обновлённый файл в
node_modules/package.json. - Отредактируй системный файл в
/etc/service.conf.
Как установить file-protection
1Через claude-code-templates
npx claude-code-templates@latest --hook security/file-protection2Вручную: положить файлы
.claude/settings.jsonБлок hooks: событие (PreToolUse, PostToolUse, Stop…) → команда. Личные — ~/.claude/settings.json
По шагам, с командами для каждой платформы: Хуки Claude Code: что это, где настраивать и как запретить опасную команду
Вопросы о file-protection
Как установить file-protection в Claude Code?
Выполните npx claude-code-templates@latest --hook security/file-protection. Настройка хука находится в .claude/settings.json.
Что делает file-protection?
Перед Edit, MultiEdit и Write проверяет путь файла и блокирует операцию, если путь совпал с защищённым шаблоном.
Какие пути блокирует file-protection?
Среди шаблонов — */etc/*, */usr/bin/*, *.production.*, *prod*config*, */node_modules/* и */vendor/*. Файлы вне этих шаблонов хук не блокирует.
Исходный текст
file-protection.json · MIT
{
"description": "Protect critical files from accidental modification. Prevents editing of important system files, configuration files, and production code.",
"hooks": {
"PreToolUse": [
{
"matcher": "Edit|MultiEdit|Write",
"hooks": [
{
"type": "command",
"command": "PROTECTED_PATTERNS=('*/etc/*' '*/usr/bin/*' '*/usr/sbin/*' '*.production.*' '*prod*config*' '*/node_modules/*' '*/vendor/*'); for pattern in \"${PROTECTED_PATTERNS[@]}\"; do if [[ \"$CLAUDE_TOOL_FILE_PATH\" == $pattern ]]; then echo \"Error: File $CLAUDE_TOOL_FILE_PATH is protected from modification\" >&2; exit 1; fi; done"
}
]
}
]
}
}
© davila7 · MIT · davila7/claude-code-templates