第6回 rootになるのが面倒臭い(sudo)

  • rootになるのが面倒臭い(sudo)
    • root(管理者)になるのが面倒臭い
    • sudoコマンドのインストール
    • sudoコマンドの設定
    • sudoコマンドの実行
    • 役に立つサイト

root(管理者)になるのが面倒臭い

人間というものはいつの時代も堕落がつきものです。初めは初々しかった恋人たちも時が過ぎるにつれてやがて飽きてきます(←何の話?)

最初はLinuxのコマンドを少し実行してみるだけでドキドキしていたものです。ましてやviコマンドを使ってファイルの編集&セーブをやった日には緊張でキーボードを叩く指も震えたものです。

それが次第に慣れてくるにつれて「ああ………なんかいちいちコマンド入力するのもタリィな」などと思い始めているのではないでしょうか。特に管理者でしか実行できないコマンドや設定ファイルの編集とか。

Debianではサーバを最新の状態にするために特に使うaptコマンド。apt-get updateやapt-get upgradeを実行する度にいちいちsuコマンド実行して、root(管理者)のパスワードを入力しなければなりません。かといってずっとrootのままで操作するのも危険だし………。

そこで必要な時にだけroot権限で実行できるsudoという便利なコマンドがあります。

ここではsudoコマンドのインストールから設定、操作の実際までをご紹介します。

sudoコマンドのインストール

インストールは毎度おなじみのaptコマンドを使います。

まずは

#apt-get update

でサーバを最新の状態にしてから、

#apt-get install sudo

これだけでインストールは終了。簡単ですね。

sudoコマンドの設定

sudoコマンドはインストールしただけでは使えません。

一時的にでもroot(管理者)権限としてコマンドの実行を許可するものですから、「誰が(どのユーザが)使えるのか?」ということは重要です。

そこでどのユーザがsudoコマンドを実行できるのかを設定を行います。

設定ファイルは/etcディレクトリ以下にあるsudoersというファイルです。この/etc/sudoersをviコマンドで直接編集してもよいのですが、ここはvisudoコマンドを使います。

#visudo

コマンドを実行すると次のような編集画面が表示されます(fig 5.1)

GNU nano
fig 5.1 /etc/sudoersの編集画面

fig 5.1で表示されているエディタはviみたいなマニアックなものではなく、どちらかというとWindowsで使っているテキストエディタ(テキストファイルなどを編集するソフトのこと)に近い操作感覚です。ここではGNU nanoというソフトを使っています。

設定ファイル(/etc/sudoers)の下の方に次のように書かれている行を探してみて下さい。

# User privilege specification
root ALL=(ALL) ALL

この設定だと今はroot(管理者)しかsudoコマンドの実行を許可していないことを表しています。

この"rootなんとか"と書かれた行の下に次のような内容を追加します(太字の部分)

# User privilege specification
root ALL=(ALL) ALL
hoge ALL=(ALL) ALL

これでrootしか使えないコマンド全てをユーザ"hoge"も実行できるように設定しました。

保存は[CTRL+o]キーで行います([CTRL]キーを押しながら[o]キーを押します)。

すると保存するファイル名を聞かれますので、/etc/sudoers以外のファイル名を指定します。ここでは/etc/sudoers.tmpというファイル名にしました。

File Name to Write: /etc/sudoers.tmp

設定を保存したら[CTRL+x]キーで編集画面を抜けます。

念のためにlessコマンドで先ほど書き加えた内容が設定ファイルに反映されているか確認してみましょう。

#less /etc/sudoers

ちなみにsudoersファイルはroot(管理者)以外は書き換えることはもちろん表示することさえできない(権限がない)ので、ファイル内容の表示をする場合でもrootでコマンドを実行します。

下のように書き加えた内容が表示されていれば成功です(fig 5.2の(1)部分)

/etc/sudoers
fig 5.2 lessコマンド実行画面

sudoコマンドの実行

せっかくsudoコマンドのインストール&設定を行ったので、さっそく使ってみます。

例えばサーバを最新の状態にするaptコマンドなら、ユーザ"hoge"のままで次のように入力します。

$sudo apt-get update

コマンドを入力すると最初の1回だけパスワードを聞かれますので、rootのパスワードではなくユーザ"hoge"のパスワード"hogehoge"を入力します。

Password:hogehoge

※入力したパスワードは画面には表示されません。

入力したパスワードが正しければ、ユーザ"hoge"のままでapt-get updateが実行できるはずです。

今後の説明では特にsudoコマンドを使えとは書きませんが、rootでしか実行できないコマンドを見かけたらsuコマンドでrootになるか、あるいはsudoコマンドを先頭につけて実行します。

役に立つサイト

以下のサイトを参考にしました。この場を借りてお礼申し上げます。

sudoによる一般ユーザへの管理権限の委譲
ほとんどここのインスパイアという噂………。