Auditd - 仅监控目录的 auditctl 规则(并非所有子目录和文件等)

sup*_*roi 2 linux monitoring shell auditd

我正在尝试使用auditd来监视对目录的更改。问题是,当我设置规则时,它会监视我指定的目录,但也会监视它下面的所有子目录和文件,由于冗长而使监视无用。

这是我设置规则的方法:

auditctl -w /home/raven/public_html -p war -k raven-pubhtmlwatch
Run Code Online (Sandbox Code Playgroud)

当我使用搜索日志时

ausearch -k raven-pubhtmlwatch
Run Code Online (Sandbox Code Playgroud)

我从日志中得到了数千行,列出了public_html.

如何将规则限制为仅对指定的目录进行更改?

sup*_*roi 5

归功于 Steve @ redhat,他在linux-audit邮件列表上回答了我的问题:

手表实际上是变相的系统调用规则。如果您将监视放在目录上,auditctl 会将其转换为:

-a exit,always -F dir=/home/raven/public_html -F perm=war -F key=raven-pubhtmlwatch
Run Code Online (Sandbox Code Playgroud)

-F目录字段是递归的。但是,如果您只想查看目录条目,则可以将其更改为-F路径。

-a exit,always -F path=/home/raven/public_html -F perm=war -F key=raven-pubhtmlwatch
Run Code Online (Sandbox Code Playgroud)

这不是递归的,只是监视目录占用的 inode。

我不得不手动添加规则,/etc/audit/audit.rules然后重启进程auditd

/etc/init.d/auditd restart
Run Code Online (Sandbox Code Playgroud)

现在添加了规则,效果很好!