一次写入,使用Linux文件系统读取多个(WORM)

我有要求将文件写入Linux文件系统,不能随后覆盖,附加到,以任何方式更新或删除。 不是由一个sudo-er,根,或任何人。 我试图满足FINRA 17A-4的金融服务条例的要求,FINRA 17A-4基本上要求电子文件写入WORM(写入一次,读取很多)设备。 我非常想避免使用DVD或昂贵的EMC Centera设备。

是否有Linux文件系统,或者SELinux是否支持在写入之后立即(或至less很快)使文件完整不变的要求? 或者有人知道我可以使用Linux权限等现有的文件系统上执行此方法?

我明白,我可以设置只读权限和不可变属性。 但是我当然希望root用户能够取消这些设置。

我考虑将数据存储到未安装的小卷,然后以只读方式重新挂载,但是我认为root仍然可以卸载并重新挂载为可写入。

我正在寻找任何聪明的想法,最坏的情况下,我愿意做一点编码来“提升”现有的文件系统来提供这个。 假设有一个文件系统是一个很好的起点。 并且放置一个精心configuration的Linux服务器来充当这种types的networking存储设备,除此之外别无其他。

毕竟,文件上的encryption也是有用的!

    您可以使用OpenAFS和只读卷进行sorting。 要安装它,需要安装很多基础设施,但可能无法满足要求。

    http://www.openafs.org/

    基本上,卷有一个可写卷和一个或多个只读副本。 在释放可写卷之前,只读副本对客户端不可更改。 释放音量需要pipe理员权限。

    似乎任何解决scheme都需要专门的硬件或networking文件系统来复制专用硬件的语义。

    看来,没有编写自定义文件系统/内核代码,没有办法做到这一点。

    一个可行的解决scheme似乎是使用Amazon Glacier和WORM归档存储选项。 根据AWS官方博客: https : //aws.amazon.com/blogs/aws/glacier-vault-lock/

    一个新的冰川function,使您可以locking您的保险库与各种合规性控制,旨在支持这个重要的logging保留用例。 您现在可以在保险库上创build保险库locking策略并将其locking。 一旦locking,政策不能被覆盖或删除。 冰川将执行该政策,并将根据其中指定的控制(包括预定义的保留期限)保护您的logging。

    locking后,您不能更改保险库locking策略。 但是,您仍然可以使用单独的保pipe库访问策略来更改和configuration与合规性无关的访问控制。 例如,您可以授予对业务伙伴或指定第三方的读取权限(有时根据法规要求)。

    对我而言,这恰好提供了所需的function,而不需要NetApp或EMC硬件的费用,同时看起来能够满足logging保留要求。

    如果您只需要访问系统中的文件,用户无法覆盖它们,则可以挂载没有写入权限的远程卷。 最简单的方法是安装一个只读的samba / cifs共享。

    否则,如果您需要一种允许用户写入新文件(不能被覆盖或修改)的方法,则解决方法是使用FUSE curlftpfs挂载FTPpath。

    你可以用这些指令设置你的proftpd目录:

     AllowOverwrite off <Limit WRITE> DenyAll </Limit> <Limit STOR> AllowAll </Limit> 

    通过这种方式,新文件可以存储在挂载的目录中,但不能再被修改或删除。

    链接: CurlFtpFS , ProFTPD