为什么影子文件的 inode 值会发生变化?

mon*_*onu 2 inode files shadow

我为影子文件创建了一个硬链接。为了删除用户的密码,我在 vi 编辑器中打开了影子文件并删除了加密的密码然后保存。影子文件的 inode 值已更改。然后我更新了用户的密码,并再次更改了影子文件的 inode 值。为什么影子文件的 inode 在编辑/更新时会发生变化?

gee*_*aur 9

密码更改的通常实现包括硬链接/etc/shadow/etc/stmp(或一些类似的名称;link()在本地文件系统上是原子的,这构成了一种锁定文件机制),将一个新文件写入临时文件,然后将原始文件重命名/etc/shadow/etc/shadow-或类似并重命名临时到/etc/shadow。这样做是为了健壮性:在任何时候,原始shadow文件,未经修改,仍然存在并且可以轻松恢复,即使电源在错误的时间或同样糟糕的情况下发生故障(除非它破坏了整个磁盘)。