用户在Linux中修改文件的历史记录

用户在Linux中修改文件的历史记录,linux,unix,kernel,ls,stat,Linux,Unix,Kernel,Ls,Stat,我想知道是否有可能列出所有修改文件的人。我知道stat或ls-lrt将给出最后一个修改文件的用户。但是我想知道是否有可能找到修改文件的N-1用户 注:我认为找到这样的用户的机会非常渺茫。我只是想在宣布这是一条死胡同之前与专家确认一下 例子: 凌晨1:00,ABC修改了文件 凌晨2:00,XYZ修改了相同的文件 我知道XYZ已经修改了文件,如何找到在XYZ之前修改文件的人(在本例中是ABC) 我知道stat或ls-lrt将给出最后一个修改文件的用户 否。修改文件不会更改其所有者 一般来说,文件系统

我想知道是否有可能列出所有修改文件的人。我知道
stat或ls-lrt
将给出最后一个修改文件的用户。但是我想知道是否有可能找到修改文件的N-1用户

注:我认为找到这样的用户的机会非常渺茫。我只是想在宣布这是一条死胡同之前与专家确认一下

例子: 凌晨1:00,ABC修改了文件
凌晨2:00,XYZ修改了相同的文件

我知道XYZ已经修改了文件,如何找到在XYZ之前修改文件的人(在本例中是ABC)

我知道stat或ls-lrt将给出最后一个修改文件的用户

否。修改文件不会更改其所有者

一般来说,文件系统不跟踪修改历史记录。如果这一信息至关重要,那么解决之道是

  • 对于完整的文件层次结构:一个VCS(版本控制系统),如Git、Subversion、Mercurial、CVS等等
  • 对于单个文件,RCS或SCC

  • 可以将审核配置为跟踪特定文件的更改。有一些限制:

    • 必须在更改感兴趣的内容之前对其进行配置
    • 如果要求审核守护进程监视已删除的文件,审核守护进程往往会拒绝启动
    尽管如此,它还是有用的。查找
    auditctl
    。以下是一些讨论该主题的有用链接:


    无法跟踪用户详细信息,如通过特定命令修改文件的用户名。我们只能通过ls-l检查分配给文件的用户名。

    可以使用的一种方法是(这只适用于最近的修改)您可以检查文件的上次修改时间,并与用户的登录时间交叉检查。你也许可以缩小列表的范围

  • 使用
    stat
    命令(例如:stat,)
  • 查找
    修改
    时间
  • 使用
    last
    命令查看历史记录()
  • 将登录/注销时间与文件的
    Modify
    时间戳进行比较

  • 这不会一直有效,但您可以缩小结果范围。

    stat
    ls
    不列出修改文件的人,而是列出文件的所有者。如果没有版本控制系统,你将无法获得你想要的信息。我认为这是不可能的。这就是
    SCM
    系统,如
    Git
    的用途。谢谢我想检查一下,得到了我的答案。谢谢你澄清。。。。。