从本地机器以root身份运行一个命令

我目前正在试图找出使用rsync进行备份 – 而且我遇到了一点麻烦。 为了安全起见,我已经禁止了通过SSH进行root访问,并且只要我用SSH进行pipe理位,就必须使用我的特殊用户帐户(没有sudo权限)。 然后,我使用“su – ”在SSHd中获得完全的根访问权限,这样我就可以拥有完全的root访问权限,并且可以执行所有特殊的pipe理员权限。 我曾经使用以下从我的本地机器备份:

sudo rsync -rav root@MyServerIP:/ BackupFolder/ 

但是,随着我的新安全措施(不能用root进行SSH),我不能使用这个。 由于我的特殊用户帐户没有sudo权限 – 我不能使用他rsync任一。

我怎么能运行我上面写的命令,之后“su – ”或其他一些技巧,使其有权这样做? (我可以inputroot密码来获得root权限 – 但是root不能直接从SSHlogin)

您的备份作业应configuration为“推”作业,而不是“拉”。 通过您的服务器上的root cron启动备份作业,并将其rsync同步到备份目标。

您可以在另一台计算机上运行rsync服务器 。 您可以指定允许的用户。

build议在sshconfiguration中设置“ PermitRootLogin without-password ”后,使用ssh-key进行rsync身份validation,只允许通过密钥身份validation进行root访问。

只要添加作为答案,因为你请:)

您可以使用–rsync-path选项在远程主机上执行sudo。 像这样的东西:

 rsync -rav --rsync-path='sudo rsync' root@MyServerIP:/ BackupFolder/ 

实质上,这会导致远程盒子上的rsync以root身份运行。