NFS : NFS 4 ACL Tool2025/10/20 |
|
It's possible to set ACL on NFS(v4) filesystem to install NFS 4 ACL tool. |
|
| [1] | Install NFS 4 ACL Tool on NFS clients that mounts NFS share with NFSv4. |
|
node01:~ # zypper -n install nfs4-acl-tools
|
| [2] | On this example, it shows usage examples on the environment like follows. |
|
node01:~ # df -hT /mnt Filesystem Type Size Used Avail Use% Mounted on dlp.srv.world:/home/nfsshare nfs4 28G 2.7G 25G 10% /mntnode01:~ # ll /mnt total 4 drwx------. 1 root root 0 Oct 20 09:35 testdir -rw-------. 1 root root 20 Oct 20 09:35 testfile.txt |
| [3] | Show ACL of a file or directory on NFSv4 filesystem. |
|
node01:~ # nfs4_getfacl /mnt/testfile.txt # file: /mnt/testfile.txt A::OWNER@:rwatTcCy A::GROUP@:tcy A::EVERYONE@:tcynode01:~ # nfs4_getfacl /mnt/testdir # file: /mnt/testdir A::OWNER@:rwaDxtTcCy A::GROUP@:tcy A::EVERYONE@:tcy # each entry means like follows
# ACE = Access Control Entry # (ACE Type):(ACE Flags):(ACE Principal):(ACE Permissions) |
Description
|
| [4] | Add or Delete ACE. |
|
node01:~ # ll /mnt total 4 drwx------. 1 root root 0 Oct 20 09:35 testdir -rw-------. 1 root root 20 Oct 20 09:35 testfile.txtnode01:~ # nfs4_getfacl /mnt/testfile.txt # file: /mnt/testfile.txt A::OWNER@:rwatTcCy A::GROUP@:tcy A::EVERYONE@:tcy # add generic read/execute for [suse] user to [/mnt/testfile.txt] file node01:~ # USERID=$(grep '^suse:' /etc/passwd | cut -d':' -f3) node01:~ # nfs4_setfacl -a A::${USERID}:rxtncy /mnt/testfile.txt
nfs4_getfacl /mnt/testfile.txt # file: /mnt/testfile.txt D::OWNER@:x A::OWNER@:rwatTcCy A::1000:rxtcy A::GROUP@:tcy A::EVERYONE@:tcy # verify with [suse] user suse@node01:~> ll /mnt total 4 drwx------. 1 root root 0 Oct 20 09:35 testdir -rw-r-x---+ 1 root root 20 Oct 20 09:35 testfile.txt
suse@node01:~> cat /mnt/testfile.txt test file # delete generic read/execute for [suse] user from [/mnt/testfile.txt] file node01:~ # nfs4_setfacl -x A::1000:rxtcy /mnt/testfile.txt
nfs4_getfacl /mnt/testfile.txt # file: /mnt/testfile.txt A::OWNER@:rwatTcCy A::GROUP@:tcy A::EVERYONE@:tcy |
| [5] | Edit ACL directly. |
|
node01:~ # nfs4_setfacl -e /mnt/testfile.txt
# $EDITOR is run and enter to ACL editing
# default $EDITOR on SUSE is [vim], if $EDITOR=null, default is set to [vi]
## Editing NFSv4 ACL for file: /mnt/testfile.txt
A::OWNER@:rwatTcCy
A::GROUP@:tcy
A::EVERYONE@:tcy
|
| [6] | Add ACE from a file. |
A::1000:RX A::1001:RWX # add ACL from the file node01:~ # nfs4_setfacl -A acl.txt /mnt/testfile.txt
nfs4_getfacl /mnt/testfile.txt # file: /mnt/testfile.txt D::OWNER@:x A::OWNER@:rwatTcCy A::1000:rxtcy A::1001:rwaxtcy A::GROUP@:tcy A::EVERYONE@:tcy |
| [7] | Replace current ACE to new ACE. |
A::OWNER@:rwaxtTcCy A::GROUP@:tcy A::EVERYONE@:tcy # replace ACL from the file node01:~ # nfs4_setfacl -S acl.txt /mnt/testfile.txt
nfs4_getfacl /mnt/testfile.txt # file: /mnt/testfile.txt A::OWNER@:rwaxtTcCy A::GROUP@:tcy A::EVERYONE@:tcy |
| [8] | Replace specific ACE to new ACE. |
|
node01:~ # nfs4_getfacl /mnt/testfile.txt # file: /mnt/testfile.txt A::OWNER@:rwaxtTcCy A::GROUP@:tcy A::EVERYONE@:tcy # replace EVERYONE's ACE to read/execute node01:~ # nfs4_setfacl -m A::EVERYONE@:tcy A::EVERYONE@:RX /mnt/testfile.txt
nfs4_getfacl /mnt/testfile.txt # file: /mnt/testfile.txt A::OWNER@:rwaxtTcCy A::GROUP@:rxtcy A::EVERYONE@:rxtcy |
| Sponsored Link |