当 USB 拔出然后重新插入时,Audid 会停止监视 USB 安装点

当 USB 拔出然后重新插入时,Audid 会停止监视 USB 安装点

我正在对 USB 活动进行脚本化监控:文件读取、写入、文件夹创建等。当插入 USB 设备时,我们的代码库会自动在以下位置设置一个挂载点: ,并在移除 USB 时删除此挂载点。/media/usb/mounted_usb_name

我已配置为使用以下规则auditd进行观看:/media/usb

-w /media/usb -p r -k USB_r
-w /media/usb -p w -k USB_w
-w /media/usb -p a -k USB_a
-w /media/usb -p x -k USB_x

...能够识别auditd日志中不同类型的活动。

这在大多数情况下都可以正常工作;我可以在已安装的 USB 位置查看各种操作的日志活动。但是,当我移除并重新插入 USB 时,导致挂载目录被删除并通过我们的代码库重新创建,auditd从而停止向日志报告任何和所有活动。

两个创建的挂载点之间的所有者或权限没有区别。我还尝试过直接在 中创建文件夹/media/usb、删除它们并重新创建它们,并且auditd在跟踪这些文件夹(无论何时存在)时都没有问题。我检查了系统日志,但我发现的唯一线索是这一行:

Volume was not properly unmounted. Some data may be corrupted. Please run fsck.

...当USB连接时发生插入,而不是删除。

我已经在两台不同的机器上尝试过使用多个 USB。行为是一致的。似乎解决该问题的唯一方法是运行:

systemctl restart auditd

...这对于我们的目标来说不是一个好的选择。

如果有任何帮助,我将不胜感激:)

答案1

Auditd 'watches' 通过其 inode 跟踪文件,如果删除 'watch' 所在的目录并重新创建它,inode 会发生更改,并且 'watch' 会停止跟踪有问题的文件。

尝试使用-F path=它的绝对路径来跟踪文件

auditctl -a always,exit -F path=/media/usb

相关内容