6.7. MLS でのファイル機密レベルの変更

MLS SELinux ポリシーでは、ユーザーは自分の機密レベルのファイルしか変更できません。これは、クリアランスレベルが低いユーザーに極秘情報が公開されないようにすること、またクリアランスレベルの低いユーザーが機密レベルの高いドキュメントを作成できないようにすることが目的です。ただし、管理者は、ファイルをより高いレベルで処理するなど、ファイル区分を手動で増やすことができます。

前提条件

  • SELinux ポリシーが mls に設定されている。
  • SELinux モードが Enforcing に設定されている。
  • セキュリティー管理者権限が割り当てられている。以下のいずれかに割り当てます。

    • secadm_r ロール。
    • sysadm_secadm モジュールが有効になっている場合は、sysadm_r ロール。sysadm_secadm モジュールはデフォルトで有効になっています。
  • policycoreutils-python-utils パッケージがインストールされている。
  • クリアランスレベルが割り当てられているユーザー。詳細は、Establishing user clearance levels in MLS を参照してください。

    この例では、User1 のクリアランスレベルは s1 です。

  • 区分レベルが割り当てられ、アクセスできるファイル。

    この例では、/path/to/file の区分レベルは s1 です。

手順

  1. ファイルの区分レベルを確認します。

    # ls -lZ /path/to/file
    -rw-r-----. 1 User1 User1 user_u:object_r:user_home_t:s1 0 12. Feb 10:43 /path/to/file
  2. ファイルのデフォルトの区分レベルを変更します。

    # semanage fcontext -a -r s2 /path/to/file
  3. ファイルの SELinux コンテキストのラベルを強制的につけ直します。

    # restorecon -F -v /path/to/file
    Relabeled /path/to/file from user_u:object_r:user_home_t:s1 to user_u:object_r:user_home_t:s2

検証

  1. ファイルの区分レベルを確認します。

    # ls -lZ /path/to/file
    -rw-r-----. 1 User1 User1 user_u:object_r:user_home_t:s2 0 12. Feb 10:53 /path/to/file
  2. オプション: クリアランスが低いユーザーがファイルを読み込めないことを確認します。

    $ cat /path/to/file
    cat: file: Permission denied