4.9.4. 複数の NFS マウント
同じ NFS エクスポートから複数のマウントをマウントする場合に、異なるコンテキストで各マウントの SELinux コンテキストを上書きしようとすると、以降のマウントコマンドに失敗します。以下の例では、NFS サーバーに、
web/
と database/
の 2 つのサブディレクトリーを持つ 1 つのエクスポート export/
があります。以下のコマンドは、1 つの NFS エクスポートから 2 つのマウントを試み、各マウントに対してコンテキストを上書きしようとします。
~]#
mount server:/export/web /local/web -o context="system_u:object_r:httpd_sys_content_t:s0"
~]#
mount server:/export/database /local/database -o context="system_u:object_r:mysqld_db_t:s0"
2 番目のマウントコマンドが失敗し、次のログが
/var/log/messages
に記録されます。
kernel: SELinux: mount invalid. Same superblock, different security settings for (dev 0:15, type nfs)
1 つの NFS エクスポートから複数のマウントをマウントするには、各マウントに異なるコンテキストがある場合は、
-o nosharecache,context
オプションを使用します。以下の例では、1 つの NFS エクスポートから複数のマウントをマウントし、各マウントに異なるコンテキストを使用しています (各マウントに 1 つのサービスアクセスを許可します)。
~]#
mount server:/export/web /local/web -o nosharecache,context="system_u:object_r:httpd_sys_content_t:s0"
~]#
mount server:/export/database /local/database -o \ nosharecache,context="system_u:object_r:mysqld_db_t:s0"
この例では、
server:/export/web
が /local/web/
ディレクトリーにローカルにマウントされます。すべてのファイルに httpd_sys_content_t
タイプのラベルが付けられ、Apache HTTP Server へのアクセスが許可されます。server:/export/database
は /local/database/
にローカルにマウントされ、すべてのファイルに mysqld_db_t
タイプのラベルが付けられ、MariaDB へのアクセスが許可されます。これらのタイプの変更はディスクには書き込まれません。
重要
nosharecache
オプションを使用すると、/export/web/
を複数回マウントするなど、異なるコンテキストで、エクスポートの同じサブディレクトリーを複数回マウントできます。異なるコンテキストのエクスポートから同じサブディレクトリーを複数回マウントしないでください。マウントと重複するマウントが作成され、ファイルには 2 つの異なるコンテキストでアクセスできます。