파일의 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

또 다른 가능성은 파일이 백업 시스템에서 복원되었다는 것입니다(그리고 백업 시스템이 타임스탬프를 복원했습니다).

내용을 건드리지 않고 inode 번호를 업데이트하는 또 다른 활동은 임시 파일을 사용하여 결과를 저장하고 마지막에 원본 파일로 이름이 바뀌기 때문에 sed -i변경하지 않는 명령 입니다.sed -i

관련 정보