Добавить только файл

Я пытаюсь реализовать файл. Каждое событие просто добавляет одну строку в файл. Пока это нелегко. Жесткая часть состоит в том, что несколько пользователей должны иметь возможность добавлять записи в этот файл, но никто не должен иметь возможность изменять или удалять существующие. Могу ли я каким-то образом применять это, используя права доступа к файлам? Я использую Linux.

спасибо

Ответ 1

В linux вы можете использовать только флаг append-only. Это не доступно для всех файловых систем.

Этот атрибут устанавливается с помощью утилиты chattr, и вы должны просмотреть страницу руководства. Только root может установить этот атрибут.

На Ubuntu вы, вероятно, в конечном итоге выполните: sudo chattr + имя файла

Ответ 2

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

Вам понадобится какая-то программа для арбитража доступа к файлу. Одним из способов было бы открыть фило и попросить продюсеров написать на фило. Если записи не слишком большие (записи 4k являются атомарными в моем linux-блоке), разные записи не будут смешиваться. У того, что у потребительского процесса есть привилегии, которые у производителей нет, производители не смогут увидеть окончательные результаты.

Для этого вы можете использовать что-то вроде syslog.