通过 NFSv4 共享的文件夹仅供用户组使用

通过 NFSv4 共享的文件夹仅供用户组使用

我想通过 NFSv4 共享一个文件夹,供一些用户使用,但我遇到了权限问题。

我使用 setGID 设置了文件夹权限,因此新文件将以文件夹组所有者的权限创建。但用户可以自由创建文件,而无需该组的权限(事实上,默认用户 UMASK 为 700,因此这种情况经常发生)。

我最终尝试申请此解决方案使用 ACL 来强制执行目录 umask。我这样做了,但没有按预期工作。我读了NFS 维基常规 ACL 不适用于 NFSv4,我需要使用 nfs4 特定的 ACL 工具。

但我遇到了一些麻烦。我尝试在服务器上安装 nfs4-acl-tools,结果出现以下信息:

# nfs4_getfacl /export/proyectos/
Operation to request attribute not supported.

是的,该分区已安装 ACL 支持。

/dev/mapper/mpath4-part1 /export/proyectos ocfs2 rw,relatime,_netdev,heartbeat=local,nointr,data=ordered,errors=remount-ro,usrquota,coherency=full,user_xattr,acl 0 0

并且常规 ACL 正在运行:

# getfacl /export/proyectos/
getfacl: Eliminando «/» inicial en nombres de ruta absolutos
# file: export/proyectos/
# owner: root
# group: root
# flags: --t
user::rwx
group::rwx
other::rwx
default:user::rwx
default:group::rwx
default:other::rwx

我按照建议跟踪了 nfs4_getfacl邮件列表并得到这个:

# strace nfs4_getfacl /export/proyectos
<stripped>
getxattr("/export/proyectos", "system.nfs4_acl", 0x0, 0) = -1 EOPNOTSUPP (Operation not supported)
<stripped>

nfs4_getfacl 是否要求正确的标志?我认为 nfs4_acls 根本没有被任何文件系统实现,并且当前 nfs4 依赖于某种 ​​nfs4acl-posixacl 映射。但我不再确定了。

答案1

您必须getfacl在 NFS 服务器上使用(因为您查询本地文件系统),并nfs4_getfacl在 NFS 客户端上使用。

NFSv4 ACL 和 Linux ACL acl(5) 是完全不同的标准!Linux NFS 服务器将来回转换 ACL。

阅读文章Linux 中的 nfs 挂载没有 acl?

相关内容