2

У меня есть приложение, которое создает временные файлы и быстро удаляет их. Но я хотел бы сохранить эти файлы, есть ли способ сделать это в Linux?

2 ответа2

1

Я нашел достаточно хорошее решение с использованием Sticky Bit и Inotify вместе взятых. Идея проста: если мы установим залипание в каталоге, пользователи не смогут удалять файлы, принадлежащие другим пользователям, но все равно смогут писать в них, если права доступа к файлу установлены правильно.

Итак, мы делаем следующее:

$ chmod a+t dir
$ while inotifywait -e close_write dir; do chmod a+rwx dir/*; sudo chown root:root dir/*; done

Первая строка устанавливает липкий бит. Второй постоянно ожидает изменений в нашем каталоге, и, как только приложение завершает запись в файл, оно позволяет всем пользователям получить к нему доступ, а затем меняет владельца этого файла. Владелец не должен быть пользователем root, он также будет работать с любым другим пользователем.

Таким образом, в итоге мы получаем доступные для записи файлы, которые приложение не может удалить. Именно то, что мне было нужно.

1

Да, вы можете использовать возможности каждого из процессов в Security-Enhanced Linux, который был частью Ubuntu в течение последних двух лет. Будьте готовы к крутой кривой обучения.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .