Linux 中用户修改文件的历史记录
History of users modifying a file in Linux
我想知道是否可以列出随着时间的推移所有修改文件的人。我知道 stat or ls -lrt
会给出修改文件的最后一个用户。但是我想看看是否可以找到修改文件的N-1用户
注意:我认为找到这样的用户的机会很小。在宣布这是死胡同之前,只想与专家确认。
示例:
在 1:00 AM ABC 修改了文件
在 2:00 AM XYZ 修改了同一个文件。
我知道 XYZ 已经修改了文件,如何找到谁在 XYZ 之前修改了文件(在本例中为 ABC)?
I am aware that stat or ls -lrt will give the last user who modified the file.
没有。修改文件不会改变其所有者。
一般文件系统不跟踪修改历史。如果此信息至关重要,则方法是
- 对于完整的文件层次结构:VCS(版本控制系统),例如 Git、Subversion、Mercurial、CVS,...
- 对于单个文件,RCS 或 SCCS,...
可以配置审核以跟踪对特定文件的更改。有一些限制:
- 必须先配置然后感兴趣的更改
- 审计守护进程往往会拒绝如果被告知监视一个已被删除的文件。
不过,它还是很有用的。寻找 auditctl
。以下是讨论该主题的一些有用链接:
无法跟踪用户详细信息,例如通过特定命令修改文件的用户名。只有我们可以通过 ls -l.
查看分配给文件的用户名
一个可以使用的技巧是(这只适用于最近的修改)你可以检查文件的最后修改时间,并与用户的登录时间交叉检查。您也许可以缩小列表范围。
- 使用
stat
命令(例如:stat,See this)
- 找到
Modify
时间
- 使用
last
命令查看登录历史(see this)
- 将 log-in/log-out 时间与文件的
Modify
时间戳进行比较
这不会一直有效,但您可以缩小结果范围。
我想知道是否可以列出随着时间的推移所有修改文件的人。我知道 stat or ls -lrt
会给出修改文件的最后一个用户。但是我想看看是否可以找到修改文件的N-1用户
注意:我认为找到这样的用户的机会很小。在宣布这是死胡同之前,只想与专家确认。
示例:
在 1:00 AM ABC 修改了文件
在 2:00 AM XYZ 修改了同一个文件。
我知道 XYZ 已经修改了文件,如何找到谁在 XYZ 之前修改了文件(在本例中为 ABC)?
I am aware that stat or ls -lrt will give the last user who modified the file.
没有。修改文件不会改变其所有者。
一般文件系统不跟踪修改历史。如果此信息至关重要,则方法是
- 对于完整的文件层次结构:VCS(版本控制系统),例如 Git、Subversion、Mercurial、CVS,...
- 对于单个文件,RCS 或 SCCS,...
可以配置审核以跟踪对特定文件的更改。有一些限制:
- 必须先配置然后感兴趣的更改
- 审计守护进程往往会拒绝如果被告知监视一个已被删除的文件。
不过,它还是很有用的。寻找 auditctl
。以下是讨论该主题的一些有用链接:
无法跟踪用户详细信息,例如通过特定命令修改文件的用户名。只有我们可以通过 ls -l.
查看分配给文件的用户名一个可以使用的技巧是(这只适用于最近的修改)你可以检查文件的最后修改时间,并与用户的登录时间交叉检查。您也许可以缩小列表范围。
- 使用
stat
命令(例如:stat,See this) - 找到
Modify
时间 - 使用
last
命令查看登录历史(see this) - 将 log-in/log-out 时间与文件的
Modify
时间戳进行比较
这不会一直有效,但您可以缩小结果范围。