Rsync - 保留所有者/组元数据,但不作为本地用户

Rsync - 保留所有者/组元数据,但不作为本地用户

我想要rsync我的服务器备份其内容。我想保留所有者/组,以便稍后可以使用备份恢复服务器。但是,服务器具有与我的本地计算机不同的用户和组集,因此使用本机用户没有意义。rsync出于安全考虑,我也不想以 root 身份运行。我该怎么做?

答案1

您可以编写一个脚本来保存每个文件的权限、用户、组,也许就像

getfacl -R / > /tmp/permissions.txt

如果需要的话可以恢复

setfacl --restore=permissions.txt

然后将包括 requests.txt 在内的所有内容 rsync 到备份主机上的普通用户帐户。

缺点是 Permissions.txt 可能无法 100% 与实际备份同步。

请注意,在普通用户帐户下保存具有错误权限的秘密文件也可能是一个安全问题!至少包含整个备份的目录应该只能由备份用户读取。

还有一个安全注意事项:原始主机上的 Permissions.txt 也应该受到保护,只能由 root 读取。

答案2

我无法提供不以 root 身份运行的解决方案,但我可以提供以下内容:

首先,如果您使用--numeric-ids它将保留 UID/GID。如果您使用rsynctar(或任何不与 UID/GID 混淆的东西)进行恢复,那就没问题了。

rsync -avP --numeric-ids

然而,不以 root 身份运行将会是一个问题,因为 Unix 需要root以另一个用户身份创建文件。您也许可以使用 selinux 授予命令写入任何文件的权限,但这相当复杂(尽管--fake-super会有帮助)

如果备份服务器使用root,而对方不使用root,是否能满足您的安全要求?

# run this on the backup host:
rsync -avP --numeric-ids user@SOURCEHOST:/path/to/files/. /path/to/dest/.

只要 root@BACKUPHOST 可以 ssh 到 user@SOURCEHOST,就可以了。嗯,大部分都很好。如果user无法访问文件,则不会备份该文件。根据您的情况,这可能不是问题。

相关内容