我爲影子文件創建了一個硬鏈接。爲了刪除用戶的密碼,我在vi編輯器中打開了shadow文件,並刪除了加密的密碼,然後保存。陰影文件的inode值已更改。然後我更新了用戶的密碼,並再次更改了影子文件的inode值。爲什麼編輯/更新影子文件的索引節點會更改?爲什麼影子文件的inode值會改變?
4
A
回答
2
VI將數據保存在新文件中,然後取消鏈接或重命名舊的diretory條目。硬鏈接與舊鏈接相關。
這是確保保存數據一致性的兩種方法之一。
另一種方法是複製舊文件,然後覆蓋它。舊副本將有不同的inum,並且新保存的文件將與以前相同。
0
處理文件寫入的代碼會在寫入文件之前創建整個文件的副本,因爲它應該存在於磁盤上。一旦文件寫入磁盤並刷新後,它將被重命名爲正確的名稱(/ etc/shadow或/ etc/gshadow,用於組影子文件)。
這個問題不僅僅是數據的一致性。爲了使系統可用,必須存在少量文件,安全文件就是其中的一部分。目標是避免出現系統可能崩潰的情況,或者可能暫停相關命令(Ctrl-Z鍵或SIGSTOP ...),並且文件處於不安全狀態。 「不安全」還可以包含「不存在」 - 非原子重命名文件會留下/ etc/shadow文件根本不存在的時間間隔。
相關問題
- 1. 爲什麼「this」的值會改變。?
- 2. 爲什麼lodash _.without()會改變_的值?
- 3. 爲什麼分配的變量名會影響值的查找?
- 4. 爲什麼改變JQuery EasyUI的對象屬性會影響原始值?
- 5. 值數組的,爲什麼它不改變它的值不會改變
- 6. 爲什麼更改本地變量值會影響全局副本
- 7. 爲什麼更改.py文件不會影響django網站的行爲?
- 8. 這個局部變量的值爲什麼會改變?
- 9. 爲什麼在一個斷點後變量的值會改變?
- 10. 爲什麼Python中這兩個變量的值都會改變?
- 11. 爲什麼通過引用不會改變變量的值?
- 12. 爲什麼這個變量的值會改變?
- 13. 爲什麼我的變量值永遠不會改變?
- 14. 爲什麼打印一個變量會改變它的值?
- 15. 爲什麼matplotlib.pyploy.imshow會改變它的軸?
- 16. 爲什麼代碼中的小改動會影響exe文件的大小?
- 17. 爲什麼每個版本都會改變exe文件?
- 18. 更改inode行爲
- 19. 爲什麼更改innerText值也會改變innerHTML?
- 20. 爲什麼初始值會改變而不是對象值?
- 21. 爲什麼改變彎曲方向會改變孩子的身高?
- 22. 爲什麼VFS函數同時獲得結構inode和文件?
- 23. 爲什麼不能通過inode操作文件?
- 24. 什麼是Java中的影子變量?
- 25. 無法分配給<T擴展INode>類型變量的INode類型值。爲什麼?
- 26. 爲什麼源文件的名稱會影響編譯?
- 27. 爲什麼這種()會改變矢量的值?
- 28. 爲什麼「push ebp」會改變ebp的值?
- 29. 爲什麼Sql CE會改變我的unicode值?
- 30. 爲什麼y的值會根據x而改變?
我不認爲這個問題與編程有關。 – glglgl 2012-04-23 11:16:56