为什么 auditd 没有记录文件删除?

为什么 auditd 没有记录文件删除?

我已经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

这非常有效:

# 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'

我可以看到记录了所有其他类型的删除。我遗漏了什么?

答案1

我遇到了同样的问题,刚刚找到了解决方案。您将需要使用unlinkat系统调用跟踪:

-a exit,always -F arch=b64 -S unlink -S rmdir -S unlinkat

因为rm没有使用unlink。谢谢泰利恩为了答案发布在 SuperUser 上

答案2

如果这

 -a exit,always -F arch=b64 -S unlink -S rmdir -k deletes

您的命令是在哪里告诉它记录的rm?我认为它会记录rmdir,但根本不会记录rm(从您的 2 个示例可以看出,情况似乎如此)。

查看 auditd 布局我假设您需要类似以下内容:

-a exit,always -F arch=b64 -S unlink -S rm -S rmdir -k delete

相关内容