6.6. MLS におけるファイル機密レベルの引き上げ
デフォルトでは、MLS (Multi-Level Security) ユーザーはファイル機密レベルを高くすることはできません。ただし、セキュリティー管理者 (secadm_r
) は、システムの SELinux ポリシーにローカルモジュール mlsfilewrite
を追加することで、デフォルトの動作を変更し、ユーザーによるファイルの機密レベルの引き上げを許可できます。次に、ポリシーモジュールで定義された SELinux タイプに割り当てられたユーザーは、ファイルを変更することで、ファイルの分類レベルを引き上げることができます。ユーザーがファイルを変更すると、ユーザーの現在のセキュリティー範囲の下限値までファイルの機密性レベルが引き上げられます。
セキュリティー管理者は、secadm_r
ロールに割り当てられたユーザーとしてログインすると、chcon -l s0 /path/to/file
コマンドを使用してファイルのセキュリティーレベルを変更できます。詳細は、MLS でのファイル機密レベルの変更 を参照してください。
前提条件
-
SELinux ポリシーが
mls
に設定されている。 -
SELinux モードが
enforcing
に設定されている。 -
policycoreutils-python-utils
パッケージがインストールされている。 -
mlsfilewrite
ローカルモジュールが SELinux MLS ポリシーにインストールされている。 MLS のユーザーとしてログインしている。つまり:
-
定義済みのセキュリティー範囲に割り当てられている。以下の例は、セキュリティー範囲が
s0-s2
のユーザーを示しています。 -
mlsfilewrite
モジュールで定義されているのと同じ SELinux タイプに割り当てられている。この例では、(typeattributeset mlsfilewrite (user_t))
モジュールが必要です。
-
定義済みのセキュリティー範囲に割り当てられている。以下の例は、セキュリティー範囲が
手順
オプション: 現在のユーザーのセキュリティーコンテキストを表示します。
$ id -Z user_u:user_r:user_t:s0-s2
ユーザーの MLS クリアランス範囲の下位レベルを、ファイルに割り当てるレベルに変更します。
$ newrole -l s1-s2
オプション: 現在のユーザーのセキュリティーコンテキストを表示します。
$ id -Z user_u:user_r:user_t:s1-s2
オプション: ファイルのセキュリティーコンテキストを表示します。
$ ls -Z /path/to/file user_u:object_r:user_home_t:s0 /path/to/file
ファイルを変更して、ファイルの機密レベルをユーザーのクリアランス範囲の下位レベルに変更します。
$ touch /path/to/file
重要システムで
restorecon
コマンドを使用すると、分類レベルはデフォルト値に戻ります。オプション: シェルを終了して、ユーザーの以前のセキュリティー範囲に戻ります。
$ exit
検証
ファイルのセキュリティーコンテキストを表示します。
$ ls -Z /path/to/file user_u:object_r:user_home_t:s1 /path/to/file