pam_unix.so auth_as_self
WHEEL_SU 相当な PAM の設定を調べたり。WHEEL_SU については 過去の users-jp 69101 から始まるスレッドが興味深いです。
google 様にお伺いした所 pam_unix.so の auth_as_self が使えそうでした。
auth requisite pam_group.so no_warn group=wheel root_only fail_safe +auth required pam_unix.so no_warn try_first_pass auth_as_self
上記の設定を追加すると wheel グループに属するユーザは su で自分自身のパスワードを入力することで root に成る事が出来、wheel グループに属さないユーザは(通常の状態と同じく)拒否されます。ただし、su 先が「 root 以外 」のユーザであれば、wheel グループに属さないユーザでも自分自身のパスワードでの他のユーザに成る事も可能になってしまいます。この時点で十分マズイのですが、更に su 先のユーザが wheel に属したユーザならば、そこから更に su し再度自分のパスワードを使う事で root に成ることも可能であったり…って事でこれじゃマズイ。
で、どうすればいいのかって言うと、どうすればいいのですかねぇ。pam_unix.so に root_only というオプションがあれば良いのでしょうが…。
#無かったら作ればええんじゃ!俺にはムリポ
一般ユーザに su が必要な状況が頻繁にあるか? という気もしますので pam_group から root_only オプションを除けてしまうとか
pam_group に deny group=一般ユーザグループ を追加して回避するのか、或いはおとなしく? sudo で行くかとか。
一応こんな感じに設定。
# auth auth sufficient pam_rootok.so no_warn auth sufficient pam_self.so no_warn auth requisite pam_group.so no_warn group=wheel fail_safe auth sufficient pam_unix.so no_warn try_first_pass auth_as_self auth include system
wheel グループに属するユーザは自分のパスワードでも、root のパスワードでも認証可。wheel に属さないユーザは su する事に失敗すると言う感じ。例によって man 斜め読みのチラシの裏ですので鵜呑みにしないように。