Дата: 2025-11-12
Версия: 1.0
Когда Claude Code спрашивает подтверждение, он хочет выполнить команду, которой нет в whitelist.
Bash command
ls -lah /var/backups/dev-pro/ 2>/dev/null || echo "No dev-pro backups"
Check dev-pro backups
Do you want to proceed?
❯ 1. Yes
2. Yes, allow reading from dev-pro/ from this project
3. Tell Claude what to do differently
Что означает:
| Часть | Значение |
|---|---|
Bash command |
Тип действия (команда в терминале) |
ls -lah /var/backups/dev-pro/ |
Конкретная команда |
Check dev-pro backups |
Описание зачем |
| Вариант 1 | Разрешить ОДИН раз |
| Вариант 2 | Разрешить НАВСЕГДА для этого проекта |
| Вариант 3 | Отказать и сказать что делать по-другому |
Read file
/var/backups/marketplace/db/marketplace-db-20251112.db.gz
Read backup file to check size
Do you want to proceed?
❯ 1. Yes
2. Yes, allow reading from /var/backups/marketplace/ from this project
3. Tell Claude what to do differently
Что означает:
| Часть | Значение |
|---|---|
Read file |
Чтение файла |
/var/backups/marketplace/... |
Путь к файлу |
Read backup file to check size |
Зачем читает |
| Вариант 2 | Разрешит читать ВСЕ из /var/backups/marketplace/ |
Когда использовать:
- Команда выглядит странно
- Первый раз вижу такую команду
- Не уверен что это безопасно
- Тестирую что-то
Пример:
Bash(rm -rf /tmp/test-folder) ← удаление, лучше один раз
Когда использовать:
- Команда точно безопасная
- Буду использовать часто
- Работаю с этой папкой постоянно
Пример:
Read(//var/backups/**) ← чтение бекапов, безопасно
Bash(rclone ls yandex:*) ← просмотр Яндекс.Диска, безопасно
Bash(du -sh /opt/*) ← размер файлов, безопасно
⚠️ НЕ разрешать навсегда:
Bash(rm -rf *) ← ОПАСНО! Может удалить всё!
Bash(sudo dd if=/dev/zero) ← ОПАСНО! Затрёт диск!
Когда использовать:
- Команда точно неправильная
- Хочу чтобы сделал по-другому
- Путь к файлу неверный
Пример:
Если Claude хочет читать /home/user/ а нужно /opt/workspace/
Безопасные (можно разрешать навсегда):
ls, cat, grep, find ← просмотр
du, df, free, uptime ← статистика
ps, top, htop ← процессы
git status, git log ← git (только чтение)
which, whereis ← поиск программ
rclone ls, rclone about ← просмотр облака
Осторожно (разрешать один раз):
chmod, chown ← изменение прав
mkdir, touch ← создание файлов
cp, mv ← копирование/перемещение
git add, git commit ← изменение git
ОПАСНО (проверять внимательно!):
rm, rmdir ← удаление
sudo rm ← удаление с правами root
dd ← низкоуровневое копирование
mkfs ← форматирование диска
Безопасные:
Read(/$WORKSPACE/**) ← рабочая папка
Read(//var/log/**) ← логи
Read(//etc/**) ← конфиги системы
Read(//var/backups/**) ← бекапы
Осторожно:
Read(//root/.ssh/**) ← SSH ключи (секреты!)
Read(//.env) ← переменные окружения (пароли!)
Всегда проверяй:
- Куда записывает?
- Не перезапишет ли важный файл?
Безопасные:
Write(/$WORKSPACE/scripts/**) ← скрипты workspace
Write(//tmp/**) ← временные файлы
ОПАСНО:
Write(//etc/passwd) ← системный файл!
Write(//.env) ← может перезаписать пароли!
❓ Запрос: ls -lah /var/backups/dev-pro/
✅ Ответ: Вариант 2 (allow reading from /var/backups/)
Почему: Чтение бекапов безопасно, буду делать часто
❓ Запрос: apt-get install -y rclone
✅ Ответ: Вариант 2 (allow apt-get install)
Почему: Установка безопасна, использую -y флаг
❓ Запрос: rm /tmp/old-backup.tar.gz
✅ Ответ: Вариант 1 (Yes, один раз)
Почему: Удаление - потенциально опасно, лучше контролировать
❓ Запрос: rm -rf /opt/*
🛑 Ответ: Вариант 3 (Tell Claude...)
Почему: ОПАСНО! Может удалить весь /opt/
$WORKSPACE/.claude/settings.local.json
{
"permissions": {
"allow": [
"Bash(ls:*)", // Любой ls
"Read(//var/backups/**)", // Чтение из /var/backups/
"Bash(rclone ls:*)" // rclone ls с любыми параметрами
]
}
}
| Паттерн | Что означает |
|---|---|
* |
Любые параметры |
** |
Любые вложенные папки |
:* |
Любые аргументы команды |
A: Технически да, но НЕ рекомендуется!
Это небезопасно:
{
"permissions": {
"allow": ["Bash(*)", "Read(**)", "Write(**)"]
}
}
Claude может случайно удалить важные файлы.
A: Удалить строку из settings.local.json и перезапустить Claude Code.
A: Добавь категориями:
См. файл: $WORKSPACE/.claude/settings.local.json
Перед тем как нажать "Вариант 2":
Если хоть один "нет" → Вариант 1 (один раз)
$WORKSPACE/.claude/settings.local.json$WORKSPACE/.claude/settings.local.json.backup-*Совет: Начни с "Вариант 1", потом добавь в whitelist то, что используешь часто.
Безопасность > Удобство 🔒
Создано: 2025-11-12
Версия: 1.0