6.3. 既存 Linux ユーザーの制限: semanage login
Linux ユーザーが SELinux
unconfined_u
ユーザーにマッピングされ (デフォルトの動作)、マッピング先の SELinux ユーザーを変更したい場合は、semanage login
コマンドを使います。以下の例では、newuser という名前の新規 Linux ユーザーが作成され、SELinux user_u
ユーザーにマッピングされます。
- Linux root ユーザーで
useradd newuser
コマンドを実行し、ユーザー名 newuser という新規 Linux ユーザーを作成します。このユーザーはデフォルトマッピングを使用しているため、semanage login -l
出力には表示されません。~]#
useradd newuser
~]#semanage login -l
Login Name SELinux User MLS/MCS Range __default__ unconfined_u s0-s0:c0.c1023 root unconfined_u s0-s0:c0.c1023 system_u system_u s0-s0:c0.c1023 - この Linux newuser ユーザーを SELinux
user_u
ユーザーにマッピングするには、Linux root ユーザーで以下のコマンドを実行します。~]#
semanage login -a -s user_u newuser
-a
オプションは新規レコードを追加し、-s
オプションは Linux ユーザーがマッピングされる SELinux ユーザーを指定します。最後の 引数であるnewuser
は、指定した SELinux ユーザーにマッピングする Linux ユーザーです。 - Linux newuser ユーザーと
user_u
間のマッピングを表示するには、semanage login -l
コマンドを Linux root ユーザーで実行します。~]#
semanage login -l
Login Name SELinux User MLS/MCS Range __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 - Linux root ユーザーで
passwd newuser
コマンドを実行し、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 ユーザーでログインし直します。
id -Z
コマンドを実行し、newuser の SELinux コンテキストを表示します。~]$
id -Z
user_u:user_r:user_t:s0 - Linux newuser のセッションからログアウトし、自分のアカウントでログインし直します。Linux newuser ユーザーが不要な場合は、Linux root ユーザーで
userdel -r newuser
コマンドを実行し、そのホームディレクトリーとともに削除します。semanage login -d newuser
コマンドを実行し、Linux newuser ユーザーとuser_u
の間のマッピングを削除します。~]#
userdel -r newuser
~]#semanage login -d newuser
~]#semanage login -l
Login Name SELinux User MLS/MCS Range __default__ unconfined_u s0-s0:c0.c1023 root unconfined_u s0-s0:c0.c1023 system_u system_u s0-s0:c0.c1023