めもめも

このブログに記載の内容は個人の見解であり、必ずしも所属組織の立場、戦略、意見を代表するものではありません。

SELinux 入門(3) - ユーザ管理

Linux ユーザと SELinux ユーザのマッピング

/etc/selinux/targeted/seusers に設定。ただし、ファイルを編集するのではなく、semanage コマンドで確認、変更する。

# semanage login -l

ログイン名                     SELinux ユーザー              MLS/MCS 範囲       

__default__               unconfined_u              s0-s0:c0.c1023
root                      unconfined_u              s0-s0:c0-c1023
system_u                  system_u                  s0-s0:c0.c1023

# semanage login -m -S targeted -s "staff_u" -r s0-s0:c0-c1023 root

# semanage login -l

ログイン名                     SELinux ユーザー              MLS/MCS 範囲       

__default__               unconfined_u              s0-s0:c0.c1023
root                      staff_u                   s0-s0:c0-c1023
system_u                  system_u                  s0-s0:c0.c1023

上記のマッピングで決まった SELinux ユーザがログイン直後に割り当てられる SID は、/etc/selinux/targeted/contexts/users/ で設定。書式は『ログインを受け付けたプロセスの SID ログイン直後に割り当てる SID』

# cat /etc/selinux/targeted/contexts/users/unconfined_u
system_r:crond_t:s0             unconfined_r:unconfined_t:s0
system_r:initrc_t:s0            unconfined_r:unconfined_t:s0
system_r:local_login_t:s0       unconfined_r:unconfined_t:s0
system_r:remote_login_t:s0      unconfined_r:unconfined_t:s0
system_r:rshd_t:s0              unconfined_r:unconfined_t:s0
system_r:sshd_t:s0              unconfined_r:unconfined_t:s0
system_r:sysadm_su_t:s0         unconfined_r:unconfined_t:s0
system_r:unconfined_t:s0        unconfined_r:unconfined_t:s0
system_r:initrc_su_t:s0         unconfined_r:unconfined_t:s0
unconfined_r:unconfined_t:s0    unconfined_r:unconfined_t:s0
system_r:xdm_t:s0               unconfined_r:unconfined_t:s0

# cat /etc/selinux/targeted/contexts/users/staff_u
system_r:local_login_t:s0       staff_r:staff_t:s0 sysadm_r:sysadm_t:s0
system_r:remote_login_t:s0      staff_r:staff_t:s0
system_r:sshd_t:s0              staff_r:staff_t:s0 sysadm_r:sysadm_t:s0
system_r:crond_t:s0             staff_r:staff_t:s0
system_r:xdm_t:s0               staff_r:staff_t:s0
staff_r:staff_su_t:s0           staff_r:staff_t:s0
staff_r:staff_sudo_t:s0         staff_r:staff_t:s0
system_r:initrc_su_t:s0         staff_r:staff_t:s0
staff_r:staff_t:s0              staff_r:staff_t:s0
sysadm_r:sysadm_su_t:s0         sysadm_r:sysadm_t:s0
sysadm_r:sysadm_sudo_t:s0       sysadm_r:sysadm_t:s0

該当の設定ファイルがないユーザについては、/etc/selinux/targeted/contexts/default_contexts が適用される。

# cat /etc/selinux/targeted/contexts/default_contexts
system_r:crond_t:s0             system_r:system_cronjob_t:s0
system_r:local_login_t:s0       user_r:user_t:s0
system_r:remote_login_t:s0      user_r:user_t:s0
system_r:sshd_t:s0              user_r:user_t:s0
system_r:sulogin_t:s0           sysadm_r:sysadm_t:s0
system_r:xdm_t:s0               user_r:user_t:s0

/etc/selinux/targeted/contexts/default_type は、newrole で新規ロールを指定した時の対応するデフォルトドメインを指定。