На учебной машине служба auditd выключена: sudo systemctl enable --now
auditd. Правило -w /etc/demo.conf -p wa -k democonf поймало запись в
файл из задания cron пользователя deploy. Одно событие — несколько
записей с общим номером; главные — PROCTITLE и SYSCALL:
student@ubuntu:~$ sudo ausearch -k democonf -i \
> | grep -E '^type=(SYSCALL|PROCTITLE)'
type=PROCTITLE msg=audit(10/21/26 05:49:01.453:288) :
proctitle=/bin/sh /usr/local/bin/tweak.sh
type=SYSCALL msg=audit(10/21/26 05:49:01.453:288) : arch=x86_64
syscall=openat success=yes exit=3 … auid=deploy uid=deploy gid=deploy
euid=deploy … tty=(none) ses=4 comm=tweak.sh exe=/usr/bin/dash
subj=unconfined key=democonf
| Поле |
Что значит |
auid |
кто вошёл в систему — не меняется ни после sudo, ни после su |
uid, euid |
от чьего имени работал процесс в этот момент |
comm |
имя процесса (15 символов) |
exe |
исполняемый файл; у скрипта — интерпретатор, здесь dash |
proctitle |
командная строка целиком — у скрипта в ней его путь |
tty, ses |
терминал и номер сеанса входа; у cron терминала нет |
key |
ключ правила из -k |
auid у задания cron — владелец crontab: cron открывает ему сеанс через
PAM (pam_loginuid). Запись через sudo sh -c 'echo … >> /etc/demo.conf'
даёт uid=root, а auid — того, кто вошёл; у процессов без входа в
систему (службы, команды через гостевой агент) auid=unset. Сводка по
файлам — aureport -f -i:
# date time file syscall success exe auid event
1. 10/21/26 05:48:29 /etc/ openat yes /usr/bin/dash unset 279
2. 10/21/26 05:49:01 /etc/ openat yes /usr/bin/dash deploy 288
Постоянные правила: rules.d
echo '-w /etc/demo.conf -p wa -k democonf' \
| sudo tee /etc/audit/rules.d/demo.rules
sudo augenrules --load
sudo auditctl -l
augenrules собирает /etc/audit/audit.rules из всех файлов
rules.d/*.rules и загружает в ядро; при старте auditd делает то же.
Правило, вписанное прямо в audit.rules, при следующем augenrules
--load пропадает: файл пересобран, в auditctl -l правила нет. Читает
audit.rules только root. augenrules --load печатает состояние
подсистемы (enabled 1, backlog …) — это не ошибка.