Dell Unity: brak dostępu do plików i folderów w eksporcie NFS po uaktualnieniu do Unity OE 5.5

Podsumowanie: 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 do wersji Unity OE 5.5. ...

Ten artykuł dotyczy Ten artykuł nie dotyczy Ten artykuł nie jest powiązany z żadnym konkretnym produktem. Nie wszystkie wersje produktu zostały zidentyfikowane w tym artykule.

Objawy

  • Użytkownicy mogą zauważyć, że po uaktualnieniu Unity do wersji Operating Environment (OE) 5.5 nie można uzyskać dostępu do niektórych plików lub folderów nie można wyświetlić na liście
  • Problem występuje tylko w następujących warunkach: 
    • Klient montuje eksport NFS za pomocą NFSv4.2, dostęp jest dobry, jeśli klient montuje eksport NFS za pomocą NFSv3lub NFSv4.0lub NFSv 4.1.  
    • SELinux jest włączona na kliencie Linux. 

Oto przykład:

  • Użytkownik test_user nie można wyświetlić zawartości punktu montowania NFS /mnt W przypadku montażu za pomocą 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 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

Przyczyna

  • Unity dodało obsługę następujących funkcji NFSv4.2 począwszy od Unity OE 5.5. NFSv4.2 Obsługa protokołów zapewnia dodatkowe bezpieczeństwo i wydajność, a obsługa atrybutów NFS plików zapasowych i etykietowania NFS.
  • Funkcja etykiety zabezpieczającej w NFSV4.2 Zezwala na stosowanie etykiet zabezpieczających (takich jak SELinux contexts), które mają być przechowywane i wymuszane za pośrednictwem udziałów NFS. Domyślnie ta funkcja jest włączona na serwerze Unity NAS. 
  • When (Kiedy) 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 się do plików w eksporcie NFS zamontowanych za pomocą NFS v3, V4.0lub v4.1 Jest 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 za pomocą NFS v4.2domyślny kontekst zabezpieczeń plików NFS zmienia 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ń, w szczególności typu zabezpieczeń z nfs_t na default_t może powodować pewne problemy z dostępem, takie jak SELinux Określa uprawnienia dostępu na podstawie reguł zasad, które obliczają typ zabezpieczeń użytkownika lub procesu oraz plików lub folderów.

Rozwiązanie

    Użytkownicy powinni wybrać jedno rozwiązanie w oparciu o swoje priorytety: bezpieczeństwo, prostota lub wymagania dotyczące funkcji. 
     

    • Ponownie zamontuj eksport NFS za pomocą NFSv4.1, NFSv4.0, or NFSv3 Od klienta:
    mount -o vers=4.1 <nas server IP>:/<export> /<localmountpoint>
    • Zamontuj eksport NFS za pomocą NFSv4.2 Określ jednak kontekst zabezpieczeń:
    mount -o context=system_u:object_r:nfs_t:s0 <nas server IP>:/<export> /<localmountpoint>
    • W zależności od wymagań zmień typ zabezpieczeń plików w eksporcie NFS na odpowiedni:
    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
    

    Dodatkowe informacje

    Poniższą procedurę można wykonać w celu rozwiązania problemów SELinux Problem z dostępem. 

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

    [test_user@RHEL4 ~]$ id -Z
    user_u:user_r:user_t:s0
    
    1. Sprawdź, czy eksport NFS jest zamontowany przy użyciu 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ń plików 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ć przyczynę niepowodzenia polecenia:
    [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 /mntTthe ls dziedziczy typ zabezpieczeń użytkownika, SELinux System określa, czy typ zabezpieczeń user_t ma uprawnienia do odczytu na typie pliku default_t. W takim przypadku ls Polecenie nie powiodło się, ponieważ typ zabezpieczeń źródłowych 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 wyświetla listę wszystkich typów uprawnień user_t ma włączony typ 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, oraz default_t należy do base_file_type.
      Więc user_t ma tylko getattr, otwórz, wyszukaj uprawnienie w katalogu za pomocą default_t Typu.
    [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

    Produkty, których dotyczy problem

    Dell EMC Unity, Dell Unity Operating Environment (OE)
    Właściwości artykułu
    Numer artykułu: 000334013
    Typ artykułu: Solution
    Ostatnia modyfikacja: 17 kwi 2026
    Wersja:  4
    Znajdź odpowiedzi na swoje pytania u innych użytkowników produktów Dell
    Usługi pomocy technicznej
    Sprawdź, czy Twoje urządzenie jest objęte usługą pomocy technicznej.