赋予一组要备份的文件什么样的安全权限?

赋予一组要备份的文件什么样的安全权限?

在我们的服务器上,有许多用户(即客户端)需要备份他们的代码。他们的文件权限通常为650用户和组user:user(其中user是实际用户名)。

在 crontab 中,我们有一个用户backup,它通过 tarsnap 备份所有所需的文件路径。问题是由于文件权限,backup无法访问这些文件。我能想到四种解决方案:

  1. 将 cronjob 设置为以 root 身份运行。这是最简单的修复方法,但我不知道这里是否存在安全问题。
  2. 创建一个组,所有我们要备份的用户都backup属于该组。设置默认权限,将所有这些用户的组设置为该组...该backup组似乎是组名的不错选择。不过这似乎有点困难。如何更改每个用户的默认权限,以便接触的每个文件都有用户user和组backup
  3. 修改我们要备份的所有文件的组权限。这也很容易,但这也意味着每次接触(即修改或创建)文件时,我们都必须修改组。不太理想。
  4. 使文件可供所有人阅读。这是一个安全问题吗?

什么样的配置合理,以便我可以轻松备份这些文件?


又想到了一个……

  1. 将用户添加backup到我希望备份的每个用户组。这解决了共享访问的问题。

在进行一些研究时,似乎/var/backupsbackup用户的语义并不清楚。把备份放在/var/backups但建议不要使用它进行用户备份,因为该行为没有记录(自 2001 年以来)。实际上,似乎很多进程都使用/var/backups用户backup(“用户”这个词并不是用来描述这种情况的正确词语……因为backup它不是一个具有主目录的正确“用户”,等等),因此在推荐使用它时,我们并不是在提倡新的东西。

答案1

我认为你应该只运行 cronjob 就可以了root

原因:

  • 您将避免由于用户将权限设置为 700 之类的原因而导致文件未备份的情况。例如,如果我没记错的话,ssh 密钥必须具有此权限,否则 SSH 会拒绝使用它们。在执行备份时,root您将始终知道您复制了所有文件。

  • 如果您将用户设为同一备份组的一部分,他们将能够访问彼此的文件。我认为,上述重新配置使用backup组比简单地使用cronjob用户可能导致太多安全问题root

相关内容