![赋予一组要备份的文件什么样的安全权限?](https://linux22.com/image/629618/%E8%B5%8B%E4%BA%88%E4%B8%80%E7%BB%84%E8%A6%81%E5%A4%87%E4%BB%BD%E7%9A%84%E6%96%87%E4%BB%B6%E4%BB%80%E4%B9%88%E6%A0%B7%E7%9A%84%E5%AE%89%E5%85%A8%E6%9D%83%E9%99%90%EF%BC%9F.png)
在我们的服务器上,有许多用户(即客户端)需要备份他们的代码。他们的文件权限通常为650
用户和组user:user
(其中user
是实际用户名)。
在 crontab 中,我们有一个用户backup
,它通过 tarsnap 备份所有所需的文件路径。问题是由于文件权限,backup
无法访问这些文件。我能想到四种解决方案:
- 将 cronjob 设置为以 root 身份运行。这是最简单的修复方法,但我不知道这里是否存在安全问题。
- 创建一个组,所有我们要备份的用户都
backup
属于该组。设置默认权限,将所有这些用户的组设置为该组...该backup
组似乎是组名的不错选择。不过这似乎有点困难。如何更改每个用户的默认权限,以便接触的每个文件都有用户user
和组backup
? - 修改我们要备份的所有文件的组权限。这也很容易,但这也意味着每次接触(即修改或创建)文件时,我们都必须修改组。不太理想。
- 使文件可供所有人阅读。这是一个安全问题吗?
什么样的配置合理,以便我可以轻松备份这些文件?
又想到了一个……
- 将用户添加
backup
到我希望备份的每个用户组。这解决了共享访问的问题。
在进行一些研究时,似乎/var/backups
和backup
用户的语义并不清楚。把备份放在/var/backups
但建议不要使用它进行用户备份,因为该行为没有记录(自 2001 年以来)。实际上,似乎很多进程都使用/var/backups
用户backup
(“用户”这个词并不是用来描述这种情况的正确词语……因为backup
它不是一个具有主目录的正确“用户”,等等),因此在推荐使用它时,我们并不是在提倡新的东西。
答案1
我认为你应该只运行 cronjob 就可以了root
原因:
您将避免由于用户将权限设置为 700 之类的原因而导致文件未备份的情况。例如,如果我没记错的话,ssh 密钥必须具有此权限,否则 SSH 会拒绝使用它们。在执行备份时,
root
您将始终知道您复制了所有文件。如果您将用户设为同一备份组的一部分,他们将能够访问彼此的文件。我认为,上述重新配置使用
backup
组比简单地使用cronjob
用户可能导致太多安全问题root
。