我有一个要求,将文件写入 Linux 文件系统,这些文件随后不能被覆盖、追加、以任何方式更新或删除。sudo 用户、root 或任何人都不能这样做。我试图满足金融服务记录保存条例 FINRA 17A-4 的要求,该条例基本上要求将电子文档写入 WORM(一次写入,多次读取)设备。我非常希望避免使用 DVD 或昂贵的 EMC Centera 设备。
是否有 Linux 文件系统,或者 SELinux 是否支持在写入后立即(或至少很快)使文件完全不可变的要求?或者有人知道我可以使用 Linux 权限等在现有文件系统上强制执行此操作的方法吗?
我知道我可以设置只读权限和不可变属性。但我当然希望 root 用户能够取消设置这些权限。
我考虑将数据存储到已卸载然后以只读方式重新安装的小卷中,但后来我认为 root 仍然可以卸载并重新安装为可写。
我正在寻找任何聪明的想法,最坏的情况是我愿意做一些编码来“增强”现有的文件系统来提供这一点。假设有一个文件系统是一个很好的起点。并安装一个精心配置的 Linux 服务器来充当这种类型的网络存储设备,不做任何其他事情。
毕竟,文件加密也会很有用!
答案1
您可以使用 OpenAFS 和只读卷来实现这一点。但是,要使其工作,需要安装大量基础设施,并且可能无法满足要求。
基本上,有一个可写卷和一个或多个该卷的只读副本。在释放可写卷之前,客户端无法更改只读副本。释放卷需要管理员权限。
似乎任何解决方案都需要专门的硬件或复制专门硬件语义的网络文件系统。
答案2
看来,如果不编写自定义文件系统/内核代码,就无法做到这一点。
一个可行的解决方案似乎是使用带有 WORM 存档存储选项的 Amazon Glacier。根据 AWS 官方博客:https://aws.amazon.com/blogs/aws/glacier-vault-lock/
[...] 新的 Glacier 功能允许您使用各种合规性控制锁定您的保管库,这些控制旨在支持这一重要记录保留用例。您现在可以在保管库上创建保管库锁定策略并将其锁定。一旦锁定,策略将无法覆盖或删除。Glacier 将强制执行该策略,并根据其中指定的控制(包括预定义的保留期)保护您的记录。
锁定保管库锁定策略后,您无法更改它。但是,您仍然可以使用单独的保管库访问策略来更改和配置与合规性无关的访问控制。例如,您可以向业务合作伙伴或指定的第三方授予读取权限(有时法规会要求这样做)。
对我来说,这正是我所需要的,无需花费 NetApp 或 EMC 硬件的费用,同时似乎满足了记录保留要求。