特定のユーザのみsuコマンドの実行を可能にする(suコマンドの制限) †
サーバ構築を行い、環境を複数のユーザに提供する時など、suコマンドによるユーザ切り替えを制限したい場合があります。
(rootのパスワードが知られた場合、suにてrootに切り替えられてしまうなど。)
以下の設定を行うことによりsuコマンドを特定のユーザ以外使用できなくなります。
尚、本資料はCentOS5.8で動作確認をしました。
特定ユーザのみsuコマンドを実行できるようにする設定 †
以下は、/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行目のコメントを外し有効にします。
次にsuコマンドを利用できるユーザをwheelグループに所属させます。
コマンドは以下の通りです。
usermod -G wheel ユーザアカウント
注意
上記のコメントを外すとwheelグループに所属しているユーザ以外はsuコマンドが利用できなくなります。
後でpam.d/suの設定を戻そうとしても、suコマンドでrootになれないのでご注意を!
ssh root@localhostなどでrootでログインすることにより修正することもできますが、rootによるsshログインを不許可にしている場合などはご注意くださいませ。
suコマンドの実行制限を実際に試してみる †
以下の手順で試してみました。
- rootユーザで作業
- /etc/pam.d/su を上記に記したようにコメントを外し保存
- sakura, tsubaki, ajisaiの3つのアカウントで試す
- sakura を wheel グループに所属させる
usermod -G wheel sakura
- rootからログアウト
- sakuraアカウントでログインしsuコマンドを試す
suコマンドによりtsubakiとajisaiに切り替えができました。
[sakura@centos ~]$ su - tsubaki
Password:
[tsubaki@centos ~]$ logout
[sakura@centos ~]$ su - ajisai
Password:
[ajisai@centos ~]$ logout
- tsubakiアカウントでログインしsuコマンドを試す
エラーとなりsuコマンドで別ユーザアカウントに切り替えができません。
[tsubaki@centos ~]$ su - sakura
Password:
su: incorrect password
[tsubaki@centos ~]$ su - ajisai
Password:
su: incorrect password
- ajisaiアカウントでログインしsuコマンドを試す
エラーとなりsuコマンドで別ユーザアカウントに切り替えができません。
[ajisai@centos ~]$ su - sakura
Password:
su: incorrect password
[ajisai@centos ~]$ su - tsubaki
Password:
su: incorrect password