在我们的服务器上,我们有许多需要备份代码的用户(即客户端)。他们的文件权限通常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
不是具有主目录的正确“用户”等)所以在推荐它的使用,我们不是在提倡新事物。
我认为你真的应该在下运行 cronjob
root
原因:
由于用户将权限设置为 700 之类的权限,您将避免未备份的文件。例如,ssh 密钥必须具有此权限,否则如果我没记错,SSH 将拒绝使用它们。在您进行备份时,
root
您将始终知道您复制了所有文件。如果您使用户成为同一备份组的一部分,他们将能够访问彼此的文件。
backup
我认为说重新配置使用group 而不是简单地cronjob
用于 user引起的安全问题太多了root
。