如何将文件同步到文件夹,使其无法被编写文件的用户删除?

如何将文件同步到文件夹,使其无法被编写文件的用户删除?

我正在向我的家庭环境添加长期存档。它是一个单独的 ZFS 文件系统,只有特殊用户才具有写入访问权限:其他用户具有只读访问权限。主要要求是只有特殊用户archive才能对文件系统进行写访问(使用 rsync),并且一旦文件被写入,就只能root删除它们(即一旦写入,文件将变为只读)全部用户)。

每个“会话”都会在存档中创建一个新的文件夹层次结构,使用当前日期时间作为文件夹名称。我在 ZFS 文件系统上利用压缩和重复数据删除来应对同一个文件可能被存档多次的情况。

我已经为此编写了一个 bash 脚本(我可以使用 python),但我在设置文件夹权限、umask 设置等以强制执行“一次写入”要求时遇到问题。

有任何想法吗?

答案1

主要问题是,您的用户archive需要对存档中的所有目录具有写入权限。这意味着具有正常的 Unix 权限,archive也能够删除它们。因此,您可能想要接受用户存档也具有删除功能。

将 umask 设置为 0022 应该archive使每个人都可读,并且不允许任何人删除文件。您可能想查看rscync参数--no-perms--no-owner--no-group,如果您还没有的话。

相关内容