今天我注意到 tripwire 认为某些 Apache 配置文件改变了昨天。我知道我没有对这些文件进行任何更改。
查看信息,发现只有Inode号发生了变化:
Property: Expected Observed
------------- ----------- -----------
Object Type Regular File Regular File
Device Number 2305 2305
* Inode Number 5770048 5771399
Mode -rw-r--r-- -rw-r--r--
Num Links 1 1
UID root (0) root (0)
GID root (0) root (0)
Size 1055 1055
Modify Time Mon 09 Oct 2017 04:54:54 PM PDT
Mon 09 Oct 2017 04:54:54 PM PDT
Blocks 8 8
CRC32 BSW2x+ BSW2x+
MD5 CqXESieHTV/33Ye6iuaHjk CqXESieHTV/33Ye6iuaHjk
一个文件的索引节点怎么可能发生变化而没有其他变化呢?
答案1
单程:
cp -p file file.new && mv file.new file
例如:
$ ls -li file
12289 -rw-r--r-- 1 jeff jeff 0 Jun 13 14:24 file
$ cp -p file file.new && mv file.new file
$ ls -li file
12292 -rw-r--r-- 1 jeff jeff 0 Jun 13 14:24 file
另一种可能性是文件是从备份系统恢复的(并且备份系统恢复了时间戳)。
另一个更新索引节点号而不触及内容的活动是sed -i
不进行任何更改的命令,因为sed -i
使用临时文件来存储结果,然后在最后将其重命名为原始文件。