4.9. ファイルシステムのマウント


デフォルトでは、拡張属性に対応するファイルシステムをマウントすると、各ファイルのセキュリティーコンテキストは、ファイルの security.selinux 拡張属性から取得されます。拡張属性に対応していないファイルシステムのファイルには、ファイルシステムタイプに基づいて、ポリシー設定から単一のデフォルトのセキュリティーコンテキストが割り当てられます。
mount -o context コマンドを使用して、既存の拡張属性を上書きするか、拡張属性に対応していないファイルシステムに別のデフォルトコンテキストを指定します。これは、複数のシステムで使用されているリムーバブルメディアなど、正しい属性を提供するファイルシステムを信頼しない場合に役立ちます。mount -o context コマンドは、ファイル割り当てテーブル (FAT) ボリュームや NFS ボリュームなど、拡張属性に対応していないファイルシステムのラベリングにも使用できます。context オプションで指定したコンテキストはディスクに書き込まれません。元のコンテキストは保持され、ファイルシステムに拡張属性がある場合は、context なしでマウントすると確認できます。
ファイルシステムのラベリングの詳細は、James Morris の記事 "Filesystem Labeling in SELinux" : http://www.linuxjournal.com/article/7426 を参照してください。

4.9.1. コンテキストマウント

指定したコンテキストでファイルシステムをマウントし、既存のコンテキストが存在する場合は上書きするか、拡張属性に対応していないファイルシステムに別のデフォルトコンテキストを指定するには、root ユーザーで、必要なファイルシステムをマウントする際に mount -o context=SELinux_user:role:type:level コマンドを使用します。コンテキストの変更はディスクには書き込まれません。デフォルトで、クライアント側の NFS マウントは、NFS ボリュームのポリシーで定義されたデフォルトのコンテキストでラベル付けされます。一般的なポリシーでは、このデフォルトのコンテキストは nfs_t タイプを使用します。追加のマウントオプションがないと、Apache HTTP サーバーなどの他のサービスを使用した NFS ボリュームの共有を防ぐことができます。以下の例は、Apache HTTP Server を使用して共有できるように NFS ボリュームをマウントしています。
~]# mount server:/export /local/mount/point -o \ context="system_u:object_r:httpd_sys_content_t:s0"
Copy to Clipboard Toggle word wrap
このファイルシステムで新規作成されたファイルおよびディレクトリーは、-o context で指定した SELinux コンテキストがあるようです。ただし、これらの変更はディスクには書き込まれないため、このオプションで指定したコンテキストはマウント間で維持されません。したがって、必要なコンテキストを維持するには、すべてのマウント時に指定したコンテキストでこのオプションを使用する必要があります。コンテキストマウントを永続化する方法の詳細は、「コンテキストマウントの永続化」 を参照してください。
Type Enforcement は、SELinux の Targeted ポリシーで使用される主要なパーミッション制御です。大半の部分では、SELinux のユーザーとロールを無視できます。したがって、-o context コンテキストで SELinux コンテキストを上書きする場合は、SELinux の system_u ユーザーおよび object_r ロールを使用し、タイプに集中します。MLS ポリシーまたは複数カテゴリーのセキュリティーを使用していない場合は、s0 レベルを使用します。
注記
ファイルシステムが context オプションでマウントされると、ユーザーおよびプロセスによるコンテキストの変更が禁止されます。たとえば、context オプションでマウントされたファイルシステムで chcon コマンドを実行すると、Operation not supported のエラーが発生します。

4.9.2. デフォルトコンテキストの変更

「file_t タイプおよび default_t タイプ」 で説明されているように、拡張属性をサポートするファイルシステムでは、ディスク上の SELinux コンテキストのないファイルにアクセスすると、SELinux ポリシーで定義されているデフォルトのコンテキストがあるかのように処理されます。一般的なポリシーでは、このデフォルトのコンテキストは file_t タイプを使用します。別のデフォルトコンテキストを使用する場合は、defcontext オプションでファイルシステムをマウントします。
以下の例では、/dev/sda2 上で新しく作成したファイルシステムを、新しく作成した test/ ディレクトリーにマウントします。/etc/selinux/targeted/contexts/files/ には、test/ ディレクトリーのコンテキストを定義するルールがないことを前提とします。
~]# mount /dev/sda2 /test/ -o defcontext="system_u:object_r:samba_share_t:s0"
Copy to Clipboard Toggle word wrap
この例では、以下のように設定されています。
  • defcontext オプションでは、system_u:object_r:samba_share_t:s0 が "the default security context for unlabeled files" であると定義されています。[5].
  • マウント時に、ファイルシステムの root ディレクトリー (test/) は、defcontext で指定されたコンテキストでラベル付けされているかのように扱われます (このラベルはディスクには保存されません)。これは、test/ で作成されるファイルのラベリングに影響します。新しいファイルは samba_share_t タイプを継承します。これらのラベルはディスクに保存されます。
  • ファイルシステムが defcontext でマウントされているときに test/ で作成されたファイルは、そのラベルが保持されます。

4.9.3. NFS ボリュームのマウント

デフォルトで、クライアント側の NFS マウントは、NFS ボリュームのポリシーで定義されたデフォルトのコンテキストでラベル付けされます。一般的なポリシーでは、このデフォルトのコンテキストは nfs_t タイプを使用します。ポリシー設定によっては、Apache HTTP Server や MariaDB などのサービスは、nfs_t タイプのラベルが付けられたファイルを読み取ることができません。これにより、このタイプのラベルが付けられたファイルシステムがマウントされ、他のサービスによって読み込まれたりエクスポートしたりできなくなる可能性があります。
NFS ボリュームをマウントして、そのファイルシステムを別のサービスで読み取りまたはエクスポートする場合は、マウント時に context オプションを使用して nfs_t タイプを上書きします。以下のコンテキストオプションを使用して NFS ボリュームをマウントし、Apache HTTP サーバーを使用して共有できるようにします。
~]# mount server:/export /local/mount/point -o context="system_u:object_r:httpd_sys_content_t:s0"
Copy to Clipboard Toggle word wrap
ただし、これらの変更はディスクには書き込まれないため、このオプションで指定したコンテキストは、マウント間で維持されません。したがって、必要なコンテキストを維持するには、すべてのマウント時に指定したコンテキストでこのオプションを使用する必要があります。コンテキストマウントを永続化する方法の詳細は、「コンテキストマウントの永続化」 を参照してください。
context オプションを使用してファイルシステムをマウントする代わりに、ブール値を有効にして、nfs_t タイプのラベルが付けられたファイルシステムへのサービスアクセスを許可できます。nfs_t タイプへのサービスアクセスを許可するブール値の設定方法については、パートII「制限のあるサービスの管理」 を参照してください。

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"
Copy to Clipboard Toggle word wrap
~]# mount server:/export/database /local/database -o context="system_u:object_r:mysqld_db_t:s0"
Copy to Clipboard Toggle word wrap
2 番目のマウントコマンドが失敗し、次のログが /var/log/messages に記録されます。
kernel: SELinux: mount invalid.  Same superblock, different security settings for (dev 0:15, type nfs)
Copy to Clipboard Toggle word wrap
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"
Copy to Clipboard Toggle word wrap
~]# mount server:/export/database /local/database -o \ nosharecache,context="system_u:object_r:mysqld_db_t:s0"
Copy to Clipboard Toggle word wrap
この例では、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 つの異なるコンテキストでアクセスできます。

4.9.5. コンテキストマウントの永続化

再マウントおよび再起動後もコンテキストのマウントを永続化するには、/etc/fstab ファイルまたはオートマウントマップでファイルシステムのエントリーを追加し、マウントオプションとして必要なコンテキストを使用します。以下の例では、NFS コンテキストマウントの /etc/fstab にエントリーを追加します。
server:/export /local/mount/ nfs context="system_u:object_r:httpd_sys_content_t:s0" 0 0
Copy to Clipboard Toggle word wrap


[5] Morris, James."Filesystem Labeling in SELinux".2004 年 10 月 1 日公開。2008 年 10 月 14 日にアクセス: http://www.linuxjournal.com/article/7426
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat