![是否有任何针对触摸日期/时间伪造的缓解措施?](https://linux22.com/image/51639/%E6%98%AF%E5%90%A6%E6%9C%89%E4%BB%BB%E4%BD%95%E9%92%88%E5%AF%B9%E8%A7%A6%E6%91%B8%E6%97%A5%E6%9C%9F%2F%E6%97%B6%E9%97%B4%E4%BC%AA%E9%80%A0%E7%9A%84%E7%BC%93%E8%A7%A3%E6%8E%AA%E6%96%BD%EF%BC%9F.png)
当我开始使用 Linux 时,我一直用来touch -t
更改文件的时间,是否有任何针对touch
日期/时间伪造的缓解措施?
就像,即使在使用触摸之后,也会回显原始创建的日期和时间。
答案1
看这堆栈溢出答案:
您可以使用获取创建时间debugfs
,但需要 root 权限才能执行此操作。我还认为并非所有文件系统都将其存储在 indode 结构中。保证存在的就是 inode 更改时间 (ctime)、文件修改时间 (mtime) 和上次访问时间 (atime,如果文件系统使用 挂载,则不能保证这是正确的noatime
)。
答案2
文件的修改时间可以由文件的所有者自由选择。您可以检查文件的 inode 更改时间 (ctime):该时间只能设置为当前时间,并且对文件元数据的任何修改(例如更改 mtime)都会将 ctime 重置为当前时间。
如果你想检查一个文件自某个日期以来是否没有更改,你可以检查它的 ctime。但由于非恶意原因,ctime 可能会更新,例如属性更改、移动或复制文件、从备份恢复……
当然,root用户可以通过更改系统时间或直接操作文件来绕过这个问题。
测试文件在过去某个时间的状态的可靠方法是查阅当时创建的快照或备份。