Linux 中的文件审计:如何查看目录树的删除情况?

Vla*_*sny 9 linux audit centos auditd

我在服务器上运行了一个论坛脚本,不知何故,少量附件开始丢失。我想知道是什么在删除它们以及在什么时间删除它们。如何设置 Linux auditd (auditctl) 来监视目录树(附件存储在多级目录树中)以监视那里的文件删除?

可能我应该为此使用其他工具吗?

Aar*_*ate 8

这是我写给上一个问题的答案:

通常,如果您想知道进程/用户/文件在做什么,而不必 24/7 全天候运行 lsof,您可以使用 auditctl。

假设你有一个最近的内核审计控制应该是一个简单的操作。(这是在 Debian-fu 中,如果您运行的是 Red Hat,请酌情翻译)

# apt-get install auditd
Run Code Online (Sandbox Code Playgroud)

确保它正在运行(/etc/init.d/auditd 状态)。

auditctl -a entry,always -F arch=b64 -S open -F pid=<process id>
Run Code Online (Sandbox Code Playgroud)

如果您运行的是 32 位架构,请将 b64 替换为 b32,open 可以替换为任何系统调用或单词“all”

有关更多信息,请阅读 auditctl 联机帮助页。

您可以使用此方法并要求它监视“取消链接”系统调用。

-w 参数对于查看文件/目录很有用,但正如手册页所解释的那样,有一些警告。

-w path 在路径中插入文件系统对象的监视。您不能在顶级目录中插入监视。这是内核禁止的。也不支持通配符,并且会产生警告。监视工作的方式是在内部跟踪 inode。这意味着如果您将监视放在目录上,您将看到看似文件事件的内容,但实际上只是元数据的更新。这样做可能会错过一些事件。如果您需要监视目录中的所有文件,建议在每个文件上放置一个单独的监视。与系统调用审计规则不同,监视不会根据发送到内核的规则数量影响性能。