如何启用根帐户?我知道通常不建议这样做,但是我想设置一个非交互式脚本来使用rsync备份服务器。我可以使用,--rsync-path="sudo rsync"但随后我需要将我的sudo密码明确存储,这似乎比启用root帐户要糟糕得多。
如何启用根帐户?我知道通常不建议这样做,但是我想设置一个非交互式脚本来使用rsync备份服务器。我可以使用,--rsync-path="sudo rsync"但随后我需要将我的sudo密码明确存储,这似乎比启用root帐户要糟糕得多。
Answers:
mybackup在客户端和服务器上创建新的单独的用户帐户sudo passwd -l mybackup这些帐户的密码,以防止直接登录sudo,这些新帐户来运行一个非常具体的/usr/bin/rsync/ --some-long-command /from/here /to/there命令,作为根与NOPASSWD:在/etc/sudoers使用sudo visudosudo -u mybackup ssh-keygensudo -u crontab -e另一端以rsync使用ssh和键作为传输器运行遥控器这样,可以以root身份运行的唯一命令是您明确允许的命令,并且可以激活它的唯一远程用户是已安装的ssh密钥对的另一半的所有者,因为该密钥也已锁定了密码只能是拥有sudo访问权限的人,或者是您设置的crontab。
sudo rsync并允许用户选择传递给rsync的选项意味着,例如,用户可以使用rsync读取/写入/etc/sudoers文件,并授予自己完整的sudo访问权限。
您可以编辑/etc/sudoers以允许任何正在运行命令的用户(或所有用户)以root没有密码的方式运行它(使用rsync可能有点危险)。
您不能只运行整个命令/脚本/什么root?我假设这将通过cron运行,所以只需root通过以下方式添加作业:
sudo crontab -e
注意:您可以通过将cron命令包装在bash -e "..."大括号中来完成相当复杂的事情,或者只在单独的脚本中执行。假设它不是setuid'd,如果root(通过cron)运行它,它将按照原样运行,root这样应该可以解决您的权限问题。
sudo普通用户运行该脚本。这比仅仅允许更为安全rsync。
您可以(但不应)使用以下命令为根用户提供密码:
sudo passwd root
编辑:Setuid位不适用于脚本。否则,您可以在备份程序上使用setuid位。
sudo chown root backup
sudo chmod u+s backup
也许,您甚至想将备份作为cron作业运行?
sudo whoami返回,根),所以只sudo passwd需要。