Рассмотрите этот сценарий:
Пользователь выполняет команду на файле. Этот файл становится 'используемым' теперь.
$ tail -f somefile.log
В другой оболочке пользователь удаляет файл.
$ rm somefile.log
Теперь, этот файл 'удален'. При значении единственного hardlink для файла не стало inode. При выполнении следующей команды можно все еще видеть файл, обозначенный, как 'удалено'.
$ lsof | grep somefile.log
Дисковое пространство, используемое somefile.log
не выпущен до пользовательских прерываний tail
команда в этом случае.
Мой вопрос, действительно ли возможно препятствовать тому, чтобы пользователи удалили файлы, которые используются во время попытки удаления (подобный Windows)? Действительно ли возможно использовать PAM для этого?
Нет никакого способа 'заблокировать' файлы или предотвратить их от модификации от пользователей, которые имеют полномочия сделать так.
, пока у пользователя есть полномочия файловой системы (write
полномочия, чтобы быть точным) для удаления файла, тогда они будут в состоянии удалить его. Необходимо будет использовать пользователей и полномочия файла, чтобы препятствовать тому, чтобы кто-то удалил файлы.
А именно, я посмотрел бы на следующие команды:
chmod
chown
chgrp
adduser
passwd
В окнах при открытии файла он будет заблокирован процессом и не может быть, удаляют или редактируют его до выпуска процесса это, что основная причина потребности перезапуска после каждого обновления в окнах.
Linux имеет другой механизм, которые разрешают удаление файла, в то время как его выполнение, и можно все еще использовать его, пока весь процесс с помощью него не завершается. Таким образом, вот преимущество, когда Вы обновляете нет никакой потребности перезагрузить.
при удалении файла в Linux он будет удален, когда все ссылки на этот файл будут удалены, поэтому если Вы хотите решить удаление, необходимо создать жесткие ссылки для этого файла или работу с полномочиями пользователя на этом файле.