【问题标题】:Monitoring file access in Linux在 Linux 中监控文件访问
【发布时间】:2012-04-29 14:41:14
【问题描述】:

对于我正在编写的应用程序,我想知道哪些进程正在访问特定文件并将该信息转储到日志文件中。最后,其中一个进程将删除此文件,我也想知道该进程的名称。

我可以使用 INotify 库来监控文件访问,但它没有给我正在访问文件的进程名称。这可能也可以在 linux 上使用 Auditctl 包,但我也不能使用这个选项:-(

由于某些原因,实际上它是一个受控环境,最终客户已准备好运行程序,但尚未准备好安装新软件包或更改现有实用程序。

【问题讨论】:

  • 不是真正的编程,更多的是系统管理。投票转移到服务器故障。
  • @konerak :这与系统管理无关。如果存在这样的工具,我想编写代码来执行此操作。我提到我不能使用像 Auditctl 这样的工具。
  • 啊哈,谢谢。你能告诉我们为什么你不能使用那个包吗?避免我们建议其他软件包只是让它们被“我也不能使用那个”拒绝而无需进一步解释。
  • @konerak :是的,我将在问题本身中添加信息 :-) 实际上,由于某些原因,最终客户已准备好运行程序但尚未准备好安装新软件包,这是一个受控环境或对现有实用程序进行更改。

标签: linux audit inotify


【解决方案1】:

在 Linux 中仅从用户空间可靠地审核直接附加文件的访问是不可能的。

您可以使用 lsof 进行轮询,但您可能会冒在轮询之间无法检测到访问的风险。最初的 dnotify 模块(被 inotify 淘汰...)的目的是避免产生轮询的开销并避免丢失事件。审核系统会在文件打开时提供用户标识。

如果您可以将文件移动到 NFS 服务器,那么您可以使用 NFS 日志记录对文件的访问。

如果这是生产服务器或即将上线的开发服务器,客户可能不会安装新软件包是正确的。您应该考虑请求授权以在下一个开发或测试服务器上设置审核。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-19
    • 1970-01-01
    • 2023-03-08
    • 2016-04-11
    • 2013-02-03
    • 2015-05-26
    • 1970-01-01
    相关资源
    最近更新 更多