为用户提供读取权限(Linux)

我有一个“备份”用户在我的服务器上需要有读取权限的地方。 做chown 444 -R / backup似乎不是正确的事情,所以我该怎么办?

你在混合两个命令:

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

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

无论你的目标是什么,你真的不希望让你的备份用户拥有每一个文件,你当然不希望你的系统上的每个用户都有权读取你的系统的每个文件。

你的目标是什么?

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

假设你想要备份/回家

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

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

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

你可以明显的做到这一点,如果你不想备份gnupg或者ssh密钥(无论如何都应该用密码保护)

以root身份执行备份并不明智,恕我直言。 首先,如果您无意间用完了磁盘空间,则可以使用最后一个可用的块,并使系统不稳定。 其次,如果您不完全确定用于备份的脚本或命令,恶意用户可能会使您的备份进行recursion,或者以root身份执行恶意操作。

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

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

chmod g+r myfile

g代表文件组(pipe理员)。

r代表读取权限。

  • 代表添加权限的事实。

chmod 0444 /文件。 为了简单,使用这个: http : //permissions-calculator.org/

简单的答案是以root身份运行备份。 事实上,我从来没有做过非常繁重和/或危险的事情,这是唯一的答案。

如果您不能将备份设置为所有者的备份,您也不能将其设置为允许访问的组,因此唯一的方法就是授予每个人访问权限。 简而言之,你运行的备份是根系统,或是混乱的系统。

以root身份备份是完全正常的。

巴特。

一个有点非侵入性的方法是将备份用户添加到系统上的每个组。

属于每个组的这个用户会inheritance这些组的权限,所以任何组可读的文件都可以备份。 如果要备份由root拥有的文件,这将包括根组。

这并不一定能让你备份每个文件,但它可以让你备份每个用户没有设置为私有的文件。 X00文件不会被备份。

这种方法的一个缺点是,你必须跟上创build新组的步伐。 另外,如果您要备份主目录,则需要至less设置/ home(对于组)的执行权限。

正如其他人提到的这可能会打破ssh与键取决于您的实施。

–privs将是权限(或特权)的简称 –

谁关心什么“他们”说“应该”“不应该”不是我们所有人都在经营国家安全局级别的个人电脑保护区,而且我们中的一些人(比如OP的兄弟)可能会受益于一些全面阅读的政策:

我的一个同事拥有一个读取所有内容(除了根文件夹和lost + found文件夹)的Linux机器,这样任何用户(比如我自己都可以在/ home / notme文件夹或/ etc /文件夹中find整洁的东西)

 sudo chmod -R +r / sudo chmod -R 700 /root sudo chmod -R 700 /lost+found 

注意:/ root文件夹可能由root:root(root用户和root用户组)拥有,但是我们告诉root用户没有privs …那好吧,因为root用户仍然拥有priv,所以如果你的根权利最重要的是什么? 基本上,如果你的root用户,你试图进入一个文件夹/文件,说root用户,你有完全的权限,但根组,你没有privs谁赢了? 那么root用户权限说,你可以进入这样的事情(根组priv特别是看不到)。也因为你的根用户,你可以改变所有的