仅附加文件

Ben*_*Ben 11 file-permissions

我正在尝试实现一个文件.每个事件只会在文件中附加一行.到目前为止,这是毫无疑问的.困难的部分是几个用户应该能够向该文件添加条目,但没有人应该能够修改或删除现有文件.我能以某种方式使用文件访问权限强制执行此操作吗?我正在使用Linux.

谢谢

小智 16

在linux上,您可以选择使用system append-only标志.这并非在所有文件系统上都可用.

使用chattr实用程序设置此属性,您应该查看手册页.只有root才能设置此属性.

在Ubuntu上你可能最终会做:sudo chattr +一个文件名


Pau*_*bel 1

经典的权限(读取、写入和执行)无法帮助您实现这一目标。如果您具有写入权限,则可以删除该文件及其中的所有行。

您需要某种程序来仲裁文件访问。一种方法是打开一个 fifo 并让生产者写入 fifo。如果写入不太大(4k 写入在我的 Linux 机器上是原子的),则不同的写入不会混合。通过使消费者进程拥有生产者没有的特权,生产者将无法看到最终结果。

您可以使用syslog之类的工具来执行此操作。