一般ユーザーを作成してsudoコマンドを使えるようにする

Linux

一般ユーザーを作成して、必要な時だけroot権限を使えるようにします。
root権限を実行する時、コマンドの冒頭にsudoを追加します。
例えば、yumのアップデートをするこのコマンド。

$ yum update

一般ユーザーがsudoコマンドなしで実行するとこんなエラーがでます。

Loaded plugins: fastestmirror, langpacks
You need to be root to perform this command.

翻訳すると、このコマンドを実行するにはrootになってね。みたいなことを言っております。
今度はsudoコマンドを冒頭に追加して実行します。

$ sudo yum update

パスワードを入力すると無事にコマンドが実行されます。ここで入力するのは一般ユーザーのパスワードで、rootのパスワードではありません。その為、例えば複数人で運営している場合、root権限が必要なコマンドでも、各々のパスワードだけで実行することができます。

一人で運営しているとあまり関係ないような気もしますが、最高権限であるrootは、システムに深刻な影響がでるコマンドも実行できます。ちなみにsudoだとユーザーごとに使用できるコマンドを制限できるそうです。

Linuxでは通常作業をrootではなく一般ユーザーで行うのがデフォのようなので、設定してみます。

一般ユーザーを作成する

早速、一般ユーザーtestuserを作成します。
rootユーザーで作業します。

# useradd testuser

作成したユーザーのパスワード設定を設定します。

# passwd testuser

これで一般ユーザーが作成できました。

一般ユーザーがsudoコマンドを使えるよう設定する

なお、sudoコマンドを使うには作成したユーザーに設定が必要です。2通りのやり方があるみたいですが、どっちが良いんでしょう。。とりあえず両方とも調べました。

  • wheelグループに一般ユーザーを所属させる
  • 設定ファイルに一般ユーザーを追記する

※どちらか1つの方法で設定すれば良いと思います、

wheelグループにユーザーを追加する方法

sudoの設定ファイルは「/etc/sudoers」ですが、エディタ経由ではなくvisudoコマンドを使って開きます。

# visudo

ファイルの106行目くらいに次のような記述があります。

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

英語でコメントがありますが、翻訳すると「Wheelグループの人々が全てのコマンドを実行できるようにします。」とあります。新しく作成したtestuserをwheelグループに所属させれば良さそうです。この設定は有効のようなのでファイルは変更せずに終了します。

ユーザーのサブグループにWheelグループを追加する。

権限管理を柔軟に設定する為、ユーザーは複数のグループに所属することができます。ユーザーを作成した時、デフォルトでは自分と同じ名前のグループに所属しています。最初に所属しているグループをプライマリグループ。それ以外のグループをサブグループと呼びます。

testuserのサブグループにwheelを追加します。

# usermod -aG wheel testuser

これでtestuserはwheelグループに所属したことになります。所属しているグループを確認します。

# groups testuser

「testuser : testuser wheel」のようにwheelの文字が表示されていればOK。
testuserに切り替えて、実際にsudoコマンドが使えるか確認します。

testuserに切り替える

# su - testuser

sudoコマンドが使えるか確認します。

設定ファイルにsudoを使いたいユーザーを追記する

今度は設定ファイルを編集する方法です。先ほどwheelグループを確認した時と同様に、rootユーザーでvisudoコマンドを実行してsudo設定ファイルを開きます。

# visudo

開いたファイルの末尾にtestuserが全てのコマンドを実行できる設定を追記します。

testuser ALL=(ALL) ALL

ファイルを保存します。これでwheelグループに所属してなくてもsudoコマンドが使えるはず。。実際にtestuserに切り替えてsudoコマンドが使えるか確認します。

testuserに切り替える

# su - testuser

sudoコマンドが使えれば設定はOKです。

コメント