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

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

10 голосов
/ 31 августа 2010

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

Thx

Ответы [ 2 ]

15 голосов
/ 24 января 2011

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

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

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

1 голос
/ 31 августа 2010

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

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

Вы можете использовать что-то вроде syslog , чтобы сделать это.

...