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されていてもエラーとする処理が含まれています。
Sorry, the comment form is closed at this time.