2

有时,我感兴趣的文件会被某个进程修改。我需要找出哪个进程正在修改这个文件。使用 lsof 将不起作用,kqueue 也不起作用。这在 FreeBSD 和 Linux 下可行吗?

4

4 回答 4

2

在 Linux 上,有一个用于inotify的内核补丁。但是,有些人说这很少有用,并且可能存在安全风险。无论如何,这是补丁

除此之外,我不确定是否有任何方法可以使用inotifydnotify获取 PID 。您可以进一步调查(例如搜索pid dnotifypid inotify),但我认为这不太可能。

于 2009-01-30T20:48:07.707 回答
1

在 FreeBSD 上,最好检查一下它的审计功能

于 2009-02-02T12:14:17.757 回答
1

Linux 有一个审计守护进程http://www.cyberciti.biz/tips/linux-audit-files-to-see-who-made-changes-to-a-file.html

另请参阅auditd 主页

于 2012-05-24T12:25:35.030 回答
0

您可以通过安装和使用 lsof (List Open Files) 命令查看哪些进程打开了文件。

于 2009-02-02T11:47:29.357 回答