Menu Close

Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

6.3. 既存 Linux ユーザーの制限: semanage login

Linux ユーザーが SELinux unconfined_u ユーザーにマッピングされ (デフォルトの動作)、マッピング先の SELinux ユーザーを変更したい場合は、semanage login コマンドを使います。以下の例では、newuser という名前の新規 Linux ユーザーが作成され、SELinux user_u ユーザーにマッピングされます。
  1. 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
  2. この Linux newuser ユーザーを SELinux user_u ユーザーにマッピングするには、Linux root ユーザーで以下のコマンドを実行します。
    ~]# semanage login -a -s user_u newuser
    -a オプションは新規レコードを追加し、-s オプションは Linux ユーザーがマッピングされる SELinux ユーザーを指定します。最後の 引数である newuser は、指定した SELinux ユーザーにマッピングする Linux ユーザーです。
  3. 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
  4. 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.
  5. 現行セッションから一旦ログアウトし、Linux newuser ユーザーでログインし直します。id -Z コマンドを実行し、newuser の SELinux コンテキストを表示します。
    ~]$ id -Z
    user_u:user_r:user_t:s0
  6. 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