如何知道哪些进程访问了文件?

时间:2014-07-24 09:45:11

标签: linux file process monitor

我的操作系统是linux。

我的文件位于/ etc,
 它的完整路径如/ etc / AAA。

任何工具或命令都可以告诉我文件是在一段时间内由哪些进程访问的。  例如  上午1:10,进程写入/ etc / AAA  凌晨3:50,进程B读取/ etc / AAA

我需要知道访问/ et / AAA

的所有进程ID

感谢。

3 个答案:

答案 0 :(得分:2)

没有工具可以做到这一点。要查看当前哪个进程处于打开状态,您可以使用fuserlsof

要获取更改历史记录,您需要运行一个监视文件系统以进行更改的进程。您可以使用inotify service来构建此内容。

相关:

答案 1 :(得分:1)

linux审核系统可以为您提供帮助,并将提供详细信息:

这是Redhat网站上的一些documentation,但应该适用于其他Linux变体。大多数发行版都有审计系统,但可能是可选安装。

假设审计子系统已在运行,您可以添加规则来监视示例文件的读取权限,如下所示:

auditctl -w /etc/AAA -p r -k mywatch

然后你可以用comamnd看到结果:

ausearch -k mywatch

或观察audit.log文件(在某些系统上的/ var / log / audit中)

答案 2 :(得分:-1)

stat为您提供了一些信息;

$ stat test.txt
  File: `test.txt'
  Size: 166             Blocks: 1          IO Block: 65536  regular file
Device: 6a81ccb1h/1786891441d   Inode: 6755399442667785  Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/   PC_01)   Gid: (  513/    None)
Access: 2014-07-16 16:03:18.208462800 +0200
Modify: 2014-07-16 16:03:18.209462900 +0200
Change: 2014-07-16 16:03:18.209462900 +0200
 Birth: 2014-07-16 16:03:18.208462800 +0200