目前,我在 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 在实践中是“默认拒绝”的。也就是说,如果未明确授予许可,则该许可将被拒绝。
手册页继续解释为什么这是一个问题,所以如果您有兴趣,请仔细阅读。
希望这对有疑问的人有帮助!