Help us understand the problem. What is going on with this article?

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

More than 3 years have passed since last update.

 ここでは,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

login_defs_1.PNG

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

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

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

pam_su_1.PNG

 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とタイプすると編集ポイントを検索できます.

visudo_3.PNG

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

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

---- 以上

参考資料

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

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

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

LostEnryu
情報システム,プログラミング,情報セキュリティなど,情報分野のありとあらゆることを勉強している学生です.研究は生物系です(←???).自分の投稿にはそれなりの責任を感じてはいますが,私の記事を参考に実行したことで生じたどんな損害・不利益に対しても責任は取りかねます.ただの迷子ですから.
http://lost-in-forest.hatenablog.com/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away