Answers:
如果您只是没有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, 当然)
authorized_keys只允许特定命令(rsync在这种情况下)。使用command选项authorized_keys设置特定键只允许特定命令,如/usr/bin/rsync。但是,由于ssh密钥的安全性,如果他们可以访问根密钥,那么您手头上就会遇到更大的问题。