Dell Unity:Unityを5.5にアップグレードした後にNFSエクスポートのファイルまたはフォルダーにアクセスできない
Summary: Linuxユーザーは、Unityを5.5にアップグレードした後、Network File System (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にアップグレードした後、一部のファイルにアクセスできない、またはフォルダーを一覧表示できないことにユーザーが気付く場合があります。
- この問題は、次の条件下でのみ発生します。
- クライアントはNFSv4.2を使用してNFSエクスポートをマウントします。アクセスは、クライアントがNFSv3、NFSv4.0、4.1を使用してNFSエクスポートをマウントする場合に有効です。
- SELinuxがLinuxクライアントで有効になっている。
次に例を示します。
- ユーザー test_userはNFSマウントポイントのコンテンツを一覧表示できません
/mntNFSv4.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
- クライアントがNFSv4.1を使用してNFSエクスポートを再マウントした後、ユーザー test_userは同じフォルダーを一覧表示できます。
[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共有に適用できます。この機能は、Unity NASサーバーではデフォルトで有効になっています。
- LinuxクライアントでSELinuxを有効にすると、ファイル、フォルダー、プロセス、ポート、デバイスなど、システム内のすべてのオブジェクトにセキュリティ ラベルが割り当てられます。
- SELinuxがNFS v3、V4.0、またはv4.1を使用してマウントされたNFSエクスポート内のファイルに割り当てるデフォルトのセキュリティ コンテキストは次のとおりです。
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 v4.2を使用してNFSエクスポートをマウントすると、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
いくつかの回避策があります。ユーザーは、セキュリティ、シンプルさ、機能要件などの優先順位に基づいて、1つのソリューションを選択する必要があります。
- クライアントからNFSv4.1、NFSv4.0、またはNFSv3を使用してNFSエクスポートを再マウントします
mount -o vers=4.1 <nas server IP>:/<export> /<localmountpoint>
- NFSv4.2を使用してNFSエクスポートをマウントするが、security conextを指定する
mount -o context=system_u:object_r:nfs_t:s0 <nas server IP>:/<export> /<localmountpoint>
- Unityの最大サポートNFSv4バージョンをv4.2からv4.1にダウングレードします。
Dell Unity:Unity OEバージョン5.5にアップグレードした後、NFSv4クライアントがデータにアクセスできない
- Unityでのセキュリティ ラベルの無効化
Dell Unity:Unity OE 5.5でNFS上のセキュリティ ラベルを無効にする方法(ユーザー修正可能)
- 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 システムはセキュリティータイプuser_tファイルタイプdefault_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はdomainに属し、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.