什么是一组安全的权限来给一组文件进行备份?

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

在crontab中,我们有一个用户backup ,通过tarsnap备份所有需要的文件path。 问题是,由于文件权限, backup无法访问这些。 我可以想到四个解决scheme:

  1. 设置cronjob以root身份运行。 这是最简单的修复,但我不知道这里是否有安全问题。
  2. 创build一个我们想要备份和backup所有用户都属于的组。 设置默认权限,将所有这些用户的组设置为该组… backup组似乎是一个组名的好select。 这似乎有点困难。 如何更改每个用户的默认权限,以便每个碰到的文件都具有用户user和组backup
  3. 修改我们要备份的所有文件的组权限。 这也很容易,但也意味着每次文件被触摸(即修改或创build),我们将不得不修改组。 不理想。
  4. 使文件世界可读。 这是一个安全问题吗?

什么将是一个合理的configuration,以便我可以轻松地备份这些文件?


只是想到了一个…

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

在做一些研究的时候,好像/var/backups的语义和backup用户不清楚。 在/var/backups放置备份似乎并不危险,但由于该行为没有logging(从2001年开始),所以build议不要将其用于用户备份。 实际上,很多进程使用/var/backupsbackup用户(“用户”是错误的词来描述这个虽然…因为backup不是一个适当的“用户”与主目录等)所以在推荐使用它的时候,我们并不提倡新的东西。

我想你应该真的只是在root下运行cronjob

原因:

  • 您将避免由于用户设置权限为700的非备份文件。例如,ssh密钥必须具有此权限,或者如果我没有记错,SSH拒绝使用它们。 在root下进行备份时,您将始终知道您复制了所有文件。

  • 如果您让用户成为同一个备份组的一部分,他们将能够访问彼此的文件。 我认为使用backup组重新configuration导致的可能的安全问题太多,而不是简单地将cronjob用于root用户。