如何使用 rsync 备份服务器,无需 root 登录即可保留所有权/权限

如何使用 rsync 备份服务器,无需 root 登录即可保留所有权/权限

我正在设置一台备份服务器,希望每晚在该服务器上通过 ssh 运行 rsync 来备份其他服务器上的内容。我想设置 ssh 密钥以使其无需密码,但我想保留文件所有权和权限。需要备份的服务器上有许多用户,但备份服务器上不会全部存在这些用户。

最好的方法是什么?我猜备份工作需要以 root 身份连接到,但我不想在服务器上启用 root ssh 访问。

谢谢你的建议,

奥利

ps,所有服务器都运行 UBUNTU Server 12.04 LTS 并且位于大学防火墙后面。

答案1

你不能。Linux 要求你有 root 权限才能以除你之外的任何用户身份保存文件。唯一的解决方法是将其打包成 tarball,然后将 tarball 传输到服务器。

答案2

如果您没有 root ssh 访问权限,但是在机器上拥有 sudo(8) 权限,那么您可以这样做。

例如,通过在远程主机上输入并执行以下操作username ALL= NOPASSWD:/usr/bin/rsync/etc/sudoers

rsync -a -e "ssh" --rsync-path="sudo rsync" localdir/ [email protected]:/remotedir

这个答案了解详细信息和更多选项。

此外,由于用户尚不存在于远程,您需要--numeric-ids在您的rsync线路上使用,以便他们得到保留(但只有在同步后您才会看到他们的用户名和组,/etc/passwd当然/etc/group

相关内容