如何检测哪个进程现在或过去使用过文件

如何检测哪个进程现在或过去使用过文件

这是一个假设的问题,不是我目前遇到的问题。

如何检测现在哪个进程正在使用某个文件或在过去

找出哪个进程正在访问filenamelsof filename或者fuser filename将执行该工作。但是如果想知道访问了哪些进程怎么办filename 在过去 24 小时内

人们可以逃脱这个丑陋的(*)黑客攻击

while true; do fuser filename; sleep 1; done

并让它在下一个学期运行 24 小时。但在不建立完整审计框架的情况下,是否真的有更好的系统呢?



(*) 更不用说fuser如果花费时间少于 1 秒,可能无法检测到访问...

答案1

如果您的系统启用了审核,您可以使用该子系统来审核对特定文件的访问。

例如,要审核打开(或尝试打开)文件的文件/etc/shadow,您可以使用以下规则:

auditctl -a exit,always -S open -F path=/etc/shadow

稍后,您可以使用此命令列出与访问此文件相对应的审计事件:

ausearch -f /etc/shadow

请注意,您需要成为 root 才能配置和查询审核系统。

请参阅审计控制(8)手册页了解有关如何设置规则和澳大利亚研究中心(8)有关如何查询审核日志的详细信息,请参阅手册页。

如果您没有启用审核,您应该查找有关如何针对您的 Linux 发行版执行此操作的信息,因为详细信息会有所不同。

相关内容