2012-04-23 51 views
4

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

+0

我不认为这个问题与编程有关。 – glglgl 2012-04-23 11:16:56

回答

2

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

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

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

0

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

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

相关问题