6.3. 既存の Linux ユーザーの制限: semanage ログイン
Linux ユーザーが SELinux
unconfined_u ユーザー (デフォルトの動作) にマッピングされており、マップされている SELinux ユーザー を変更する場合は、semanage login コマンドを使用します。以下の例では、newuser という名前の新しい Linux ユーザーを作成し、その Linux ユーザーを SELinux user_u ユーザーにマップします。
手順6.2 SELinux ユーザーへの Linux ユーザーのマッピング
- root で、新しい Linux ユーザー (
newuser) を作成します。このユーザーはデフォルトのマッピングを使用するため、semanage login -lの出力には表示されません。~]# useradd newuser~]# semanage login -l Login Name SELinux User MLS/MCS Range Service __default__ unconfined_u s0-s0:c0.c1023 * root unconfined_u s0-s0:c0.c1023 * system_u system_u s0-s0:c0.c1023 * - Linux
newuserユーザーを SELinuxuser_uユーザーにマッピングするには、root で以下のコマンドを実行します。~]# semanage login -a -s user_u newuser-aオプションは新しいレコードを追加し、-sオプションは、Linux ユーザーをマッピングする SELinux ユーザーを指定します。最後の引数newuserは、指定した SELinux ユーザーにマッピングする Linux ユーザーです。 - Linux
newuserユーザーとuser_uとの間のマッピングを表示するには、semanageユーティリティーを再度使用します。~]# semanage login -l Login Name SELinux User MLS/MCS Range Service __default__ unconfined_u s0-s0:c0.c1023 * newuser user_u s0 * root unconfined_u s0-s0:c0.c1023 * system_u system_u s0-s0:c0.c1023 * - root で、Linux
newuserユーザーにパスワードを割り当てます。~]# passwd newuser Changing password for user newuser. New password: Enter a password Retype new password: Enter the same password again passwd: all authentication tokens updated successfully. - 現在のセッションからログアウトし、Linux
newuserユーザーとしてログインします。次のコマンドを実行すると、newuserの SELinux コンテキストが表示されます。~]$ id -Z user_u:user_r:user_t:s0 - Linux
newuserのセッションをログアウトし、アカウントで再度ログインします。Linuxnewuserを使用しない場合は、root で次のコマンドを実行し、ホームディレクトリーとともに削除します。~]# userdel -r newuserroot で、Linuxnewuserユーザーおよびuser_u間のマッピングを削除します。~]# semanage login -d newuser~]# semanage login -l Login Name SELinux User MLS/MCS Range Service __default__ unconfined_u s0-s0:c0.c1023 * root unconfined_u s0-s0:c0.c1023 * system_u system_u s0-s0:c0.c1023 *