我为影子文件创建了一个硬链接。为了删除用户的密码,我在vi编辑器中打开了shadow文件,并删除了加密的密码,然后保存。阴影文件的inode值已更改。然后我更新了用户的密码,并再次更改了影子文件的inode值。为什么编辑/更新影子文件的索引节点会更改?为什么影子文件的inode值会改变?
4
A
回答
2
VI将数据保存在新文件中,然后取消链接或重命名旧的diretory条目。硬链接与旧链接相关。
这是确保保存数据一致性的两种方法之一。
另一种方法是复制旧文件,然后覆盖它。旧副本将有不同的inum,并且新保存的文件将与以前相同。
0
处理文件写入的代码会在写入文件之前创建整个文件的副本,因为它应该存在于磁盘上。一旦文件写入磁盘并刷新后,它将被重命名为正确的名称(/ etc/shadow或/ etc/gshadow,用于组影子文件)。
这个问题不仅仅是数据的一致性。为了使系统可用,必须存在少量文件,安全文件就是其中的一部分。目标是避免出现系统可能崩溃的情况,或者可能暂停相关命令(Ctrl-Z键或SIGSTOP ...),并且文件处于不安全状态。 “不安全”还可以包含“不存在” - 非原子重命名文件会留下/ etc/shadow文件根本不存在的时间间隔。
相关问题
- 1. 为什么改变一个值不会改变Scipy Spline的值?
- 2. 为什么分配的变量名会影响值的查找?
- 3. 为什么改变JQuery EasyUI的对象属性会影响原始值?
- 4. 为什么通过引用不会改变变量的值?
- 5. 为什么我的变量值永远不会改变?
- 6. 为什么打印一个变量会改变它的值?
- 7. 为什么matplotlib.pyploy.imshow会改变它的轴?
- 8. 为什么代码中的小改动会影响exe文件的大小?
- 9. 为什么每个版本都会改变exe文件?
- 10. 更改inode行为
- 11. 为什么改变弯曲方向会改变孩子的身高?
- 12. 什么是Java中的影子变量?
- 13. 为什么源文件的名称会影响编译?
- 14. 为什么不能通过inode操作文件?
- 15. 为什么VFS函数同时获得结构inode和文件?
- 16. 无法分配给<T扩展INode>类型变量的INode类型值。为什么?
- 17. 为什么y的值会根据x而改变?
- 18. 为什么Sql CE会改变我的unicode值?
- 19. 为什么“push ebp”会改变ebp的值?
- 20. 为什么$ scope会改变整个页面的值?
- 21. 为什么这种()会改变矢量的值?
- 22. 为什么rails会改变我的占位符hashtag值?
- 23. 的Javascript:为什么复制值,但不会改变
- 24. 为什么输入宽度会改变?
- 25. 这个Point为什么会改变?
- 26. 为什么IE会改变颜色?
- 27. 为什么当我没有给它赋值时变量的值会改变?
- 28. Lua:为什么改变一个变量的值也会改变另一个变量的值呢?
- 29. 为什么我在TextView中的文本不会改变颜色?
- 30. 为什么Parallel.ForEach会改变其线程的文化?
我不认为这个问题与编程有关。 – glglgl 2012-04-23 11:16:56