![如何禁用/删除 nfs4 acl,并返回到原始 linux 访问控制?](https://linux22.com/image/771839/%E5%A6%82%E4%BD%95%E7%A6%81%E7%94%A8%2F%E5%88%A0%E9%99%A4%20nfs4%20acl%EF%BC%8C%E5%B9%B6%E8%BF%94%E5%9B%9E%E5%88%B0%E5%8E%9F%E5%A7%8B%20linux%20%E8%AE%BF%E9%97%AE%E6%8E%A7%E5%88%B6%EF%BC%9F.png)
我已经在 nfs 客户端中为某个目录添加了 nfs4 acl,但是添加 nfs4 acl 后无法使用“chown/chgrp”,现在我想放弃 nfs4 acl,并恢复到原来的 linux 简单访问控制,该怎么做???
在标准 Linux ACL 中,我们可以用来setfacl -bn xxx file
删除所有 ACL,并返回到原始访问控制,但我不知道如何通过 nfs4_setfacl 来做到这一点...
答案1
- 创建一个随机文件来查看默认的 NFS4 ACL:
touch /tmp/foo
- 将默认 ACL 存储在文件中:
nfs4_getfacl /tmp/foo > /tmp/fooacl.txt
- 递归恢复 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>