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"
このファイルシステムで新規作成されたファイルおよびディレクトリーは、
-o context
で指定した SELinux コンテキストがあるようです。ただし、これらの変更はディスクには書き込まれないため、このオプションで指定したコンテキストはマウント間で維持されません。したがって、必要なコンテキストを維持するには、すべてのマウント時に指定したコンテキストでこのオプションを使用する必要があります。コンテキストマウントを永続化する方法の詳細は、「コンテキストマウントの永続化」 を参照してください。
Type Enforcement は、SELinux の Targeted ポリシーで使用される主要なパーミッション制御です。大半の部分では、SELinux のユーザーとロールを無視できます。したがって、
-o context
コンテキストで SELinux コンテキストを上書きする場合は、SELinux の system_u
ユーザーおよび object_r
ロールを使用し、タイプに集中します。MLS ポリシーまたは複数カテゴリーのセキュリティーを使用していない場合は、s0
レベルを使用します。
注記
ファイルシステムが
context
オプションでマウントされると、ユーザーおよびプロセスによるコンテキストの変更が禁止されます。たとえば、context
オプションでマウントされたファイルシステムで chcon コマンドを実行すると、Operation not supported
のエラーが発生します。