SELinux : SELinux コンテキスト2025/10/22 |
|
ファイルやプロセスへのアクセス制御は、SELinux コンテキストにより決定され実行されます。 ⇒ [SELinux User]:[Role]:[Type]:[Level]
|
|||||||||
| [1] | ファイルやプロセスの SELinux コンテキストを確認するには Z オプションを付加します。 |
|
# ファイル/ディレクトリ dlp:~ # ls -lZ /root
total 4
-rw-------. 1 root root unconfined_u:object_r:admin_home_t:s0 547 Oct 22 09:13 .bash_history
drwx------. 1 root root system_u:object_r:gpg_secret_t:s0 0 Jan 28 2025 .gnupg
drwx------. 1 root root system_u:object_r:ssh_home_t:s0 30 Oct 9 14:05 .ssh
drwxr-xr-x. 1 root root system_u:object_r:bin_t:s0 0 Jan 28 2025 bin
---------:--------:-------------:------
User : Role : Type : Level
# プロセス dlp:~ # ps axZ LABEL PID TTY STAT TIME COMMAND system_u:system_r:init_t:s0 1 ? Ss 0:00 /usr/lib/systemd/systemd --switched-root --system --deserialize=47 serial system_u:system_r:kernel_t:s0 2 ? S 0:00 [kthreadd] system_u:system_r:kernel_t:s0 3 ? S 0:00 [pool_workqueue_release] system_u:system_r:kernel_t:s0 4 ? I< 0:00 [kworker/R-kvfree_rcu_reclaim] system_u:system_r:kernel_t:s0 5 ? I< 0:00 [kworker/R-rcu_gp] system_u:system_r:kernel_t:s0 6 ? I< 0:00 [kworker/R-sync_wq] system_u:system_r:kernel_t:s0 7 ? I< 0:00 [kworker/R-slub_flushwq] system_u:system_r:kernel_t:s0 8 ? I< 0:00 [kworker/R-netns] system_u:system_r:kernel_t:s0 9 ? I 0:00 [kworker/0:0-events] system_u:system_r:kernel_t:s0 10 ? I 0:00 [kworker/0:1-cgroup_destroy] system_u:system_r:kernel_t:s0 11 ? I< 0:00 [kworker/0:0H-kblockd] system_u:system_r:kernel_t:s0 12 ? I 0:00 [kworker/u8:0-ipv6_addrconf] system_u:system_r:kernel_t:s0 13 ? I< 0:00 [kworker/R-mm_percpu_wq] system_u:system_r:kernel_t:s0 14 ? I 0:00 [rcu_tasks_kthread] ..... ..... # 自身の ID dlp:~ # id -Z unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 |
| [2] | SELinux コンテキスト中の SELinux ユーザーは SELinux ポリシーによって Linux ユーザーにマッピングされています。 マッピング一覧は [semanage] コマンドで確認することができます。 |
|
dlp:~ # 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 * |
|
上記の例 (SUSE デフォルト) では、[root] は [unconfined_u] にマッピングされています。 [unconfined_u] ユーザーは、デフォルトで [unconfined_r] ロールが割り当てられ、[unconfined_u] が起動したプロセスは [unconfined_t] ドメインとして実行されます。 ちなみに [unconfined_t] ドメインが割り当てられたプロセスは、[unconfined] の意味からも推測できるように、SELinux の制限を受けないプロセスとなります。 SELinux の制限を受けないプロセスからのファイル/ディレクトリへのアクセスは、一般的な DAC (Discretionary Access Control) のみで制御されます。 プロセスの一覧から [unconfined_t] で検索すると、以下のように bash や ps 等、root 自身が起動したプロセスのみに [unconfined_t] が割り当てられていることが分かります。 |
|
dlp:~ # ps axZ | grep unconfined_t unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 1075 ? Ss 0:00 /usr/lib/systemd/systemd --user unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 1086 ttyS0 Ss 0:00 -bash unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 1174 ? Ssl 0:00 /usr/libexec/gvfs/gvfsd unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 1180 ? Sl 0:00 /usr/libexec/gvfs/gvfsd-fuse /run/user/0/gvfs -f unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 1320 ttyS0 R+ 0:00 ps axZ unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023 1321 ttyS0 S+ 0:00 grep --color=auto unconfined_t |
| Sponsored Link |
|
|