Обычные права и журнал службы не говорят, кто записал в файл. На этот вопрос отвечает auditd — служба аудита ядра: по правилу она записывает каждое обращение к файлу вместе с тем, кто его сделал.
В образе auditd выключена — сначала её включают:
С работающим auditd отказы AppArmor из прошлого урока пишутся в его журнал /var/log/audit/audit.log: их достаёт sudo ausearch -m AVC -i, в journalctl -k новых строк нет (в Вики).
Правило аудита ставят командой auditctl:
-w — путь, за которым следим; -p wa — какие обращения записывать (w — запись, a — смена атрибутов, есть ещё r — чтение и x — запуск); -k hosts — метка (ключ), по ней потом ищут события. sudo auditctl -l показывает установленные правила.
События по ключу достаёт ausearch:
Поставь наблюдение за /etc/hosts
Включи службу auditd и поставь наблюдение за /etc/hosts с меткой hosts на запись и смену атрибутов. Через несколько секунд в аудите должно появиться событие по этой метке — служба как раз снова правит файл.
Цели · 0 из 2
- Включить службу auditd ещё не выполнена
- Поставить наблюдение за /etc/hosts с меткой hosts ещё не выполнена