Oli*_*nde 10 rsync user-management
如何启用 root 帐户?我知道通常不推荐这样做,但我想设置一个非交互式脚本来使用 rsync 备份我的服务器。我可以使用,--rsync-path="sudo rsync"但随后我需要将我的 sudo 密码以明文形式存储,这似乎比启用 root 帐户要糟糕得多。
sla*_*den 10
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。
您可以编辑/etc/sudoers以允许任何正在运行命令的用户(或所有用户)在root没有密码的情况下运行它(使用 rsync 可能有点危险)。
你不能只运行整个命令/脚本/随便什么root?我假设这将通过 cron 运行,因此只需root通过以下方式添加作业:
sudo crontab -e
Run Code Online (Sandbox Code Playgroud)
注意:您可以通过将 cron 命令包装在bash -e "..."大括号中或仅在单独的脚本中执行来执行相当复杂的操作。假设它不是 setuid'd,如果root运行它(通过cron),它将运行,root这样应该可以解决您的权限问题。
你可以(但不应该)给 root 用户一个密码
sudo passwd root
Run Code Online (Sandbox Code Playgroud)
编辑:Setuid 位不适用于脚本。否则,您可以在备份程序上使用 setuid 位。
sudo chown root backup
sudo chmod u+s backup
Run Code Online (Sandbox Code Playgroud)
也许,您甚至想将备份作为 cron 作业运行?
| 归档时间: |
|
| 查看次数: |
6918 次 |
| 最近记录: |