Dell Unity: Po uaktualnieniu Unity do wersji 5.5 nie można uzyskać dostępu do plików lub folderów w eksporcie NFS

Summary: Użytkownik systemu Linux może nie być w stanie uzyskać dostępu do niektórych plików lub folderów eksportowanych do sieciowego systemu plików (NFS) po uaktualnieniu Unity do wersji 5.5. (możliwość korekty z poziomu użytkownika) ...

This article applies to This article does not apply to This article is not tied to any specific product. Not all product versions are identified in this article.

Symptoms

  • Użytkownicy mogą zauważyć, że po uaktualnieniu Unity do wersji 5.5 nie można uzyskać dostępu do niektórych plików lub nie można wyświetlić folderów, 
  • Problem występuje tylko w następujących warunkach: 
    • Klient montuje eksport NFS przy użyciu protokołu NFSv4.2. Jeśli klient montuje eksport NFS przy użyciu protokołu NFSv3, NFSv4.0 lub 4.1, dostęp jest prawidłowy.  
    • SELinux jest włączony w kliencie Linux. 

Oto przykład:

  • Użytkownik test_user nie może wyświetlić zawartości punktu montowania NFS /mnt przy montażu przy użyciu NFSv4.2. 
[test_user@RHEL4 ~]$ mount -v | grep -i mnt
10.xx.xx.48:/test on /mnt type nfs4 (rw,relatime,seclabel,vers=4.2,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.227.xxx.129,local_lock=none,addr=10.60.15.48)

[test_user@RHEL4 ~]$ ls -al /mnt
ls: cannot open directory '/mnt': Permission denied
  • Użytkownik test_user może wyświetlić listę tego samego folderu po ponownym zamontowaniu eksportu NFS przez klienta przy użyciu protokołu NFSv4.1.
[test_user@RHEL4 ~]$ mount -v | grep -i mnt
10.xx.xx.48:/test on /mnt type nfs4 (rw,relatime,vers=4.1,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.227.xxx.129,local_lock=none,addr=10.60.15.48)


[test_user@RHEL4 ~]$ ls -al /mnt
total 16
drwxrwxrwx.  6 root root 8192 Jun 18 03:21 .
dr-xr-xr-x. 20 root root  271 Jun  8 19:07 ..
dr-xr-xr-x.  2 root bin   152 Apr 14 03:56 .etc
drwxr-xr-x.  2 root root  152 Jun 18 03:20 folder
drwxr-xr-x.  2 root root 8192 Apr 14 03:56 lost+found

Cause

  • Począwszy od systemu UnityOS 5.5, Unity dodało obsługę protokołu NFSv4.2. Obsługa protokołu NFSv4.2 zapewnia dodatkowe bezpieczeństwo i wydajność, a także obsługę atrybutów NFS plików zapasowych i etykietowania NFS.
  • Funkcja Etykieta zabezpieczeń w protokole NFSV4.2 umożliwia przechowywanie i wymuszanie etykiet zabezpieczeń (takich jak konteksty SELinux) za pośrednictwem udziałów NFS. Domyślnie ta funkcja jest włączona na serwerze Unity NAS. 
  • Gdy SELinux jest włączony w kliencie Linux, przypisuje etykietę bezpieczeństwa do każdego obiektu w systemach, w tym plików, folderów, procesów, portów i urządzeń. 
  • Domyślny kontekst zabezpieczeń, który SELinux przypisuje plikom w eksporcie NFS zamontowanym przy użyciu NFS v3, V4.0 lub v4.1 to system_u:object_r:nfs_t:s0.
[root@rhel8 test]# ls -alZ testv4.1
-rw-r--r--. 1 root root system_u:object_r:nfs_t:s0 0 Jun  1 21:47 testv4.1
  • Gdy klient zamontuje eksport NFS przy użyciu NFS v4.2, domyślny kontekst zabezpieczeń plików NFS zmieni się na: unconfined_u:object_r:default_t:s0.
[root@rhel8 test]# ls -alZ testv4.2
-rw-r--r--. 1 root root unconfined_u:object_r:default_t:s0 0 Jun  1  2025 testv4.2
  • Zmiana kontekstu zabezpieczeń, zwłaszcza typu zabezpieczeń z nfs_t na default_t, może powodować pewne problemy z dostępem, ponieważ SELinux określa uprawnienia dostępu na podstawie reguł zasad, które obliczają typ bezpieczeństwa użytkownika lub procesu oraz plików lub folderów.

Resolution

Istnieje kilka obejść problemu. Użytkownik powinien wybrać jedno rozwiązanie w oparciu o swoje priorytety: bezpieczeństwo, prostotę lub wymagania dotyczące funkcji. 

  • Ponownie zamontuj eksport NFS przy użyciu NFSv4.1, NFSv4.0 lub NFSv3 z klienta
mount -o vers=4.1 <nas server IP>:/<export> /<localmountpoint>
  • Zamontuj eksport NFS przy użyciu NFSv4.2, ale określ następną stronę zabezpieczeń
mount -o context=system_u:object_r:nfs_t:s0 <nas server IP>:/<export> /<localmountpoint>
  • Obniż maksymalną obsługiwaną wersję NFSv4 w Unity z 4.2 do 4.1. 

Dell Unity: Po uaktualnieniu do wersji 5.5 Unity OE klienci NFSv4 nie mogą uzyskać dostępu do danych

  • Wyłączanie etykiety zabezpieczeń w Unity

Dell Unity: Wyłączanie etykiety zabezpieczającej przez NFS w Unity OE 5.5 (możliwość naprawienia przez użytkownika)

  • W zależności od wymagań zmień typ zabezpieczeń plików w eksporcie NFS na odpowiednie. 
chcon <user>:<role>:<type>:<level> <file/folders>

For example, change the file type to nfs_t. 

[root@RHEL4 /]# ls -alZ /mnt/nfsv4.2
-rw-r--r--. 1 root root system_u:object_r:default_t:s0 0 Jun 17 00:53 /mnt/nfsv4.2
[root@RHEL4 /]# chcon -t nfs_t /mnt/nfsv4.2
[root@RHEL4 /]# ls -alZ /mnt/nfsv4.2
-rw-r--r--. 1 root root system_u:object_r:nfs_t:s0 0 Jun 17 00:53 /mnt/nfsv4.2

Additional Information

Poniższą procedurę można wykonać, aby rozwiązać problem z dostępem do SELinux. 

1. Określ kontekst zabezpieczeń użytkownika.

[test_user@RHEL4 ~]$ id -Z
user_u:user_r:user_t:s0
  1. Upewnij się, że eksport NFS jest zamontowany przy użyciu protokołu NFSv4.2 i seclabel jest włączona. 
[test_user@RHEL4 ~]$ mount -v | grep mnt
10.xx.xx.48:/test on /mnt type nfs4 (rw,relatime,seclabel,vers=4.2,rsize=131072,wsize=131072,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=10.227.xxx.129,local_lock=none,addr=10.xx.xx.48)
  1. Sprawdź kontekst zabezpieczeń pliku i odtwórz problem
[test_user@RHEL4 ~]$ ls -aldZ /mnt
drwxrwxrwx. 6 root root system_u:object_r:default_t:s0 8192 Jun 17 07:44 /mnt

[test_user@RHEL4 ~]$ ls -al /mnt
ls: cannot open directory '/mnt': Permission denied
  1. Odwiedź witrynę auditlog , aby potwierdzić, dlaczego polecenie kończy się niepowodzeniem.
[root@RHEL4 ~]# ausearch -m avc -ts recent | tail
----
time->Tue Jun 17 18:30:59 2025
type=PROCTITLE msg=audit(1750xxxx59.577:8407): proctitle=6C73002D2D636F6C6F723Dxxxxx46F002D616C002F6D6E74
type=SYSCALL msg=audit(1750203059.577:8407): arch=c000003e syscall=257 success=no exit=-13 a0=ffffff9c a1=5563f160ca70 a2=90800 a3=0 items=0 ppid=104637 pid=104661 auid=10086 uid=10086 gid=10086 euid=10086 suid=10086 fsuid=10086 egid=10086 sgid=10086 fsgid=10086 tty=pts1 ses=246 comm="ls" exe="/usr/bin/ls" subj=user_u:user_r:user_t:s0 key=(null)
type=AVC msg=audit(1750xxxx59.577:8407): avc:  denied  { read } for  pid=104661 comm="ls" name="/" dev="0:47" ino=2 scontext=user_u:user_r:user_t:s0 tcontext=system_u:object_r:default_t:s0 tclass=dir permissive=0
  1. Gdy użytkownik uruchomi polecenie ls w sprawie /mnt, proces ls dziedziczy typ zabezpieczeń użytkownika, system SELinux określa, czy typ zabezpieczeń user_t ma uprawnienia do odczytu typu pliku default_t. W takim przypadku ls Polecenie nie powiodło się, ponieważ źródłowy typ zabezpieczeń user_t nie ma uprawnień do odczytu typu zabezpieczeń pliku default_t. 

Można to potwierdzić, sprawdzając reguły polityki bezpieczeństwa.

root@RHEL4 ~]# sesearch -A -s user_t -t default_t -p read
[root@RHEL4 ~]#
  1. Poniższe polecenie zawiera listę wszystkich uprawnień typu user_t dla typu default_t.
[root@RHEL4 ~]# sesearch -A -s user_t -t default_t
allow domain base_file_type:dir { getattr open search };  
allow domain file_type:blk_file map; [ domain_can_mmap_files ]:True
allow domain file_type:chr_file map; [ domain_can_mmap_files ]:True
allow domain file_type:file map; [ domain_can_mmap_files ]:True
allow domain file_type:lnk_file map; [ domain_can_mmap_files ]:True
allow user_usertype file_type:filesystem getattr;
  1. W powyższych danych wyjściowych user_t należy do domeny, a default_t należy do base_file_type. Tak więc user_t ma tylko getattr, otwórz, wyszukaj w katalogu z typem default_t.
[root@RHEL4 mnt]# seinfo -t default_t -x

Types: 1
   type default_t, base_file_type, file_type, mountpoint, non_auth_file_type, non_security_file_type;


[root@RHEL4 mnt]# seinfo -t user_t -x | grep domain
   type user_t, application_domain_type, nsswitch_domain, corenet_unlabeled_type, domain, kernel_system_state_reader, netlabel_peer_type, privfd, process_user_target, scsi_generic_read, scsi_generic_write, syslog_client_type, pcmcia_typeattr_1, user_usertype, login_userdomain, userdomain, unpriv_userdomain, userdom_home_reader_type, userdom_filetrans_type, xdmhomewriter, x_userdomain, x_domain, dridomain, xdrawable_type, xcolormap_type;
/pre>
  1. Użytkownik może cd na /mnt ponieważ otwarte jest dozwolone. 
>allow domain base_file_type:dir { getattr open search };   <<<<

[test_user@RHEL4 ~]$ cd /mnt
[test_user@RHEL4 mnt]$ ls
ls: cannot open directory '.': Permission denied

Affected Products

Dell EMC Unity, Dell Unity Operating Environment (OE)
Article Properties
Article Number: 000334013
Article Type: Solution
Last Modified: 25 Jun 2025
Version:  2
Find answers to your questions from other Dell users
Support Services
Check if your device is covered by Support Services.