对特定子文件夹中的所有文件的只读访问权限

对特定子文件夹中的所有文件的只读访问权限

我有一个位于“/home/.../reboot/”的特定文件夹。我有一系列用户需要对其中不断变化的文件进行只读访问。我的问题是相同的用户无权查看任何父目录文件。

现在,我唯一能做的就是通过更改 etc/passwd 文件将它们的起始文件夹位于“/home/.../reboot/”;我需要阻止对其他文件夹的所有访问。我怎样才能只给他们访问这个目录的权限?

答案1

在不同位置创建该目录的只读视图。你可以这样做绑定文件系统

假设有问题的目录是 ,/home/confidential/reboot并且您希望向组中的用户授予只读访问权限mygroup。创建/views/mygroup/reboot该组可以访问的目录。

mkdir -p /views/mygroup/reboot
chown root:mygroup /views/mygroup
chmod 750 /views/mygroup

使用 创建只读视图bindfs。 bindfs进程必须有读取文件和访问挂载点的权限;在这里你可能会以 root 身份运行它。

bindfs -p a-w /home/confidential/reboot /views/mygroup/reboot

/home/confidential/reboot如果中的用户无法读取下面的文件mygroup,并且您希望将其设置为可读,请将权限规范更改为-p a=rX

要在启动时创建只读视图,请将其添加到/etc/fstab

bindfs#/home/confidential/reboot /views/mygroup/reboot fuse perms=a=rX

答案2

根据记录,替代项bindfsaufsunionfs-fuserofs。其中aufs唯一一个没有fuse根据。

所有(包括aufsbindfs)都有限制,例如不支持 ACL(您可以列出它们,但它们不起作用)。如果您需要 ACL,另一种选择是使用 NFS。

答案3

  1. 如果目录没有读取权限,相应的用户将无法获取其中的文件列表,从而访问它。
  2. 您可以使用 ACL ( man setfacl)

相关内容