CentOS7でのsudo追加についてです。sudoはsuperuserすなわち、root権限でのコマンド実行を実現するためのものです。sudo権限を持っていないユーザーでは、できることがかなり制限されてしまうので、様々なソフトウエアのインストールなどを行う際にも必須となります。覚え方はsuperuser doです。サーバーを操作していて必ずと言ってよいほど必要になるsudoですが、CentOS7でのユーザーへのsudo追加をしていきます。

sudo追加(CentOS7)

3年以内に更新されました。情報が古い可能性があります。
更新日 : 2020年05月18日

Linuxでのsudo追加についてです。
sudoはsuperuserすなわち、ユーザーの権限を一時的にもらってコマンド実行をするものです。
覚え方はsuperuser doです。
サーバーを操作していて必ずと言ってよいほど必要になるsudoですが、Linuxでのユーザーへのsudo追加をしていきます。

まずはユーザー追加

今回は一般ユーザーのsudo権限追加ということで、ユーザー追加を行っていきましょう。すでにsudoコマンドを利用可能にしたいユーザーがある場合にはこの手順は不要です。

ユーザー追加に関してはこちらのLinuxでユーザー追加・削除を参照してください。ユーザー追加に関して問題ない方は進みましょう。

作成したユーザーに切り替えて、sudoコマンドができないことを確認

作成したユーザーはもちろんsudo権限はありません。

## rootユーザーから、作成したtestuserというユーザーに切り替える
$su testuser
パスワード:

## testuserでsudoができないことを確認(適当な空ファイルの作成)
$sudo touch test.txt

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

[sudo] password for testuser:
testuser is not in the sudoers file.  This incident will be reported. 

このように「sudoers fileに入っていません」と怒られてできないはずです。

作成したユーザーにsudo権限を付与する

ではいよいよsudo権限を、作成したユーザーに付与していきましょう。

suders fileを編集

まずはrootユーザーに戻しましょう。当たり前ですが、sudoの権限を操作できるのはrootユーザーだけです。先程作成したユーザーに切り替えた場合は、exitと打てば、現在のユーザーから離脱し、rootユーザーに戻ることができます。
ではrootユーザーになったら以下のvisudoコマンドを叩きましょう。

## visudoでsudoers fileを操作
$visudo

するとviエディタでsudersファイルの中身を操作できます。100行目あたりに以下の記述を探しましょう。

## Allows people in group wheel to run all commands
#%wheel  ALL=(ALL)       ALL

このように#%wheel ALL=(ALL) ALLとwheelグループの権限がコメントアウト状態になっているので#を削除して有効化します。
カーソルを#に持ってきて、xを押せば消えるはずです。あとは:wqで保存しましょう。編集に失敗したら、:q!で強制終了して再度visudoです。

問題なく編集できれば、これでwheelグループにsudo権限が付与されます。

sudersファイルのそれぞれの意味

%wheel ALL=(ALL) ALLとコメントアウトを解除しましたが、ALLばかり書いてありイマイチ意味が分かりづらいので解説します。

基本構文は以下のとおりです。

誰が    どのホストで=(誰として)        どんなコマンドを許可するか

このような書式になっています。ALLは単純に「すべて」を表します。

つまり先程の%wheel ALL=(ALL) ALLの場合、「wheelグループは、すべてのホストすべてのユーザーすべてのコマンドを許可する」という意味になります。順番に解説します。

  • 誰が
    最初の項目は誰への許可かを記載します。%を頭につけるとグループを指定したことになります。%wheelwheelグループへの許可を設定しています。
  • どのホストで
    どのホストで許可するかを設定します。基本的にはALLですべてのホストを許可していいでしょう。例外もあります。
  • 誰として
    カッコ内には誰としてコマンドを実行するのかを指定します。ALLとすることで、rootユーザーと同列だと考えてもいいでしょう。
  • どんなコマンドを
    最後に許可するコマンドをカンマ区切りで指定します。ALLとすることですべてのコマンドを許可します。コマンドを個別に記載する場合には、コマンドの絶対パス(/usr/bin/lessなど)を記載しなければいけません。ディレクトリを指定するとそのディレクトリ配下のコマンドを許可できます。(サブディレクトリ内のコマンドは含まない)

wheelグループに作成したユーザーを追加

先程のsudersファイルの設定でwheelグループにsudo権限が付与されたので、次は作成したユーザーをwheelグループに仲間入りさせてあげましょう。rootユーザーにて以下のコマンドで完了です。

usermod -G wheel 作成したユーザー名

これで作成したユーザーはwheelグループに仲間入りです。

これで作成したユーザーに切り替えて先程確認して行えなかったsudoコマンドを叩いてみましょう。sudo suコマンドでrootユーザーに切り替えることが可能になったりしているはずです。

まとめ

sudo追加を行いました。本来sudoコマンドは、特定のユーザーの権限で行うコマンドを別のユーザーでも使えるようにするためのコマンドです。

ですが今回の用に主にrootユーザーのコマンドをすべて扱えるようにするために利用されることがほとんどです。

基本的には今回の内容とsudoコマンドがきちんと理解できればsudoコマンドに関してはOKです。