У меня установлен auditd на 64-разрядном Ubuntu 12.04 для отслеживания некоторых неожиданных удалений (приятное обсуждение auditd). Это мое правило (пометки удаляются с помощью ключевого слова deletes):
-a exit,always -F arch=b64 -S unlink -S rmdir -k deletes
auditctl -l показывает, что он настроен:
LIST_RULES: exit,always arch=3221225534 (0xc000003e) key=deletes syscall=rmdir,unlink
Это отлично работает: [!d3 ]
# mkdir xyx
# rmdir xyz
# ausearch -k deletes|grep 'xyz'
type=PATH msg=audit(1406147794.737:1880): item=1 name="xyz" inode=12386307 dev=08:04 mode=040755 ouid=0 ogid=0 rdev=00:00
, но это не так:
# touch xyx
# rm xyx
# ausearch -k deletes|grep 'xyz'
Я вижу, что записываются всевозможные другие удаления. Что мне не хватает?
Если это
-a exit,always -F arch=b64 -S unlink -S rmdir -k deletes
- это ваша команда, где вы скажете ей журнал rm? Я бы предположил, что он будет записывать rmdir, а не log rm вообще (как показано в ваших двух примерах, похоже, это так).
Глядя на план аудита, я бы предположил, что вам нужно что-то например:
-a exit,always -F arch=b64 -S unlink -S rm -S rmdir -k delete