![拥有一个能够读取所有内容的“备份”用户来使用 rsnapshot 创建备份的正确方法是什么?](https://linux22.com/image/1346302/%E6%8B%A5%E6%9C%89%E4%B8%80%E4%B8%AA%E8%83%BD%E5%A4%9F%E8%AF%BB%E5%8F%96%E6%89%80%E6%9C%89%E5%86%85%E5%AE%B9%E7%9A%84%E2%80%9C%E5%A4%87%E4%BB%BD%E2%80%9D%E7%94%A8%E6%88%B7%E6%9D%A5%E4%BD%BF%E7%94%A8%20rsnapshot%20%E5%88%9B%E5%BB%BA%E5%A4%87%E4%BB%BD%E7%9A%84%E6%AD%A3%E7%A1%AE%E6%96%B9%E6%B3%95%E6%98%AF%E4%BB%80%E4%B9%88%EF%BC%9F.png)
我想使用 rsnapshot 将我的本地计算机以及两台远程计算机备份到便携式存储设备。我的计划是rsnaphot
在本地计算机上使用,backup
在远程计算机上创建一个用户,并让我的本地 rootbackup
通过 ssh 公钥访问该帐户。我不想启用 root 登录,我认为这可能是一种安全功能。
那么问题来了:远程备份用户应该能够读取尽可能多的文件。我该如何实现这一点?我可以将此用户添加到每个现有组中,这样他就可以读取每个组可读的文件。但这样一来,该用户也可以写入、删除……这些文件。或者我可以将每个文件的组更改为backup
或类似名称,但这当然太具侵略性,而且非常疯狂。
将本地 root 的公钥复制到远程 root 帐户并启用 root 登录是最简单的方法,对吧?我应该这么做吗?
如何正确完成此操作?
答案1
http://www.rsnapshot.org/howto/using-rsnapshot-and-ssh.html (网络档案)对我帮助很大。我最终root
在远程机器上使用,并在本地机器上使用 root 权限(当然sudo
是通过)。
这个想法是拥有多个密钥,并将密钥限制为某些命令。例如,我配置了我的远程主机,使其不允许root
登录,但允许执行某个命令(在我的情况下,我认为它是 rsync,我不得不承认我只是validate-rsync
按照链接文档中的建议使用了脚本,没有想太多)如果使用公钥进行身份验证。所以即使有人有访问我的本地root
帐户,无法直接登录(是的,他也许可以 rsync 损坏的文件等,还会损坏等等allowed_keys
)。
目前,我认为这是可用性和安全性之间的最佳权衡。