kazmax - Linux で自宅サーバー

visudo - システム管理コマンドの説明 - Linux コマンド集 一覧表

  1. 名前
  2. 書式
  3. 説明
  4. オプション
  5. エラー
  6. 環境変数
  7. ファイル
  8. 著者
  9. バグ
  10. 放棄宣言
  11. 警告
  12. 関連項目

名前

visudo - sudoers ファイルを編集する

書式

visudo [ -c ] [ -f sudoers ] [ -q ] [ -s ] [ -V ]

説明

visudo は、vipw (8) と同じような安全な方法で sudoers ファイルを編集する。 visudo は複数同時の編集に対して sudoers ファイルをロックし、 基本的な文法エラーやパースエラーをチェックしてくれる。 sudoers ファイルが現在すでに編集中であった場合、 (L"try again later(R" というメッセージが出される。

visudo が使用するエディタのリストは、 コンパイル時に設定され、ハードコードされている。 これは editor sudoers (C`Default(C' 変数で上書きできる。 このリストのデフォルトはシステムにある vi (1) へのパスで、 configure スクリプトで決定される。 上で述べたリストのエディタが (C`EDITOR(C' や (C`VISUAL(C' 環境変数にない限り、 通常 visudo はこれらの環境変数を使わない。 ただし visudo(--with-enveditor フラグをつけて コンパイル時に設定されている場合、 または sudoersenveditor (C`Default(C' 変数が設定されている場合、 visudo は (C`EDITOR(C' や (C`VISUAL(C' で定義されている 任意のエディタを使用する。 これはセキュリティホールになるので注意すること。 (C`EDITOR(C' や (C`VISUAL(C' に設定するだけで、 ユーザに任意のプログラムの実行を許可してしまう。

visudo は、編集後 sudoers ファイルをパースし、 文法エラーがあった場合は変更を保存しない。 エラーが見つかると、visudo はそれが起こった 行番号を示すメッセージが表示し、 (L"What now?(R" というプロンプトを出す。 この場合、 sudoers ファイルを再編集するならば (L"e(R", 変更を保存せずに終了するならば (L"x(R", 終了と変更の保存をするならば (L"Q(R" を入力すればよい。 (L"Q(R" オプションは特別に注意を払って使用すべきである。 なぜなら、visudo はパースエラーになるといっているので、 パースエラーが修正されるまでは、sudo と全てのユーザが sudo を実行できなくなるからである。 パースエラーが見つかった後で (L"e(R" を入力して sudoers を編集すると、 カーソルがエラーが起こった箇所に置かれる (エディタがこの機能をサポートしている場合のみ)。

オプション

visudo は、以下のようなコマンドラインオプションを受け付ける。 check-only (チェックのみ) モードを有効にする。 既存の sudoers ファイルの文法チェックが行われ、 sudoers の情報の詳細を標準出力に表示する。 文法チェックが成功した場合、 visudo は値 0 で終了する。 文法エラーがあった場合、 visudo は値 1 で終了する。 sudoers ファイルの場所を指定して別のファイルを使う。 このオプションを使うと、 visudo はデフォルトの /etc/sudoers ではなく、 ユーザが選んだ sudoers ファイルを編集 (またはチェック) する。 使用されるロックファイルは、 指定した sudoers ファイルに (L".tmp(R" を付けたものである。 quiet (表示抑制) モードを有効にする。 このモードでは文法エラーの詳細は表示されない。 このオプションは -c フラグと組み合わせた場合にのみ役立つ。 sudoers ファイルの strict (厳密な) チェックを可能にする。 エイリアスが定義される前に使用されている場合、 visudo はパースエラーとみなす。 エイリアスと、大文字・数字・アンダースコア ('_') のみを含む ホスト名またはユーザ名を区別するのは不可能であることに注意すること。 (version) オプションは、 visudo にバージョン番号を表示させた後、終了させる。

エラー

誰か他のユーザが、現在 sudoers ファイルを編集している。 root 権限で visudo を実行しなかった。 あなたのユーザ -1ID0 がシステムの passwd ファイルのなかに見つからない。 定義する前に {User,Runas,Host,Cmnd}_Alias のどれかを使用している。 または、大文字・数字・アンダースコア ('_') のみを含んだ ユーザまたはホスト名がリストにある。 後者の場合、sudo は警告を出さないので) 警告を無視することができる。 -s (strict 厳密な) モードでは、これらは警告ではなくエラーになる。

環境変数

visudo に (コンパイル時に) (--with-env-editor オプションが設定されていた場合にのみ、 以下の環境変数が使われる。

EDITOR エディタとして visudo に起動される。 VISUAL EDITOR が設定されていない場合、 visudo に起動されて使用される。

ファイル

/etc/sudoers 誰が何を実行できるかのリスト。 /etc/sudoers.tmp visudo のロックファイル。

著者

多くの人々が長年に渡り sudo の製作に携わってきた。 このバージョンの visudo は、

Todd Miller <Todd.Miller@courtesan.com> によって書かれた。 更に詳しくは、sudo ディストリビューションの -1HISTORY0 ファイルを参照するか、 http://www.sudo.ws/sudo/history.html を参照すること。

バグ

sudo のバグを発見したと思った場合は、 http://www.sudo.ws/sudo/bugs/ にバグの報告を送って下さい。

放棄宣言

Visudo is provided ``-1AS0 -1IS0'' and any express or implied warranties, including, but not limited to, the implied warranties of merchantability and fitness for a particular purpose are disclaimed. See the -1LICENSE0 file distributed with sudo for complete details.

警告

visudo の使用するエディタがシェルにエスケープできる場合、 ユーザに root のシェルを入手させないための簡単な方法はない。

関連項目

vi (1), sudo (8), vipw (8).