在任何地方授予用户读取权限 (Linux)

Jas*_*ett 4 linux backup permissions

我的服务器上有一个“备份”用户,需要在任何地方都拥有读取权限。这样做chown 444 -R / backup似乎不是正确的做法,那我该怎么办?

Gui*_*ume 18

在 Linux 下,如果您使用支持 ACL 的文件系统(我认为 ext3、ReiserFS、ZFS 可以),那么您可以为备份操作员用户设置读取和目录遍历权限。

假设您要备份 /home

  1. 您的分区应该使用“acl”选项安装(您可以使用mount -o remount,acl /home
  2. 安装 acl 工具(setfacl 和 getfacl)
  3. setfacl -R -m u:"Backup User":rx /home

如果您想确保新文件和目录也具有适当的权限,请设置默认 ACL :

  1. setfacl -R -m d:u:"Backup User":rx /home

显然,您可以使用更细粒度的方式来做到这一点(例如,如果您不想备份 gnupg 或 ssh 密钥,则无论如何都应受密码保护)

恕我直言,以 root 身份执行备份并不明智。首先,如果您无意中耗尽了磁盘空间,您可能会消耗到最后一个可用块,并使您的系统不稳定。其次,如果您不完全确定用于备份的脚本或命令,恶意用户可能会使您的备份递归,或者以 root 用户身份做令人讨厌的事情。

我个人使用 rsync 机制来同步副本上的服务器。我在大多数同步点上使用简单的组权限,除了我使用 ACL 的家

  • 最好在 `setfacl` 命令行中使用 `rX` 权限而不是 `rx`,因为后者会在所有文件上设置 `x`,即使是那些不可执行的文件。 (3认同)

Den*_*son 5

正确的方法不是更改文件权限。您应该使用sudo和/或 setuid 可执行文件。


Ben*_*oit 4

您正在混合两个命令:

  • chown 用于更改文件的所有者。示例:chown root:adm /etc/passwd

  • chmod 用于更改文件的权限。示例:chmod g+r myfile

无论您的目标是什么,您确实不希望备份用户拥有每个文件,并且您当然也不希望系统上的每个用户都有权读取系统的每个文件。

你的目标是什么?

  • 如果某些文件不能被其所有者以外的任何人读取,那么以 root 身份进行备份比创建一个在任何地方都具有读取权限的用户更好吗?以 root 身份备份似乎违反了最小权限原则,因为备份用户不需要写入或执行任何内容,只需读取。 (4认同)
  • 确切地!我不希望备份用户拥有每个文件,也不希望每个用户在任何地方都具有读取访问权限。出于某种原因,其他人无法理解这一点。我了解 chown 和 chmod 之间的区别。我只是希望备份用户能够以某种方式读取每个文件,以便它可以完成其工作。 (2认同)