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 斜め読みのチラシの裏ですので鵜呑みにしないように。