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)) モジュールが必要です。

手順

  1. オプション: 現在のユーザーのセキュリティーコンテキストを表示します。

    $ id -Z
    user_u:user_r:user_t:s0-s2
  2. ユーザーの MLS クリアランス範囲の下位レベルを、ファイルに割り当てるレベルに変更します。

    $ newrole -l s1-s2
  3. オプション: 現在のユーザーのセキュリティーコンテキストを表示します。

    $ id -Z
    user_u:user_r:user_t:s1-s2
  4. オプション: ファイルのセキュリティーコンテキストを表示します。

    $ ls -Z /path/to/file
    user_u:object_r:user_home_t:s0 /path/to/file
  5. ファイルを変更して、ファイルの機密レベルをユーザーのクリアランス範囲の下位レベルに変更します。

    $ touch /path/to/file
    重要

    システムで restorecon コマンドを使用すると、分類レベルはデフォルト値に戻ります。

  6. オプション: シェルを終了して、ユーザーの以前のセキュリティー範囲に戻ります。

    $ exit

検証

  • ファイルのセキュリティーコンテキストを表示します。

    $ ls -Z /path/to/file
    user_u:object_r:user_home_t:s1 /path/to/file