Linux

為什麼文件的 Inode 編號會發生變化而沒有其他變化?

  • June 13, 2019

今天我注意到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

一個文件的 Inode 怎麼會改變而沒有別的呢?

單程:

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

另一種可能性是文件是從備份系統恢復的(並且該備份系統恢復了時間戳)。

另一個會更新 inode 編號而不觸及內容的活動是一個sed -i不做任何更改的命令,因為sed -i使用一個臨時文件來保存結果,然後在最後將其重命名為原始文件。

引用自:https://unix.stackexchange.com/questions/524734