サーバ構築を行い、環境を複数のユーザに提供する時など、suコマンドによるユーザ切り替えを制限したい場合があります。
(rootのパスワードが知られた場合、suにてrootに切り替えられてしまうなど。)
以下の設定を行うことによりsuコマンドを特定のユーザ以外使用できなくなります。
尚、本資料はCentOS5.8で動作確認をしました。
以下は、/etc/pam.d/suの内容です。(CentOS5.8)
1: #%PAM-1.0 2: auth sufficient pam_rootok.so 3: # Uncomment the following line to implicitly trust users in the "wheel" group. 4: #auth sufficient pam_wheel.so trust use_uid 5: # Uncomment the following line to require a user to be in the "wheel" group. 6: #auth required pam_wheel.so use_uid 7: auth include system-auth 8: account sufficient pam_succeed_if.so uid = 0 use_uid quiet 9: account include system-auth 10: password include system-auth 11: session include system-auth 12: session optional pam_xauth.so
特定ユーザのみsuコマンドを利用可能にするには、6行目のコメントを外し有効にします。
6: #auth required pam_wheel.so use_uid
6: auth required pam_wheel.so use_uid
次にsuコマンドを利用できるユーザをwheelグループに所属させます。
コマンドは以下の通りです。
usermod -G wheel ユーザアカウント
注意
上記のコメントを外すとwheelグループに所属しているユーザ以外はsuコマンドが利用できなくなります。
後でpam.d/suの設定を戻そうとしても、suコマンドでrootになれないのでご注意を!
ssh root@localhostなどでrootでログインすることにより修正することもできますが、rootによるsshログインを不許可にしている場合などはご注意くださいませ。
以下の手順で試してみました。
usermod -G wheel sakura
[sakura@centos ~]$ su - tsubaki Password: [tsubaki@centos ~]$ logout
[sakura@centos ~]$ su - ajisai Password: [ajisai@centos ~]$ logout
[tsubaki@centos ~]$ su - sakura Password: su: incorrect password [tsubaki@centos ~]$ su - ajisai Password: su: incorrect password
[ajisai@centos ~]$ su - sakura Password: su: incorrect password [ajisai@centos ~]$ su - tsubaki Password: su: incorrect password