Я создал жесткую ссылку для теневого файла. Для удаления passwd пользователя я открыл теневой файл в редакторе vi и удалил зашифрованный пароль и затем сохранил. Изменено значение inode теневого файла. Затем я обновил пароль пользователя и снова изменил значение inode теневого файла. Почему индекс теневого файла изменяется, когда он редактируется/обновляется?Почему изменяется значение inode теневого файла?
ответ
VI сохраняет данные в новом файле, а затем либо отключает, либо переименовывает старую запись. Жесткая ссылка связана со старой.
Это один из двух способов обеспечения согласованности данных для сохранения случая.
Другой способ - скопировать старый файл и затем перезаписать его. Тогда старая копия будет иметь различную сумму, а вновь сохраненный файл будет иметь то же самое, что и раньше.
Код, который обрабатывает запись в файле, создает копию всего файла, как он должен существовать на диске, перед тем как файл будет записан. После того, как файл был записан на диск и сброшен, он переименовывается в собственное имя (/ etc/shadow или/etc/gshadow, для групповых теневых файлов).
Проблема заключается не только в согласованности данных. Существует небольшое количество файлов, которые должны присутствовать, чтобы система могла использоваться, а некоторые файлы безопасности - файлы безопасности. Цель состоит в том, чтобы избежать ситуации, в которой может произойти сбой системы, или соответствующая команда может быть приостановлена (клавиша Ctrl-Z или SIGSTOP ...), и файлы находятся в небезопасном состоянии. «Insecure» также может включать «не существует» - неатомное переименование файла может оставить временной интервал, когда файл/etc/shadow вообще не существует.
- 1. Почему изменяется значение «this».?
- 2. Почему файлы не обрабатываются inode?
- 3. Почему изменяется значение этой переменной?
- 4. Почему изменяется значение возвращаемой переменной?
- 5. Почему значение изменяется вне метода?
- 6. Найти путь файла по inode
- 7. Имя файла Python из inode?
- 8. Почему значение флага не изменяется при чтении файла в Unix
- 9. Каталог Inode vs Regular File Inode
- 10. Почему идентификатор файла электронной таблицы изменяется?
- 11. Почему значение char изменяется во время вывода?
- 12. Почему значение x изменяется в этой программе?
- 13. Почему значение «C» изменяется в следующем коде?
- 14. Почему значение в этом словаре изменяется?
- 15. Почему значение указателя изменяется после нажатия?
- 16. Почему значение указателя изменяется в многопоточном malloc?
- 17. Почему значение переменной изменяется для всех объектов
- 18. Почему значение typeof null изменяется внутри цикла?
- 19. Почему значение атрибута ModelMap изменяется в jsp?
- 20. Почему значение переменной-члена класса изменяется?
- 21. Почему значение списка изменяется, когда функция заканчивается?
- 22. Почему значение указателя изменяется после его возврата?
- 23. Почему значение y изменяется на основе x?
- 24. Почему возвращаемое значение доходности изменяется таким образом?
- 25. Почему свойство NSString изменяется на недопустимое значение?
- 26. Почему значение изменяется даже в функции const?
- 27. Почему значение изменяется в строковом литерале
- 28. Почему значение не изменяется в rowdataound
- 29. Почему значение изменяется после нажатия кнопки отправки?
- 30. Почему значение `голосов` изменяется после db.Prepare?
Я не думаю, что этот вопрос связан с программированием. – glglgl