|
su コマンド( switch user )はログアウトするまで別ユーザに移行しますが、sudo コマンドでは、su コマンドの引数で指定したコマンド行を一時的に特権ユーザ(ユーザ名 root )等に移行して実行するというものです。両者は機能的には良く似ていますが異なります。
例えば一般ユーザ(非特権ユーザ)でログインした状態で
$ sudo apt-get -s install PACKAGENAME
といったコマンドを実行したいわけです。
システム上で全能の神である特権ユーザ(ユーザ名 root )でシステムにログインした状態で特権操作を行い続けるのは非常に危険です。一般的には一般ユーザ(非特権ユーザ)でログインした後、連続的に特権操作を行う必要があれば操作環境を得るために
su コマンドで特権ユーザに移行し、必要なくなった時点でログアウトして元の非特権ユーザに戻ります。しかし、そのような場合でも「魔がさす」こともあり得るわけで危険です。
そこで、或るコマンド行の発行に限って特権操作ができるようにしたい場合、sudo コマンドが使えると便利です。
DebianGNU/Linux 4.0R1 を新規インストールした(とりあえずインストール)場合、sudo コマンドの利用に必要なパッケージはすでにインストールされていますが、以下のコマンドで確認しても良いと思います。
# apt-get -s install sudo
システムを sudo コマンドの利用できる環境にするには、デーモン sudo を稼動状態にすることとその設定ファイル /etc/sudoers の設置が必要です。
設定ファイル /etc/sudoers の編集には visudo コマンドを使用します。余談ですが、これは「ユーザ登録関連ファイル /etc/passwd など」の編集に vipw コマンドなどが提供されているのに似ています。
visudo コマンドを発行する前に設定ファイルのバックアップを作っておくと良いかもしれません。
# cd /etc ; cp sudoers sudoers-ORG
visudo コマンドを発行すると、既定ではエディタとして nano エディタが起動され設定ファイル /etc/sudoers が読み込まれます。nano エディタが初めての場合には [Ctrl]+[g] キーでヘルプを参照すると良いでしょう。ヘルプ表示の終了には [ESC] キーを押します。nano エディタ自身の終了には [Ctrl]+[x] キーを押します。
とりあえずインストールした直後の状態では、設定ファイル /etc/sudoers の最終行に「 taro ALL = (ALL) ALL 」を追加すれば、とりあえず sudo コマンドが使えるようにできます。
ここで「 taro 」は sudo コマンドが使えるようになる一般ユーザのユーザ名です。この場合一般ユーザ taro は sudo コマンドで全ての特権操作を発行できるようになります。
とりあえずインストールした場合、既にデーモン sudo は稼動状態になっています。設定ファイルを編集できたらデーモン sudo を再起動( /etc/init.d/sudo restart )します。
上例のように設定ファイルが設置されている場合、一般ユーザ taro が sudo コマンドで特権操作コマンドを発行するとパスワードが求められます。その時に求められているパスワードはユーザ taro がログインする際に入力するパスワードであり、特権ユーザ root のパスワードではありません。
既定ではパスワード入力を3回失敗すると、発行しようとしたコマンドはキャンセルされます。正しくパスワードが入力されると特権操作コマンド行は実行され、既定ではその後5分間まではパスワード入力を求められることなく sudo コマンドを発行できます。
|