セキュリティ強化された Linux (SELinux) は、SELinux コンテキストと呼ばれるセキュリティラベルを各システムオブジェクトに適用することでアクセス権を実装する必須アクセス制御 (MAC) システムです。 SELinux ポリシーモジュールは、SELinux コンテキストを使用して、プロセス、ファイル、ポートおよびその他のシステムオブジェクトが相互作用する方法のルールを定義します。 システムオブジェクト間の相互作用は、ポリシールールで許可されている場合にのみ許可されます。
SELinux コンテキスト (システムオブジェクトに適用されるラベル) には、次のフィールドがあります: user
, role
, type
および security level
。 SELinux コンテキスト全体ではなく型情報は、プロセスが他のシステムオブジェクトと相互作用する方法のルールを定義するために最も一般的に使用されます。 たとえば、MySQL SELinux ポリシーモジュールでは、type
情報を使用してポリシールールを定義します。
ls や ps などのオペレーティングシステムコマンドを -Z
オプションとともに使用して、SELinux コンテキストを表示できます。 SELinux が有効で、MySQL Server が実行されている場合、次のコマンドは mysqld プロセスおよび MySQL データディレクトリの SELinux コンテキストを表示します:
mysqld プロセス:
shell> ps -eZ | grep mysqld
system_u:system_r:mysqld_t:s0 5924 ? 00:00:03 mysqld
MySQL データディレクトリ:
shell> cd /var/lib
shell> ls -Z | grep mysql
system_u:object_r:mysqld_db_t:s0 mysql
ここでは:
system_u
は、システムプロセスおよびオブジェクトの SELinux ユーザーアイデンティティです。system_r
は、システムプロセスに使用される SELinux ロールです。objects_r
は、システムオブジェクトに使用される SELinux ロールです。mysqld_t
は mysqld プロセスに関連付けられたタイプです。mysqld_db_t
は、MySQL データディレクトリとそのファイルに関連付けられたタイプです。s0
はセキュリティレベルです。
SELinux コンテキストの解釈の詳細は、ディストリビューションの SELinux ドキュメントを参照してください。