49.8.3. ターゲットポリシー内のユーザーとロールについて
このセクションでは、targeted ポリシーで有効になっている特定のロールについて説明します。
unconfined_t
タイプはすべてのロールに存在するため、ターゲットポリシーでのロールの有用性が大幅に削減されます。ロールをより広範囲に使用するには、厳密なポリシーパラダイム(各プロセスが個別にドメインと見なされる)に変更する必要があります。
実際には、targeted ポリシーには
system_r
と object_r
の 2 つのロールのみがあります。初期ロールは system_r
であり、それ以外はすべてそのロールを継承します。残りのロールは、targeted ポリシーと strict ポリシー間の互換性の目的で定義されます。[20]
この 4 つのロールは、このポリシーにより 3 つ定義されます。4 番目のロールである
object_r
は暗黙的なロールで、ポリシーソースには見つかりません。ロールは、ポリシーの 1 つ以上の宣言を使用してタイプで作成および設定されるため、すべてのロールを宣言する単一のファイルはありません。(ポリシー自体は、多数の別々のファイルから生成されることに注意してください。)
system_r
- このロールは、ユーザープロセス以外のすべてのシステムプロセスを対象としています。
system_r (28 types) dhcpd_t httpd_helper_t httpd_php_t httpd_suexec_t httpd_sys_script_t httpd_t httpd_unconfined_script_t initrc_t ldconfig_t mailman_cgi_t mailman_mail_t mailman_queue_t mysqld_t named_t ndc_t nscd_t ntpd_t pegasus_t portmap_t postgresql_t snmpd_t squid_t syslogd_t system_mail_t unconfined_t winbind_helper_t winbind_t ypbind_t
user_r
- これは、通常の Linux ユーザーのデフォルトのユーザーロールです。厳密なポリシーでは、個々のユーザーが使用される可能性があり、ユーザーに特別なロールで特権操作を実行できるようにします。targeted ポリシーでは、すべてのユーザーが
unconfined_t
ドメインで実行されます。 object_r
- SELinux では、RBAC が使用されている場合、ロールはオブジェクトに使用されません。ロールはサブジェクトに厳密に使用されます。これは、ロールはタスク指向で、それらがアクションを実行するエンティティー(プロセスなど)にグループ化するためです。このようなエンティティーはすべて、サブジェクト と呼ばれます。このため、すべてのオブジェクトには
object_r
ロールがあり、ロールはラベルのプレースホルダーとしてのみ使用されます。 sysadm_r
- これは、厳密なポリシーのシステム管理者ロールです。root ユーザーとして直接ログインする場合、デフォルトのロールは実際には
staff_r
である可能性があります。true の場合、newrole -r sysadm_r コマンドを使用して SELinux システム管理者ロールに切り替え、システム管理タスクを実行します。Targeted ポリシーでは、互換性のために以下のsysadm_r
を保持します。sysadm_r (6 types) httpd_helper_t httpd_sys_script_t initrc_t ldconfig_t ndc_t unconfined_t
Targeted ポリシーには、実際には 1 つのユーザー ID しかありません。
libselinux
はデフォルトの SELinux ユーザー ID として user_u
に戻されるため、user_u
ID が選択されました。これは、ログインしている Linux ユーザーに一致する SELinux ユーザーがない場合に発生します。ターゲットポリシーで user_u
を単一ユーザーとして使用すると、strict ポリシーへの変更が容易になります。残りのユーザーは、strict ポリシーとの互換性のために存在します。[21]
1 つの例外は、SELinux ユーザー
root
です。プロセスのコンテキストでは、ユーザー ID として root
が確認できます。これは、SELinux ユーザー root
がコマンドラインからデーモンを起動するか、init によって最初に起動するデーモンを再起動する際に発生します。