[3] NFS 4 ACL
8 czerwca 2020Jest możliwe ustawienie ACL w systemie plików NFS v4 gdy zainstalujemy narzędzie NFS 4 ACL.
[1] Zainstaluj NFS 4 ACL na komputerze kliencie, który będzie montował udziały NFS z systemem plików NFSv4.
[root@lsr02vm ~]# dnf install nfs4-acl-tools
[2] Przykładowe zamontowane udziały NFS.
[root@lsr02vm ~]# df -hT /mnt System plików Typ rozm. użyte dost. %uż. zamont. na lsr01vm.zicher.lab:/home/nfsshare nfs4 6,2G 1,8G 4,5G 29% /mnt [root@lsr02vm ~]# ll /mnt razem 0 drwxr-xr-x. 2 root root 6 06-08 16:17 nfstestdir -rw-r--r--. 1 root root 0 06-07 20:50 nfs-test.txt
[3] Przykłady ACL dla pliku oraz katalogu.
[root@lsr02vm ~]# nfs4_getfacl /mnt/nfs-test.txt # file: /mnt/nfs-test.txt A::OWNER@:rwatTcCy A::GROUP@:rtcy A::EVERYONE@:rtcy [root@lsr02vm ~]# nfs4_getfacl /mnt/nfstestdir # file: /mnt/nfstestdir A::OWNER@:rwaDxtTcCy A::GROUP@:rxtcy A::EVERYONE@:rxtcy
Typ ACE | |
A | A = Allow : zezwalaj na dostęp |
D | D = Deny : odmów dostępu |
Flagi ACE | |
d | Directory-Inherit : nowy katalog, dziedziczy te same ACE |
f | File-Inherit : nowy plik, dziedziczy te same ACE, ale nie dziedziczy flagi dziedziczenia |
n | No-Propogate-Inherit : nowy katalog, te same ACE, jednak nie dziedziczy flagi dziedziczenia |
i | Inherit-Only : nowy katalog/plik, dziedziczy te same ACE, katalog nie posiada ACE |
Właściciele ACE | |
(USER)@(NFSDomain) | Użytkownik dla [NFSDomain], tylko jeśli nazwa domeny zostałla podana w jako wartość parametru [Domain] w [idmapd.conf]. |
(GROUP)@(NFSDomain) | Grupa. Dla grupy określ flagę [g] => A:g:GROUP@NFSDomain:rxtncy |
OWNER@ | Specjalny użytkownik : Owner |
GROUP@ | Specjalna grupa : Group |
EVERYONE@ | Specjalny : Everyone |
Uprawnienia ACE | |
r | Czytaj pliki/listuj katalogi |
w | Zapisuj pliki/twórz katalogi |
a | Dołącz dane do pliku/stwórz podkatalog |
x | wykonaj plik/zmień katalog |
d | Skasuj plik lub katalog |
D | Kasuj pliki lub podkatalogi w katalogu |
t | Odczytaj atrybuty plików lub katalogów |
T | Zapisz atrybuty plików lub katalogów |
n | Odczytaj nazwane atrybuty pliku lub katalogu |
N | Zapisz nazwane atrybuty pliku lub katalogu |
c | Odczytaj ACL pliku lub katalogu |
C | Zapisz ACL pliku lub katalogu |
o | Zmień właściciela pliku lub katalogu |
Aliasy uprawnień ACE | przy nfs4_setfacl, możliwe jest użycie aliasów do ustawienia uprawnień ACE |
R | R = rntcy : generalny odczyt |
W | W = watTNcCy : generalny zapis |
X | X = xtcy : generalne wykonanie |
[4] Dodaj lub skasuj ACE.
[root@lsr02vm ~]# ll /mnt razem 4 drwxr-xr-x. 2 root root 6 06-08 16:17 nfstestdir -rw-r--r--. 1 root root 16 06-08 18:26 nfs-test.txt [root@lsr02vm ~]# nfs4_getfacl /mnt/nfs-test.txt # file: /mnt/nfs-test.txt A::OWNER@:rwatTcCy A::GROUP@:rtcy A::EVERYONE@:rtcy # dodaj prawo odczytu/zapisu użytkownikowi [test] dla pliku [/mnt/nfs-test.txt] [root@lsr02vm ~]# nfs4_setfacl -a A::test@zicher.lab:rxtncy /mnt/nfs-test.txt [root@lsr02vm ~]# nfs4_getfacl /mnt/nfs-test.txt # file: /mnt/nfs-test.txt D::OWNER@:x A::OWNER@:rwatTcCy A::1001:rxtcy A::GROUP@:rtcy A::EVERYONE@:rtcy # sprawdź za pomocą użytkownika [test] [root@lsr02vm ~]# su test [test@lsr02vm root]$ ll /mnt/ razem 4 drwxr-xr-x. 2 root root 6 06-08 16:17 nfstestdir -rw-r-xr--. 1 root root 16 06-08 18:26 nfs-test.txt [test@lsr02vm root]$ cat /mnt/nfs-test.txt Testowy plik NFS # skasuj prawo odczytu/zapisu użytkownikowi [test] dla pliku [/mnt/nfs-test.txt] [root@lsr02vm ~]# nfs4_setfacl -x A::1001:rxtcy /mnt/nfs-test.txt [root@lsr02vm ~]# nfs4_getfacl /mnt/nfs-test.txt # file: /mnt/nfs-test.txt A::OWNER@:rwatTcCy A::GROUP@:rtcy A::EVERYONE@:rtcy
[5] Bezpośrednia edycja ACL
[root@lsr02vm ~]# nfs4_setfacl -e /mnt/nfs-test.txt
# zostanie uruchomiony edytor tekstu, gdzie będzie można modyfikować "z palca" ustawienia.
Editing NFSv4 ACL for file: /mnt/nfs-test.txt
A::OWNER@:rwatTcCy
A::GROUP@:rtcy
A::EVERYONE@:rtcy
[6] Dodanie ACL z pliku
# stwórz plik ACL [root@lsr02vm ~]# mcedit acl.txt A::user@zicher.lab:RX A::test@zicher.lab:RWX # dodaj ACL z pliku [acl.txt] [root@lsr02vm ~]# nfs4_setfacl -A acl.txt /mnt/nfs-test.txt [root@lsr02vm ~]# nfs4_getfacl /mnt/nfs-test.txt # file: /mnt/nfs-test.txt D::OWNER@:x A::OWNER@:rwatTcCy A::1000:rxtcy A::1001:rwaxtcy A::GROUP@:rtcy A::EVERYONE@:rtcy
[7] Zamiana aktualnych uprawnień ACE na nowe uprawnienia ACE
# stwórz plik ACL [root@lsr02vm ~]# mcedit acl.txt A::OWNER@:rwaxtTcCy A::GROUP@:tcy A::EVERYONE@:tcy # zamień ACL z pliku [root@lsr02vm ~]# nfs4_setfacl -S acl.txt /mnt/nfs-test.txt [root@lsr02vm ~]# nfs4_getfacl /mnt/nfs-test.txt # file: /mnt/nfs-test.txt A::OWNER@:rwaxtTcCy A::GROUP@:tcy A::EVERYONE@:tcy
[8] Zamiana pewnych ACE na nowe ACE
[root@lsr02vm ~]# nfs4_getfacl /mnt/nfs-test.txt
# file: /mnt/nfs-test.txt
A::OWNER@:rwaxtTcCy
A::GROUP@:tcy
A::EVERYONE@:tcy
# zamienimy EVERYONE ACE na odczyt/wykonanie
[root@lsr02vm ~]# nfs4_setfacl -m A::EVERYONE@:tcy A::EVERYONE@:RX /mnt/nfs-test.txt
[root@lsr02vm ~]# nfs4_getfacl /mnt/nfs-test.txt
# file: /mnt/nfs-test.txt
A::OWNER@:rwaxtTcCy
A::GROUP@:rxtcy
A::EVERYONE@:rxtcy