linux文件的三个时间

linux文件的三个时间

Scroll Down

一、文件的三个时间

不知道各位有没有听说过这样一句话:linux中的一切皆为文件,所以文件的重要性不言而喻。而文件的安全离不开文件的三个时间,即access time(atime)、modify time(mtime)、change time(ctime)。

  1. atime:文件被读取/访问后更新该时间
  2. mtime:文件内容/数据被修改后更新该时间
  3. ctime:文件权限/属组/属主/文件系统属性被修改后更新该时间
文件系统属性是指:size、inode、blocks

作为linux的使用者必须知道文件的三个时间对于安全的重要性。想要了解哪些文件做了修改,哪些文件被查看了,哪些文件变动了,变动的时间是什么,我们可以通过stat命令查看。stat命令主要作用就是查看某个文件的这三个时间

stat 文件

20201014213715

二、三个时间的自动修改

当你使用cat、more、less、head、tail读取/访问某个文件,就会触发atime时间的修改:

  1. 如下图,原本.c.txt文件的三个时间
    20201014214323

  2. cat命令读取该文件后,再次查看三个时间
    20201014214415

stat、ls查看文件不会触发atime修改

当你使用chmod、chown命令时会触发修改ctime:

  1. 如下图,原本.c.txt文件的三个时间
    20201014214612

  2. chmod命令更改权限后,再次查看三个时间
    20201014214711

当你使用vim、echo命令时会触发修改mtime:

  1. 如下图,原本.c.txt文件的三个时间
    20201014214846

  2. 编辑该文件后,查看三个时间
    20201014214900

20201014214935

我在实验的时候发现echo会对文件的mtime和ctime进行修改,而vim会对文件的三个时间都做出修改。为什么vim会对三个时间做出修改,因为修改文件会更改文件的文件属性,比如size,所以atime和ctime都会修改,而echo并没有打开文件,所以就没有修改atime,只修改了mtime和ctime

三、三个时间的人为修改

除了文件系统的在某些命令的作用下,会自动修改三个时间外,我们可以人为的去修改两个时间(即atime和mtime),ctime是不会修改的。使用touch命令可以修改。

touch [参数] 文件
-a:仅修改atime
-m:仅修改mtime
-d:同时修改atime和mtime

因为ctime的不可修改,这让我们容易判断黑客进入linux服务器后,对哪些文件进行的内容的增加和修改,权限的赋予等等。我们通过ctime来做一定的安全性判断和入侵排查。