suコマンドを実行可能なユーザーを限定するには

 一般的なLinuxディストリビューションでは、rootのパスワードさえ知っていれば、どんなユーザーでもsuコマンドでroot権限を取得することができ、セキュリティ上好ましくない。

 最近のディストリビューションではPAMが利用されているので、suコマンドを実行することができるユーザーを限定するには、wheelというグループに属するユーザーだけがsuコマンドでスーパーユーザーになれるように設定する。

 まず、rootでログインして、/etc/login.defsに以下の行を追加する。

SU_WHEEL_ONLY   yes

 次に、/etc/pam.d/suの先頭に以下の行を追加する。

auth       required     /lib/security/pam_wheel.so group=wheel

 続いて、/etc/groupのwheelグループにroot権限を取得できるユーザーIDを追加する。具体的には以下のとおりだ。

wheel:x:10:root,ユーザーID

 以上で設定は終了だ。

# shutdown -r now

 このコマンドでシステムを再起動すれば、上記の設定を行ったユーザーだけがsuコマンドでスーパーユーザーになれる。設定されていないユーザーがsuコマンドを実行して正しいパスワードを入力しても、パスワードが違うという旨のメッセージが表示される。