Aug 072012
 

suコマンドはcoreutilsに含まれているものです。CentOS 6.3ではcoreutilsパッケージにrunuserも含まれていますが、coreutilsのオリジナルソースにはrunuser.cのコードは含まれていません。
Red Hatのcoreutilsソースパッケージを眺めてみると、coreutils-5.2.1-runuser.patchというsu.cへのパッチが含まれていて、make時の指定でどちらもビルドできるようになっていました。

なぜrunuserが用意されたのかは下記の作者blogに書かれています。

SELinuxで問題があったためのようですが、suコマンドよりもPAMの処理が取り除かれオーバーヘッドが小さいとのことなので、rootから別ユーザーで処理を起動する場合はsuよりもrunuserを使用したほうが良さそうです。

/etc/pam.d/suと/etc/pam.d/runuserをそれぞれ以下に貼っておきますが、チェックの少なさは一目瞭然です。

# cat /etc/pam.d/su
#%PAM-1.0
auth            sufficient      pam_rootok.so
# Uncomment the following line to implicitly trust users in the "wheel" group.
#auth           sufficient      pam_wheel.so trust use_uid
# Uncomment the following line to require a user to be in the "wheel" group.
#auth           required        pam_wheel.so use_uid
auth            include         system-auth
account         sufficient      pam_succeed_if.so uid = 0 use_uid quiet
account         include         system-auth
password        include         system-auth
session         include         system-auth
session         optional        pam_xauth.so
# cat /etc/pam.d/runuser
#%PAM-1.0
auth            sufficient      pam_rootok.so
session         optional        pam_keyinit.so revoke
session         required        pam_limits.so
session         required        pam_unix.so

ちなみにsuはsetuidされていますがrunuserはsetuidされていません。万一setuidされていてもエラーとする処理が含まれています。

 Posted by at 12:29 am  Tagged with:

Sorry, the comment form is closed at this time.