[3] NFS 4 ACL

8 czerwca 2020 Wyłączono przez Adam [zicherka] Nogły

Jest 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