![/root 目录的远程备份](https://linux22.com/image/537730/%2Froot%20%E7%9B%AE%E5%BD%95%E7%9A%84%E8%BF%9C%E7%A8%8B%E5%A4%87%E4%BB%BD.png)
我正在设置一个服务器,通过 SSH(pull)进行远程备份。如何/root
在不以用户身份登录的情况下复制目录root
?
答案1
将您的备份用户添加到为此目的创建的全新组中,并使该组成为 /root 下所有内容的组所有者
chgrp -R newgroup /root
或者制作一个小脚本,将 /root tar 到 STDOUT(例如,/usr/local/bin/tar-up-root)并配置您的 sudoers 以允许您的备份用户无密码运行该脚本:
backupuser ALL=(root) NOPASSWD: /usr/local/bin/tar-up-root
进而
ssh backupuser@host-to-backup "/usr/local/bin/tar-up-root" > /var/tmp/remote-root-backup.tar
或者在要备份的主机上,以 root 身份从 cron 运行一个脚本,该脚本将 root 的 tar 文件上传到备份用户所拥有的文件中,模式为 600(您不希望任何其他人能够读取此 tar 文件,或者您已经削弱了 /root 的安全性),然后让备份用户只需将此文件从要备份的主机上 scp 下来即可。
这些有什么好处吗?
答案2
将您的备份用户添加到 wheel 组,它将具有 root 权限。或者将其添加到权限较低的组,并授予该组对 /root 目录及其中所有文件的读取权限。