SELinux を頑張る-その4
では、次に、ユーザーを作成した時に、staff_u をデフォルトにしましょう。
# semanage login -m -s staff_u __default__
設定を確認します。
# semanage login -l
(表示)
ログイン名 SELinux ユーザー MLS/MCS 範囲 サービス名
__default__ staff_u s0 *
root staff_u s0 *
次に、staff_u に、staff_r, system_r, sysadm_r の SELinux ロールを割当てます。
要すれば、SELinux ロールの unconfined_r を抜きます。
現在の設定を確認します。
# semanage user -l
(表示)
ラベリング MLS/ MLS/
SELinux ユーザー プレフィックス MCS レベル MCS 範囲 SELinux ロール
guest_u user s0 s0 guest_r
root user s0 s0-s0:c0.c1023 staff_r sysadm_r system_r unconfined_r
staff_u user s0 s0-s0:c0.c1023 staff_r sysadm_r system_r unconfined_r
sysadm_u user s0 s0-s0:c0.c1023 sysadm_r
system_u user s0 s0-s0:c0.c1023 system_r unconfined_r
unconfined_u user s0 s0-s0:c0.c1023 system_r unconfined_r
user_u user s0 s0 user_r
xguest_u user s0 s0 xguest_r
設定します。
# semanage user -m -R "staff_r system_r sysadm_r" staff_u
(表示)
ラベリング MLS/ MLS/
SELinux ユーザー プレフィックス MCS レベル MCS 範囲 SELinux ロール
guest_u user s0 s0 guest_r
root user s0 s0-s0:c0.c1023 staff_r sysadm_r system_r unconfined_r
staff_u user s0 s0-s0:c0.c1023 staff_r sysadm_r system_r
sysadm_u user s0 s0-s0:c0.c1023 sysadm_r
system_u user s0 s0-s0:c0.c1023 system_r unconfined_r
unconfined_u user s0 s0-s0:c0.c1023 system_r unconfined_r
user_u user s0 s0 user_r
xguest_u user s0 s0 xguest_r
マシン再起動
myuser ユーザーのセキュリティコンテキストを確認します。
$ id
uid=1000(myuser) gid=1000(myuser) groups=1000(myuser) context=staff_u:staff_r:staff_t:s0
su コマンドを発行して、正しいパスワードを入力しても、以下のようになり、root になれません。
$ su
パスワード :
su: 認証失敗
というのも、staff_u は、su コマンドが禁止されているためです。
ということは、root になれなくなってしまったということなのだ。。
単純に、unconfined_u を抜いてしまうと、root になれなくなってしまいます。
このような場合を考慮して、sudo を有効に使う必要がありました。
つづく。