如何使用rsync备份服务器,在没有root登录的情况下保留所有权/权限


1

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

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

感谢任何提示,

OLI

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

Answers:


0

你不能。 Linux要求您具有root访问权限以将文件另存为除您之外的任何用户。唯一的解决方法是tarball,然后将tarball传输到服务器。


另外,只要设置,就可以在服务器上通过ssh启用root访问权限 authorized_keys 只允许特定命令( rsync 在这种情况下)。使用 command 选项 authorized_keys 设置特定键只允许特定命令,如 /usr/bin/rsync。但是,由于ssh密钥的安全性,如果他们可以访问根密钥,那么您手头上就会遇到更大的问题。
UtahJarhead

1

如果您只是没有root ssh访问权限,但在计算机上拥有sudo(8)权限,则可以执行此操作。

例如,通过推杆 username ALL= NOPASSWD:/usr/bin/rsync/etc/sudoers 在远程主机和做:

rsync -a -e "ssh" --rsync-path="sudo rsync" localdir/ username@remote.example.com:/remotedir

看到 这个答案 有关详细信息和更多选项。

此外,由于远程用户尚不存在,因此您需要使用 --numeric-ids 在你的 rsync 这样它们就会被保留(但是一旦你同步,你只会看到它们的用户名和组 /etc/passwd/etc/group, 当然)

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.