晴耕雨読

working in the fields on fine days and reading books on rainy days

usermod -Z でSELinuxユーザを割り当てる

CentOSの最小インストールだと、semanageコマンドが入っていないので、代わりに usermod -Z を使ってSELinuxユーザの割り当てを行います。 以下はLinuxのtestユーザに対してSELinuxのuser_uユーザを割り当てるときのコマンドです。

~]# usermod -Z user_u test

割り当て一覧をsemanageコマンドを使わないで確認するには /etc/selinux/targeted/seusers を表示して内容を確認します。

~]# cat /etc/selinux/targeted/seusers
# This file is auto-generated by libsemanage
# Do not edit directly.

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

testユーザがuser_uに割り当てられていることが確認できます。

user_u に割り当てることで wheel などの管理者グループに所属していても sudo が使えなくなり、サーバのセキュリティが向上します。

補足

ただし環境によっては usermod -Z が失敗します。 以下は CentOS 6.3 の環境で試したときのエラーログです。 usermod -Z が内部で semanage コマンドを呼び出す場合はエラーになるようです。

~]# cat /etc/centos-release
CentOS release 6.3 (Final)

~]# usermod -Z sysadm_u user1
Failed to exec '/usr/sbin/semanage'
usermod: warning: the user name user1 to sysadm_u SELinux user mapping failed.

以上です。