在 Windows 领域,您可以从 Sysinternals 运行 Procmon(进程监视器),它将向您显示每个文件访问、注册表查询等系统范围(附截图)。然后,您可以回溯以查找哪些进程正在触摸/访问特定文件(或注册表查询)。
在 Linux 领域,我有时会找到哪些进程正在访问系统上的特定文件——但我不知道从哪个进程开始查看。我知道 strace,并且我知道我可以将它附加到多个进程 - 但是有没有办法在 Linux 下全局输出每个文件访问?
在 Windows 领域,您可以从 Sysinternals 运行 Procmon(进程监视器),它将向您显示每个文件访问、注册表查询等系统范围(附截图)。然后,您可以回溯以查找哪些进程正在触摸/访问特定文件(或注册表查询)。
在 Linux 领域,我有时会找到哪些进程正在访问系统上的特定文件——但我不知道从哪个进程开始查看。我知道 strace,并且我知道我可以将它附加到多个进程 - 但是有没有办法在 Linux 下全局输出每个文件访问?
这就是 Linux,当然有不止一种方法可以做到这一点。
追踪方法。使用 ftrace 或eBPF来跟踪内核中的任何内容的脚本。在这个 open() 示例中,请参阅opensnoop。您可以按 PID 或文件名过滤。非常强大,可以临时使用,但并不是每个人都对编写内核探测脚本感到满意。
审计方法。配置 auditd 规则以记录某些文件访问或系统调用。遵循如何监控路径的示例”Linux 审计子系统已在企业环境中用于满足合规性要求。文档化,擅长记录,但不能即时检测所有内容。
Sysdig 会做你正在寻找的东西。但是,它需要 root 访问权限和 sysdig-probe 模块。