我目前正在尝试弄清楚如何使用 rsync 进行备份 - 但我遇到了一个小问题。出于安全原因,我已禁用通过 SSH 的 root 访问权限,并且每当我通过 SSH 登录以执行管理操作时,都必须使用我的特殊用户帐户(没有 sudo 权限)。然后,当我使用 SSH 登录时,我使用“su -”获取完全 root 访问权限,这样我就可以拥有完全 root 访问权限并可以执行所有特殊管理操作。我曾经使用以下内容用于从我的本地机器备份:
sudo rsync -rav root@MyServerIP:/ BackupFolder/
但是,由于我采用了新的安全措施(无法使用 root 进行 SSH),我无法使用它。而且由于我的特殊用户帐户没有 sudo 权限 - 我也无法使用它进行 rsync。
在“su -”或其他技巧之后,如何运行上面写的命令以使其具有执行此操作的权限?(我可以输入 root 密码来获取 root 访问权限 - 但是 root 不能直接从 SSH 登录)
答案1
您的备份作业应配置为“推送”作业,而不是“拉取”。通过服务器上的 root cron 启动备份作业,并让其将其文件 rsync 到备份目标。
答案2
你可以运行rsync 服务器在另一台计算机上。您可以指定允许的用户。
答案3
建议使用 rsync 的 ssh-key 认证,设置后“允许Root登录无需密码“在 ssh 配置中仅允许通过密钥认证进行 root 访问。
由于您提出请求,因此仅添加答案:)
答案4
您可以使用 --rsync-path 选项在远程主机上执行 sudo。如下所示:
rsync -rav --rsync-path='sudo rsync' root@MyServerIP:/ BackupFolder/
本质上,这会导致远程设备上的 rsync 以 root 身份运行。