目指せLinuxマスター(弐) ~suコマンドの権限~


 ここでは,suコマンドの権限を限定する方法を記します.suコマンドはroot権限に昇格したり,他のユーザーとしてログインできる強力なコマンドです.一般ユーザーが簡単に使用できないように設定する必要があります.

※【2016.11.4 追記】 PAMの設定を変更しました.→追記

環境

  • Cent OS 6.8
  • GNOME 2.28.2
  • PAM(/libpam.so) 0.82.2

 より細かい環境については,ブログを参考にしてください.

 また,今回の内容はブログの第9,12回により詳しく掲載しておりますので参考にしてください.

【第9回】目指せLinuxマスター(1) ~sudoersの管理~

【第12回】目指せLinuxマスター(4) ~suの権限~

管理者ユーザーをwheelグループに入れる

 今回suコマンドを使えるようにするのはwheelというグループのメンバーです.それ以外はsuできないようにします.ですから,管理者権限を与えてもよいユーザーをあらかじめwheelグループに入れておく必要があります.

 なお,wheelというのはRedHat, CentOS, Fedoraなどで用いられる管理者グループの名前で,UbuntuなどのDebian系ではそのかわりにsudoグループを用います.認証の際にこれらの管理者グループに属しているかを判別するライブラリが用意されているので,慣例に倣ってこちらを利用するのが簡単でしょう.もちろん,管理者グループが容易に特定できるのは嫌だという場合は,独自のグループを作ってもいいかもしれません.その場合は設定方法がより複雑になるかと思います.

 ここでは,enryuというユーザーをwheelメンバーにします.

$ su -
# gpasswd -a enryu wheel

ログイン処理の設定

※最近のCentOSではlogin.defsにSU_WHEEL_ONLYを設定する必要はなくなったそうです(CentOS6.8にて確認)
 今度はlogin.defsをいじっていきます.root権限で開きましょう.

# vi /etc/login.defs

 この一番末尾に次の行を追加します.

/etc/login.defs
# Only wheel group can su root
SU_WHEEL_ONLY        yes

# PAMの設定
 最後にPAMの設定を行います.今回は/etc/pam.d/suを開きます.

 2つコメントアウトされている行の下側のコメントを外します.

/etc/pam.d/su
# Uncomment the following line to require a user to be in the "wheel" group.
# auth        required        pam_wheel.so use_uid
↑
ここのコメントを外す.dwで1単語削除.

 これで,suコマンドでrootに昇格できるのはwheelメンバーに限定されました.もちろん他のユーザーに切り替えることもできません.

※[2016.11.4 追記]

 次に,root_onlyオプションをつけます.

/etc/pam.d/su
# root_onlyオプションをつけることで,rootへの昇格のみを制限します
auth        required        pam_wheel.so use_uid root_only

 あとは再起動すれば設定がすべて反映されます.

# exit
$ sudo shutdown -r now

 他のユーザーでsuしようとしても,パスワード入力の前にauth認証で弾かれていますから,何を入力しても「パスワードが違います」と表示されます.

おまけ:wheelグループにsudoを許可

 今回はwheelグループだけがsuコマンドでroot権限に昇格できるようにしましたが,そもそもsuでrootになるのはrootパスワードを入力する必要があるため,パスワードを盗聴される可能性が出てきますし,すべての操作をroot権限で行ってしまうので操作を誤ってしまったときに大惨事になる危険性があります.そこで,root権限での実行を必要な時だけ許可するsudoコマンドの使用が推奨されています.

 wheelの設定ついでに,sudoをwheelメンバーに許可しましょう.

wheelをsudoersに追加

 sudoの設定はsudoersファイルに記述していきます.visudoコマンドで設定を開きます.

$ su -
# visudo

 操作はviと同じです.編集するポイントまで移動しましょう.コマンドモードで/wheelとタイプすると編集ポイントを検索できます.

 コマンドモードでEnterキーを押すと下の行の先頭に移動します.そこでdwとし,コメントアウトを外しましょう.

 これで,wheelグループに所属するユーザがsudoを行えるようになりました.

---- 以上

参考資料

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

こちらもよろしくお願いいたします.

エンリュの迷い森|トップページ