Menu Close

Red Hat Training

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

6.2. 新規 Linux ユーザーの設定: useradd

SELinux unconfined_u ユーザーにマッピングされた Linux ユーザーは、unconfined_t ドメインで実行します。これは、unconfined_u にマップされた Linux ユーザーとしてログイン中に id -Z コマンドを実行します。
~]$ id -Z
unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
Linux ユーザーが unconfined_t ドメインで実行されると、SELinux ポリシールールが適用されますが、unconfined_t ドメインで実行している Linux ユーザーを許可するポリシールールが存在します。制限のない Linux ユーザーは、SELinux ポリシーが unconfined_t ドメインから自身の制限のあるドメインに移行できるアプリケーションを実行すると、制限のない Linux ユーザーはその制限のあるドメインの制限を受けます。このセキュリティー上の利点は、Linux ユーザーが制限されていませんが、アプリケーションの制限のないままであるため、アプリケーションの不具合の悪用はポリシーによって制限される可能性があります。
注記
これにより、システムがユーザーから保護されません。代わりに、アプリケーションとシステムがアプリケーションの不具合によって生じる可能性のある破損から保護されます。
useradd コマンドで Linux ユーザーを作成する場合は、- Z オプションを使用して、マッピングされる SELinux ユーザーを指定します。以下の例では、新しい Linux ユーザー useruuser を作成し、そのユーザーを SELinux の user_u ユーザーにマッピングします。SELinux の user_u ユーザーにマッピングされた Linux ユーザーは、user_t ドメインで実行します。このドメインでは、SELinux ポリシーで( passwdなど)SELinux ポリシーが許可しない限り、Linux ユーザーは setuid アプリケーションを実行できません。これは、su コマンドまたは sudo コマンドを実行できず、このコマンドで root ユーザーになるのを防ぎます。

手順6.1 SELinux ユーザーへの新しい Linux ユーザーの制限

  1. root で、SELinux user_uユーザーにマップされる新しい Linux ユーザー(ユーザー) を作成します。
    ~]# useradd -Z user_u useruuser
  2. useruuser と user _u 間のマッピングを表示するには、root で次のコマンドを実行します。
    ~]# 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       *
    useruuser            user_u               s0                   *
    
  3. root で、Linux ユーザー にパスワードを割り当てます
    ~]# passwd useruuser
    Changing password for user useruuser.
    New password: Enter a password
    Retype new password: Enter the same password again
    passwd: all authentication tokens updated successfully.
    
  4. 現在のセッションからログアウトし、Linux useruuser ユーザーとしてログインします。ログインすると、pam_selinux モジュールは Linux ユーザーを SELinux ユーザー(この場合は user_u)にマッピングし、生成される SELinux コンテキストを設定します。Linux ユーザーのシェルはこのコンテキストで起動します。以下のコマンドを入力して、Linux ユーザーのコンテキストを表示します。
    ~]$ id -Z
    user_u:user_r:user_t:s0
    
  5. Linux useruuser のセッションからログアウトし、アカウントにログインし直します。Linux の useruuser ユーザーを使用しない場合は、root で以下のコマンドを入力して、そのホームディレクトリーでこれを削除します。
    ~]# userdel -Z -r useruuser