カテゴリー
Linux

【CentOS】sudo を導入します!◆今更◆

今まで、ずうっと本ブログのサーバに ssh 接続しましたら即 root ユーザになって作業をしておりました。時々、バルスめいた「rm -rf /」というすべてを削除するコマンドを実行したらどうなってしまうのでしょう?どきっ、と良からぬことをふと思ったこともありました。

これでは、いけませんね。

そこで存在は以前から知っていたものの、面倒で導入しておりませんでした「sudo」をセッテイングいたしました。

ポイント

  • wheel グループを sudo できるようにして、sudo したいユーザを wheel グループに追加するのがおすすめのやり方、だと思います。
  • visudo コマンドで sudo の設定を編集すること。vim とかで行なってはいけないの death。

【実践】testuser ユーザを sudo できるようにする手順

0.方針

ポイントにも書いた通り、個別のユーザが sudo できるようにひとつひとつ設定していくのではなく、グループに sudo できるよう設定します。具体的には wheel グループを sudo できるようにします。

wheel グループに sudo を設定するのは、su コマンドで root ユーザになれるのは wheel グループに所属しているユーザのみだからです。su できるグループだけ sudo できるようにする方針です。

1.前準備

まず、root ユーザになります。冒頭であれだけ root ユーザになるのはアカン!キケン!と述べましたが、root ユーザになります。

次に、sudo がインストールされていることを確認します。

[root@oki2a24 ~]# yum list installed | grep sudo
Repository 'vz-base' is missing name in configuration, using id
Repository 'vz-updates' is missing name in configuration, using id
sudo.i386                             1.7.2p1-22.el5                   installed

大丈夫ですね。早速、始めましょう。

2.sudo 設定ファイル編集

まずは sudo の設定ファイルを編集します。visudo を使う、という点がポイントです。保存前にチェックもしてくれるそうで、設定ファイルを安全に編集できるからです。

おそらく、vim などで間違った文法のまま保存してしまうと、ログインできなくなったり、大変なことになるのでしょうね。ここは従いましょう♪

[root@oki2a24 ~]# visudo

グループ wheel に所属するユーザにすべてのコマンドの実行権限を与える場合(ユーザ(root ではない)パスワード入力を要求されます)、次のように編集します。コメントになっている1行を有効にするだけです。簡単♪

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

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

または、パスワードの入力不要で、グループ wheel に所属するユーザにすべてのコマンドの実行権限を与える場合は、そのような設定もはじめからコメントで用意されておりますので次のように1行のコメントを解除すればよいのです。

## Same thing without a password
# %wheel ALL=(ALL) NOPASSWD: ALL

## Same thing without a password
%wheel ALL=(ALL) NOPASSWD: ALL

「visudo」で編集を始めますが、操作方法は vi や vim と同じです。編集が終わったらノーマルモードで「:wq」などで保存して終了します。

3.wheel グループへユーザを追加

これでいつでも sudo できるようになりましたので、残りは任意のユーザを wheel グループに追加するだけです。

例えば、ユーザ testuser をグループ wheel に追加してみますと、こうなります。

[root@oki2a24 ~]# gpasswd -a testuser wheel
ユーザ testuser をグループ wheel から追加

4.確認

最後です。本当に sudo できるか見てみましょう。一旦ログアウトして root ではないユーザで ssh 接続します。まずは sudo しない場合にコマンド実行が拒否されることを確認しましょう。

[testuser@oki2a24 ~]$ tail /var/log/messages
tail: `/var/log/messages' を 読み込み用でオープンできません: 許可がありません

今までどおり拒否されました、問題ありません。ではいよいよ sudo を付けた場合にコマンド実行されることを確認します。

[testuser@oki2a24 ~]$ sudo tail /var/log/messages
Jan 17 21:04:36 ・・・
・・・ 見せないよ! ・・・
・・・centos.i386

やりました♪これで OK です。おつかれさまでした♪

気づいたこと

sudo でファイル作成してみました。と、ファイルのユーザ、グループが root になります。sudo って、root のフリしてコマンドを実行するだけなのかも、、、と思っていたのですけれども、実際に root ユーザとして行動することになるのですね。実感しました!

sudo したとしても、PATH は元のユーザのものを使用します。結果 root と違ってフルパスで指定するコマンドがあり、「su -」で root ユーザになった場合と違う動きをしますので疑っていました。

sudo で root ユーザの PATH を使うには、どういたしましょうか。

おわりに

別のことがしたくて読ませていただいたページに合わせて書かれていたのがきっかけでした。全体をとても丁寧に書かれており、理由やポイントも的確に抑えており、とてもわかりやすかったです。ありがとうございます♪

以上です。

「【CentOS】sudo を導入します!◆今更◆」への1件の返信

コメントを残す