当远程主机需要 root 权限时如何使用 rsync?

当远程主机需要 root 权限时如何使用 rsync?

由于 Ubuntu 不允许使用 root 密码和登录,rsync当远程主机需要 root 权限时,如何使用 ssh 将文件夹和文件从本地主机移动到远程主机?

答案1

在 Ubuntu 中启用 root 登录并非不可能,只是不建议这样做。(请参阅这个答案了解操作方法)

或者,可以授予 rsync 用户 root 权限(请参阅这里

答案2

一种方法是让远程端的用户无需密码即可使用 sudo 访问 rsync 命令。如果用户名为 rsyncguy,则可以/etc/sudoers使用以下命令编辑文件以包含以下行sudo visudo

rsyncguy ALL=NOPASSWD: /usr/bin/rsync

这种方法本身存在安全风险,即该用户现在可以以 root 身份执行任何 rsync 命令,包括从其他服务器执行 rsync pull。为了缓解这种情况,您可以使用所需的精确 rsync 命令(如果可能保持不变)。

启用 sudo 访问后,您的 rsync 命令应始终包含 `--rsync-path="sudo rsync",以确保在远程端使用 sudo。

为该用户设置无密码的基于 SSH 密钥的身份验证也很有用。设置 SSH 密钥后,您可以在远程服务器上使用以下命令禁用 rsyncguy 的正常密码登录:

sudo passwd -l rsyncguy

这将增加另一层安全性。

相关内容