Red Hat Training

A Red Hat training course is available for RHEL 8

3.2. SELinux ユーザー機能

SELinux ポリシーは、各 Linux ユーザーを SELinux ユーザーにマッピングします。これにより、Linux ユーザーは SELinux ユーザーの制限を継承できます。

SELinux ポリシーでは、ポリシー内のブーリアン値を調整することで、特定のニーズに応じて限定されたユーザーの権限をカスタマイズすることができます。semanage boolean -l コマンドを使用すると、このブール値の現在の状態を確認できます。

表3.1 SELinuxユーザーの役割

ユーザーデフォルトロール追加のロール

unconfined_u

unconfined_r

system_r

guest_u

guest_r

 

xguest_u

xguest_r

 

user_u

user_r

 

staff_u

staff_r

sysadm_r

unconfined_r

system_r

sysadm_u

sysadm_r

 

root

staff_r

sysadm_r

unconfined_r

system_r

system_u

system_r

 

なお、system_uはシステムプロセスやオブジェクトのための特別なユーザーIDであり、system_rは関連するロールです。管理者は、このsystem_uユーザーとsystem_rロールを絶対にLinuxユーザーに関連付けてはいけません。また、unconfined_u および root は制限のないユーザーです。これらの理由から、これらのSELinuxユーザーに関連するロールは、次の表の「SELinuxロールの種類とアクセス」には含まれていません。

各 SELinux ロールは SELinux のタイプに対応しており、特定のアクセス権限を提供します。

表3.2 SELinuxロールの種類とアクセス

ロールタイプX Window Systemでのログインsu および sudoホームディレクトリーおよび /tmp (デフォルト) での実行ネットワーク

unconfined_r

unconfined_t

はい

はい

はい

はい

guest_r

guest_t

いいえ

いいえ

はい

いいえ

xguest_r

xguest_t

はい

いいえ

はい

Web ブラウザーのみ (Firefox、GNOME Web)

user_r

user_t

はい

いいえ

はい

はい

staff_r

staff_t

はい

sudo のみ

はい

はい

auditadm_r

auditadm_t

 

はい

はい

はい

secadm_r

secadm_t

 

はい

はい

はい

sysadm_r

sysadm_t

xdm_sysadm_loginブールがオンの場合のみ

はい

はい

はい

  • user_t ドメイン、guest_t ドメイン、および xguest_t ドメイン内の Linux ユーザーは、SELinux ポリシーが許可した場合 (passwd など)、設定したユーザー ID (setuid) アプリケーションのみを実行できます。これらのユーザーは、su および sudo setuid アプリケーションを実行できないため、これらのアプリケーションを使用して root にすることはできません。
  • sysadm_t ドメイン、staff_t ドメイン、user_t ドメイン、および xguest_t ドメインの Linux ユーザーは、X Window System およびターミナルを使用してログインできます。
  • デフォルトでは、staff_t ドメイン、user_t ドメイン、guest_t ドメイン、および xguest_t ドメインの Linux ユーザーは、ホームディレクトリーと /tmp でアプリケーションを実行できます。

    ユーザーのパーミッションを継承するアプリケーションの実行を防ぐには、guest_exec_content および xguest_exec_content ブール値を off に設定します。これにより、不具合のあるアプリケーションや悪意のあるアプリケーションがユーザーのファイルを変更できなくなります。

  • xguest_t ドメインの Linux ユーザーにアクセスできる唯一のネットワークアクセスは、Web ページに接続する Firefox です。
  • sysadm_u ユーザーは、SSH を使用して直接ログインできません。sysadm_u の SSH ログインを有効にするには、ssh_sysadm_login ブール値を on に設定します。

    # setsebool -P ssh_sysadm_login on

上記の SELinux ユーザーとともに、semanage user コマンドを使用して、これらのユーザーにマップできる特別なロールがあります。これらのロールは、SELinux でユーザーに許可するものを決定します。

  • webadm_r は、Apache HTTP Server に関連する SELinux タイプの処理のみが可能です。
  • dm_r は、MariaDB データベースおよび PostgreSQL データベース管理システムに関連する SELinux タイプの処理のみが可能です。
  • logadm_r は、syslog および auditlog プロセスに関連する SELinux タイプの処理のみが可能です。
  • secadm_r は SELinux の処理のみが可能です。
  • auditadm_r は、Audit サブシステムに関連するプロセスのみを管理できます。

利用可能なロールの一覧を表示するには、seinfo -r コマンドを実行します。

seinfo -r
Roles: 14
   auditadm_r
   dbadm_r
   guest_r
   logadm_r
   nx_server_r
   object_r
   secadm_r
   staff_r
   sysadm_r
   system_r
   unconfined_r
   user_r
   webadm_r
   xguest_r

seinfo コマンドは、setools-console パッケージにより提供されることに注意してください。デフォルトではインストールされません。

関連情報

  • seinfo(1)semanage-login(8) および xguest_selinux(8) の man ページ