6.5. MLS で定義されたセキュリティー範囲内におけるユーザーのクリアランスレベルの変更
Multi-Level Security (MLS) のユーザーとして、管理者が割り当てた範囲内で現在のクリアランスレベルを変更できます。範囲の上限を超えたり、範囲の下限を超えてレベルを下げることはできません。これにより、たとえば、機密レベルを最高のクリアランスレベルまで上げることなく、機密性の低いファイルを変更できます。
たとえば、s1-s3
の範囲に割り当てられたユーザーには以下が適用されます。
-
レベル
s1
、s2
、およびs3
に移行できます。 -
s1-s2
およびs2-s3
の範囲に切り換えることができます。 -
s0-s3
またはs1-s4
の範囲に切り替えることはできません。
別のレベルに切り替えると、異なるクリアランスで新しいシェルが開きます。つまり、下げる場合と同じ方法で元のクリアランスレベルに戻すことはできません。ただし、exit
を入力すると、いつでも前のシェルに戻ることができます。
前提条件
-
SELinux ポリシーが
mls
に設定されている。 -
SELinux モードが
enforcing
に設定されている。 - MLS クリアランスレベルの範囲に割り当てられたユーザーとしてログインできます。
手順
セキュアな端末からユーザーとしてログインします。
セキュアな端末は、、
/etc/selinux/mls/contexts/securetty_types
ファイルで定義されています。デフォルトでは、コンソールはセキュアな端末ですが、SSH はセキュアではありません。現在のユーザーのセキュリティーコンテキストを確認します。
$ id -Z user_u:user_r:user_t:s0-s2
この例では、ユーザーは
user_u
SELinux ユーザー、user_r
ロール、user_t
タイプ、s0-s2
の MLS セキュリティーファイルに割り当てられます。現在のユーザーのセキュリティーコンテキストを確認します。
$ id -Z user_u:user_r:user_t:s1-s2
ユーザーのクリアランス範囲内で別のセキュリティークリアランス範囲に切り替えます。
$ newrole -l s1
最大が割り当てられた範囲以下の範囲に切り替えることができます。単一レベルの範囲を入力すると、割り当てられた範囲の下限が変更されます。たとえば、範囲が
s0-s2
のユーザーとしてnewrole -l s1
を入力することは、newrole -l s1-s2
を入力することに相当します。
検証
現在のユーザーのセキュリティーコンテキストを確認します。
$ id -Z user_u:user_r:user_t:s1-s2
現在のシェルを終了し、元の範囲で前のシェルに戻ります。
$ exit
関連情報
- MLS でのユーザークリアランスの確立
-
システム上の
newrole(1)
およびsecuretty_types(5)
man ページ