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

时间:2012-04-23 11:12:50

标签: linux

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

2 个答案:

答案 0 :(得分:2)

VI将数据保存在新文件中,然后取消链接或重命名旧的diretory条目。硬链接与旧链接相关联。

这是确保案例保存失败的数据一致性的两种方法之一。

另一种方法是复制旧文件然后覆盖它。然后,旧副本将具有不同的inum,并且新保存的文件将与之前相同。

答案 1 :(得分:0)

处理文件写入的代码会在写入文件之前创建整个文件的副本,因为它应该存在于磁盘上。将文件写入磁盘并刷新后,将其重命名为正确的名称(/ etc / shadow或/ etc / gshadow,用于组影子文件)。

问题不仅仅是数据的一致性。为了使系统可用,必须存在少量文件,并且安全文件是其中的一部分。目标是避免出现系统崩溃的情况,或者可以暂停相关命令(Ctrl-Z键或SIGSTOP ...)并且文件处于不安全状态。 "不安全"还可以包括"不存在" - 非原子重命名文件可能会留下/ etc / shadow文件根本不存在的时间间隔。