如何使用 NFS4_SETFACL 仅删除 GROUP@ ACL 权限?

如何使用 NFS4_SETFACL 仅删除 GROUP@ ACL 权限?

目前,我在 NFS 中有一个文件,它具有权限,

A::OWNER@:rwaDxtTcCy
A::GROUP@:rwaDxtcy
A::EVERYONE@:rwaDxtcy
A:fdi:OWNER@:rwaDxtTcCy
A:fdi:GROUP@:rxtcy
A:fdi:EVERYONE@:tcy

但是,现在我想执行相当于

setfacl -m g::--- filename

删除 GROUP 权限。

我尝试使用:

nfs4_setfacl -x "A::GROUP@:rwaDxtcy" filename
nfs4_setfacl -x 2 filename
nfs4_setfacl -m A::GROUP@:rwaDxtcy A::GROUP@:tcy filename

他们根本没有改变GROUP@的权限。

然而,我在使用 nfs4_setfacl 时注意到的一件事是,如果我运行

nfs4_setfacl -a D::GROUP@:rwaDx filename

这将删除 GROUP@ 的权限,但是,它也会删除 OWNER@ 的权限,这不是我想要的。

D::OWNER@:rwaDx
A::OWNER@:tTcCy
A::GROUP@:tcy
D::GROUP@:rwaDx
A::EVERYONE@:rwaDxtcy
A:fdi:OWNER@:rwaDxtTcCy
A:fdi:GROUP@:rxtcy
A:fdi:EVERYONE@:tcy

有谁知道如何删除 GROUP@ 的 ACL 权限?

答案1

尽管这可能与您不再相关,但还是值得发布答案,因为它可能会帮助任何遇到同样问题的人。

根据nfs4_acl 手册页,这些 ACL 是默认拒绝的,所以如果您不这样做明确地指定@GROUP的权限(如果在默认的linux权限中设置为---),那么@GROUP将被拒绝所有权限。

如果你真的想要明确声明@GROUP没有权限,可以使用拒绝ACL:

D::GROUP@:RWX

不推荐这些,因为根据nfs4_acl 手册页:

尽管拒绝 ACE 是 NFSv4 ACL 的有效部分,但它们可能会令人困惑且复杂。这主要源于这样一个事实:与 POSIX ACL 和 CIFS ACL 不同,NFSv4 ACL 中 ACE 的顺序会影响它们的评估方式。

而且,正如前面提到的

NFSv4 ACL 在实践中是“默认拒绝”的。也就是说,如果未明确授予许可,则该许可将被拒绝。

手册页继续解释为什么这是一个问题,所以如果您有兴趣,请仔细阅读。

希望这对有疑问的人有帮助!

相关内容