Huc*_*kle 3 backup permissions rsync group
我正在为网络上的某些计算机设置自动备份作业。有一台服务器每天都会运行一个rsync
命令来备份其他每台计算机。我希望rsync
作业运行的用户能够读取每个人的主目录(包括敏感文件,如加密的秘密 SSH 密钥),但不能在系统上的任何地方写入(除了/tmp
)。我还想防止普通用户读取彼此的主目录,尤其是敏感部分。
我的第一个想法是创建一个仅包含备份用户的组。然后我会让用户将chgrp
他们的文件放到备份组中。不是成员本身,他们将无法读取彼此的文件,但备份用户可以读取他们想要备份的所有内容。
但是,用户不能chgrp
加入他们不属于的组。我无法将它们添加到组中,因为这将使用户能够读取彼此的主目录。
我曾考虑NOPASSWD
在sudoers
文件中为备份用户提供一个条目,允许他仅以rsync
root 身份运行所需的确切命令,但是如果我没有正确设置它,这似乎是灾难性的(如果有办法制作符号链接)到/etc/sudoers
并获取rsync
命令以将其用作目的地,例如)。
TL、DR:以 root 身份运行备份。rsync
通过sudo授权精确命令没有错,只要仔细查看参数即可;允许调用者指定参数是错误的。
如果您希望备份用户能够读取文件,请参阅允许用户读取其他一些用户的主目录。想法是创建文件系统的bindfs视图,该用户可以在其中读取所有内容。
但是文件级别并不是解决这个特定问题的最佳级别。通过做备份的问题rsync
是,他们是不一致的:如果用户更改file1
然后 file2
在备份过程中,但备份到达file2
之前file1
,则备份将包含旧版本file2
和新版本file1
。如果file2
是新版本的file1
和file1
被删除,这意味着这个文件根本不会出现在备份中,这显然是不好的。
此问题的解决方案是创建文件系统的快照,并从中运行备份。
根据您的快照技术,可能有一种方法可以确保用户可以读取快照。如果没有,请挂载快照并使用基于文件系统的通用解决方案。即使有,rsync 仍然存在问题,因为如果您以普通用户身份运行它,它将无法备份所有权。因此,如果您要备份多个用户的目录,则需要以 root 身份运行备份。
归档时间: |
|
查看次数: |
5183 次 |
最近记录: |