如何禁用/删除 nfs4 acl,并返回到原始 linux 访问控制?

如何禁用/删除 nfs4 acl,并返回到原始 linux 访问控制?

我已经在 nfs 客户端中为某个目录添加了 nfs4 acl,但是添加 nfs4 acl 后无法使用“chown/chgrp”,现在我想放弃 nfs4 acl,并恢复到原来的 linux 简单访问控制,该怎么做???

在标准 Linux ACL 中,我们可以用来setfacl -bn xxx file删除所有 ACL,并返回到原始访问控制,但我不知道如何通过 nfs4_setfacl 来做到这一点...

答案1

  1. 创建一个随机文件来查看默认的 NFS4 ACL:touch /tmp/foo
  2. 将默认 ACL 存储在文件中:nfs4_getfacl /tmp/foo > /tmp/fooacl.txt
  3. 递归恢复 repo BAR 中的 ACL:nfs4_setfacl -R -S /tmp/fooacl.txt /path/to/BAR

-R如果太可怕的话,您也可以使用 find 命令:

find /path/to/BAR -exec nfs4_setfacl -S /tmp/fooacl.txt {} \;

如果您需要递归执行某些操作,我不会推荐 kofemann 的解决方案。或者在将其应用于您的 $HOME 之前务必对其进行测试。我在测试中得到了一个糟糕的结果,导致我无法访问自己的存储库。

答案2

我的解决方案如下:

nfs4_getfacl <file> | nfs4_setfacl -X - <file>

相关内容