Dell Unity. После модернизации Unity до версии 5.5 недоступны файлы или папки в экспорте NFS
Summary: После модернизации Unity до версии 5.5 пользователи Linux могут не иметь доступа к некоторым файлам или папкам в экспорте сетевой файловой системы (NFS). (Исправляется пользователем)
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.
- Функция метки безопасности в NFSV4.2 позволяет хранить метки безопасности (например, контексты SELinux) и применять их поверх сетевых папок NFS. По умолчанию эта функция на сервере NAS Unity включена.
- Когда 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 с 4.2 до 4.1.
- Отключение наклейки безопасности в системе Unity
Dell Unity. Как отключить Security Label over 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
- Убедитесь, что экспорт 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)
- Проверьте контекст безопасности файла и воспроизведите проблему
[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
- Проверьте на странице
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
- Когда пользователь запускает
lsС одной стороны,/mnt, процесс LS наследует тип безопасности пользователя, система SELinux определяет, default_t ли тип безопасности user_t имеет разрешение на чтение для типа файла. В этом случаеlsНе удалось выполнить команду, так как у исходного типа безопасности user_t нет разрешения на чтение для типа безопасности файла default_t.
Это можно проверить, проверив правила политики безопасности.
root@RHEL4 ~]# sesearch -A -s user_t -t default_t -p read [root@RHEL4 ~]#
- Приведенная ниже команда перечисляет все разрешения, которые 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;
- В приведенных выше выходных данных 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>
- Пользователь может
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 deniedAffected 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.