Linux 上系统范围的文件访问和系统调用监控?

Linux 上系统范围的文件访问和系统调用监控?

在 Windows 中,您可以从 Sysinternals 运行 Procmon(进程监视器),它将向您显示系统范围内的每个文件访问、注册表查询等(附有屏幕截图)。然后,您可以回溯以查找哪些进程正在接触/访问特定文件(或注册表查询)。

在 Linux 领域,我有时想找到哪些进程正在访问系统上的特定文件 - 但我不知道从哪个进程开始查看。我知道 strace,我知道我可以将它附加到多个进程 - 但有没有办法在 Linux 下全局输出每个文件访问?

Windows 上的 ProcMon 示例

答案1

Sysdig 可以满足您的要求。但是它需要 root 访问权限和 sysdig-probe 模块。

答案2

这是 Linux,当然有多种方法可以做到这一点。

追迹方法。脚本使用 ftrace 或增强型BPF跟踪内核中的任何内容。在此 open() 示例中,请参见opensnoop 的。您可以按 PID 或文件名进行过滤。非常强大,可以临时使用,但并不是每个人都熟悉编写内核探测脚本。

審核方法。配置 auditd 规则来记录某些文件访问或系统调用。按照示例了解如何监控路径”Linux 审计子系统已在企业环境中使用以满足合规性要求。记录良好,擅长记录,但无法动态地检测所有内容。

相关内容