Если ты хочешь знать, кто и когда открыл или изменил важные файлы на сервере - добро пожаловать в мир
auditd. Это подсистема аудита Linux, а вместе с Bash она превращается в инструмент контроля безопасности.auditd - демон ядра, который пишет события доступа к ресурсам (файлам, системным вызовам, пользователям и т.д.) в лог /var/log/audit/audit.log.⚙️ Установка:
sudo apt install auditd audispd-plugins # Debian/Ubuntu
sudo yum install audit -y # RHEL/CentOS
▪️ Отслеживаем доступ к файлу. Допустим, тебе важно следить за файлом
/etc/shadow:
sudo auditctl -w /etc/shadow -p rwxa -k shadow_watch
-w — путь к файлу
-p — права (read/write/execute/attribute)
-k — метка (ключ) для фильтрации логов
▪️ Пример события в логе:
type=SYSCALL msg=audit(1613403003.244:516): ...
type=PATH msg=audit(1613403003.244:516): item=0 name="/etc/shadow" ...
📱 Скрипт для анализа:
#!/bin/bash
KEY="shadow_watch"
LOG="/var/log/audit/audit.log"
REPORT="/var/log/shadow_access_report.txt"
echo "Анализ доступа к /etc/shadow — $(date)" > "$REPORT"
ausearch -k "$KEY" | \
grep 'name="/etc/shadow"' | \
awk -F"uid=" '{print $2}' | \
awk '{print $1}' | \
sort | uniq -c | sort -nr >> "$REPORT"
cat "$REPORT"
ausearch позволяет фильтровать события по ключу. Скрипт покажет сколько раз какой UID обращался к файлу.▪️ Как убрать правило:
sudo auditctl -W /etc/shadow
▪️ Расширение идеи:
Нужно логировать доступ к нескольким файлам? Добавь их в список и прогоняй в цикле.
BashTex 📱 #linux #utils