ファイルのinode番号は変更されますが、他のものは変更されないのはなぜですか?

ファイルのinode番号は変更されますが、他のものは変更されないのはなぜですか?

今日、私は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をどのように変更できますか?

答え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

もう1つの可能性は、ファイルがバックアップシステムから復元されたことです(そしてバックアップシステムはタイムスタンプを復元しました)。

内容に触れることなくinode番号を更新するもう1つのアクティビティは、一時ファイルを使用して結果を保存し、最後に元のファイルに名前が変更されたためにsed -i変更しないコマンドです。sed -i

関連情報