我有一个位于“/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
根据记录,替代项bindfs
是aufs
、unionfs-fuse
和rofs
。其中aufs
唯一一个没有fuse
根据。
所有(包括aufs
和bindfs
)都有限制,例如不支持 ACL(您可以列出它们,但它们不起作用)。如果您需要 ACL,另一种选择是使用 NFS。
答案3
- 如果目录没有读取权限,相应的用户将无法获取其中的文件列表,从而访问它。
- 您可以使用 ACL (
man setfacl
)