Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
对于我正在编写的应用程序,我想知道哪些进程正在访问特定文件并将该信息转储到日志文件中。最后,其中一个进程将删除此文件,我也想知道该进程的名称。
我可以使用 INotify 库来监视文件访问,但它没有给我正在访问文件的进程名称。这也可能在 linux 上使用 Auditctl 包,但我也不能使用这个选项:-(
实际上,由于某些原因,它是一个受控环境,最终客户已准备好运行程序,但尚未准备好安装新软件包或对现有实用程序进行更改。
仅从用户空间可靠地审计 Linux 中的直接附加文件访问是不可能的。
您可以使用 lsof 进行轮询,但您可能无法检测到轮询之间的访问。最初的 dnotify 模块(被 inotify 淘汰...)的目的是避免产生轮询的开销并避免丢失事件。审计系统在文件打开时提供用户标识。
如果可以将文件移动到 NFS 服务器,则可以使用 NFS 日志记录对文件的访问。
如果这是一个生产服务器或者是一个即将上线的开发服务器,客户可能不会安装新软件包是正确的。您应该考虑请求授权以在下一个开发或测试服务器上设置审核。