Dell Unity: Доступ до файлів або папок у NFS Export неможливий після оновлення Unity до 5.5

Summary: Користувач Linux може не мати доступу до деяких файлів або папок під час експорту мережевої файлової системи (NFS) після оновлення Unity до 5.5. (Виправляється користувачем)

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

  • Користувачі можуть помітити, що деякі файли недоступні або папки не можуть бути вказані після оновлення Unity до 5.5, 
  • Проблема виникає лише за таких умов: 
    • Клієнт монтує експорт NFS за допомогою NFSv4.2, доступ хороший, якщо клієнт монтує експорт NFS за допомогою NFSv3, або NFSv4.0 або 4.1.  
    • SELinux увімкнено у клієнті Linux. 

Наведемо приклад:

  • Користувач test_user не може вивести список вмісту точки монтування NFS /mnt під час монтажу з використанням 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
  • Користувач test_user може відобразити ту саму папку після повторного монтування клієнтом експорту NFS за допомогою 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

  • Починаючи з UnityOS 5.5, Unity додала підтримку NFSv4.2. Підтримка протоколу NFSv4.2 забезпечує додаткову безпеку та продуктивність, а також підтримку атрибутів NFS запасних файлів та маркування NFS.
  • За допомогою функції Security label у NFSV4.2 можна зберігати та застосовувати мітки безпеки (наприклад, контексти SELinux) до спільних ресурсів NFS. За замовчуванням ця функція включена на сервері Unity NAS. 
  • Коли SELinux увімкнено на клієнті Linux, він призначає мітку безпеки кожному об'єкту в системі, включаючи файли, папки, процеси, порти та пристрої. 
  • Типовий контекст безпеки, який SELinux призначає файлам під час експорту NFS, змонтованого за допомогою NFS v3, V4.0 або v4.1, є таким. 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
  • Коли клієнт монтує експорт NFS за допомогою NFS версії 4.2, контекст безпеки файлів NFS за замовчуванням змінюється на 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
  • Зміна контексту безпеки, особливо типу безпеки з nfs_t на default_t, може спричинити певні проблеми з доступом, оскільки SELinux визначає права доступу на основі правил політики, які обчислюють тип безпеки користувача або процесу, а також файлів або папок.

Resolution

Є кілька обхідних шляхів. Користувач повинен вибрати одне рішення, виходячи зі своїх пріоритетів: безпека, простота або вимоги до функцій. 

  • Повторно змонтуйте експорт NFS за допомогою NFSv4.1, NFSv4.0 або NFSv3 з клієнта
mount -o vers=4.1 <nas server IP>:/<export> /<localmountpoint>
  • Змонтуйте експорт NFS за допомогою NFSv4.2, але вкажіть наступний код безпеки
mount -o context=system_u:object_r:nfs_t:s0 <nas server IP>:/<export> /<localmountpoint>
  • Понизьте версію максимальної підтримки NFSv4 на Unity з v4.2 до v4.1. 

Dell Unity: Після оновлення до версії Unity OE 5.5 клієнти NFSv4 не можуть отримати доступ до даних

  • Вимкніть мітку безпеки в Unity

Dell Unity: Як вимкнути Security Label через NFS на Unity OE 5.5 (можна виправити користувачем)

  • Змініть тип захисту файлів під час експорту NFS на відповідні відповідно до вимоги. 
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

Щоб усунути проблему з доступом до SELinux, можна виконати наступну процедуру. 

1. Визначте контекст безпеки користувача.

[test_user@RHEL4 ~]$ id -Z
user_u:user_r:user_t:s0
  1. Переконайтеся, що експорт NFS змонтовано за допомогою NFSv4.2 і seclabel увімкнено. 
[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. Перевірте контекст безпеки файлу та відтворіть проблему
[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. Перевіряти auditlog , щоб підтвердити, чому команда не виконала помилку.
[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. Коли користувач запускає ls На сторінці /mnt, процес ls успадковує тип безпеки користувача, система SELinux визначає, чи має тип безпеки user_t права на читання для файлу типу default_t. У цьому випадку ls Помилка виконання команди через те, що джерельний тип безпеки user_t не має дозволу на читання в default_t типу безпеки файлу. 

Це можна підтвердити, ознайомившись із правилами політики безпеки.

root@RHEL4 ~]# sesearch -A -s user_t -t default_t -p read
[root@RHEL4 ~]#
  1. У наведеній нижче команді перелічено всі дозволи типу user_t для типу 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. У наведеному вище виводі user_t належить до домену, а default_t належить до base_file_type. Так що у user_t тільки є getattr, відкрити, дозвіл на пошук у каталозі з 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. Користувач може cd до /mnt Так як відкритий допускається. 
>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.