Linuxでのsudoコマンドのインストールと最初の設定について

自作NASの構築紹介をやってきて、先週ApacheとPHPのインストールまで終わりました。
で、インストール中とかはずっとsuでrootになってやってたんですが、やっぱりrootにずっとなってるのはよくないですよね。
なので、適宜root権限でコマンドを実行できるsudoコマンドを一般ユーザで使えるようにしておきました。

最近Linux環境を自分で構築され始めた人は結構知らない方多いと思うんですが、macOSのコンソールでもsudoは使えるので覚えておいて損はないです。

インストールから設定まで概ね20分もかからないくらいで実施できると思います。
なお、当方の環境は引き続き同じくCnetOS6.3となります。

ではやっていきます。

インストールされているか確認

sudoコマンドは環境によっては既にインストールされています。
私の環境ではデフォで入っていました。

# yum list installed | grep sudo
 sudo.i686 1.7.4p5-13.el6_3 @updates

yum list installd で既にインストールされているパッケージを確認できます。
上記のように表示されてれば既に入っていることになります。

sudo がインストールされていなければyum installコマンドでインストールします

# yum install -y sudo

sudoの設定の仕方は結構シンプル。
/etc の中に、sudoersという名前のファイルがあるかと思いますが、この中にsudoできるようにしたいユーザを追加すればOKです。
ただ、sudoersファイルはデリケートな設定を記述する性質上、専用の編集コマンドが用意されてます。
visudo コマンドっていいます。
やってみるとわかりますが、普通のviエディタ画面が起動していつも通りなファイル編集画面になります。
けど、visudoで編集した場合は保存時に文法チェックとかやってくれるので安心してsudoersファイルを書き換えられるわけですわ。

ではやって見ます。

# visudo

/etc/sudoers ファイルの編集画面になったと思います。
ほとんど#でコメントアウトされてますが、下の方に行くとチョコチョコとrootの設定とかが記述されてるようですね。
上の方は大体説明文なので読み飛ばしましょう(笑) 英語勉強したいですね。

実際に記述して権限を与えてみる

sudo権限はファイルの一番下とかに追記していくだけでOKで、文法は以下のようになっています。

ユーザ名 ホスト名=(権限) 権限を付与するコマンド

各要素の意味は以下となります

ユーザ名:sudo権限を付与したいユーザアカウント

ホスト :どのホストで権限を付与するか
1年前、なんでこんなホストとか設定するんだろう って謎でした。 今いるサーバーに決まってるじゃんってw  ただ、サーバーが何十台もある環境ですと一般的にsudoersファイルは共通のものを一定の範囲内で配布したりします。  なので、1ファイルで特定のサーバに対してsudo権限を付与したいケースに活用できるようになっていたのですね。

権限  :誰の権限か、という設定。 root権限以外も付与できるようです。 けど、さすがにこれはALLとかいてしまうのが一般的だと思います。

コマンド:sudoで実行してOKなコマンドです。 root権限で実行させたいけど、このコマンドとかやられたらアカン~~ っていうのがあれば適宜設定すればOKです。
ちなみにここもALLが一般的になってしまってますが、セキュリティに厳しいサービスを運用する場合は絶対コマンドを指定しておいたほうがよいでしょう。
コマンド単位で設定する場合は、カンマ区切りで追記していけばOKです。
例)/etc/init.d/httpd , /etc/init.d/vsftpd とかとか。。

ちなみに、自分しか触らないような環境(自宅サーバとか)で、suに常になっているのがやな感じだったら
watashi ALL=(ALL) ALL

で、保存して終了すればすぐに反映されるはずです。

自分のhomeディレクトリとかで
$sudo touch test
とかうって確かめてみましょう。
root:rootのファイルオーナーで空のファイルが作成されれば成功ですね。

パスワードを毎回聞かれないようにするには

上で設定した記述方法だと、普通にsudoコマンドを実行した場合最初にユーザのパスワードを問われます。
しばらくはパスワードなしでコマンドうてますが、一定時間経つと再びロックされるので結構ウザいです。

セキュリティ的に自信アリな人は、上で説明した”コマンド”の項目の前に”NOPASSWD:” を付与すればOKです。
パスワードなしでsudoしまくり状態にできます。

例)
watashi ALL=(ALL) NOPASSWD:ALL    #全てのコマンドをパスワードなしで実行可能

セキュリティのレベルは低下するのでご留意を!
以上、sudoコマンドの設定紹介でした。

2013-01-01 | Posted in サーバー小ネタ(Linux)No Comments » 


関連記事

Comment





Comment



*