Provided by: manpages-ja_0.5.0.0.20140515+dfsg-2_all ![bug](/img/bug.png)
![bug](/img/bug.png)
名前
visudo - sudoers ファイルを編集する
書式
visudo [-chqsV] [-f sudoers]
説明
visudo は vipw(8) によく似た安全なやり方で sudoers ファイルを編集する。 visudo は sudoers ファイルをロッ クして、重複した編集が同時に行われないようにするとともに、 整合性をざっと調べ、文法エラーのチェックを行 う。 sudoers ファイルが現在編集中だった場合は、 「try again later」というメッセージを端末に表示する。 visudo が使用するエディタについては、コンパイル時に設定された 一つ以上のエディタからなるリストがプログラ ムに埋め込まれているが、 sudoers ファイルの Defaults 行で editor オプションを使えば、それを変更することが できる。 このリストはデフォルトでは、"/usr/bin/vi" になっている。 通常 visudo は、 環境変数 VISUAL や EDITOR の値が上述のエディタ・リストに含まれるエディタでないかぎり、 そうした環境変数を使用しない。とは言 え、 visudo が --with-env-editor オプションを付けて configure されている場合や、 sudoeres ファイルの Defaults 行で env_editor オプションがセットされている場合は、visudo は VISUAL や EDITOR によって指定され た どんなエディタでも使用することになる。 これがセキュリティホールになりかねないことに注意してほしい。 単 に VISUAL や EDITOR を設定するだけで、 ユーザが任意のプログラムを実行できるようになってしまうからだ。 visudo は編集が終わると、sudoers ファイルの文法解析を行い、 文法エラーがあれば、変更を保存しない。visudo はエラーを発見すると、 エラーが起きた行番号を知らせるメッセージを表示し、"What now?" というプロンプトを 出す。このとき、"e" を押せば、 sudoers ファイルを再編集できる。"x" を押せば、 変更を保存せず終了だし、"Q" を押せば、変更を保存して終了だ。 "Q" の選択は、くれぐれも慎重にやってほしい。なぜなら、 visudo が文法エ ラーがあると考えるのなら、sudo も同様に考えるはずであり、エラーが訂正されるまで、もう誰にも sudo が使えな くなってしまうからだ。文法エラーが発見されたとき、"e" を押して sudoers ファイルを編集しようとすると、 カーソルがファイルのエラーが起きた行に飛ぶ (エディタにその機能があればだが)。
オプション
visudo では以下のコマンドラインオプションが使用できる。 -c check-only モードを有効にする。現在の sudoers ファイルの 文法エラー、所有者、アクセス権を チェックする (訳注: 所有者とアクセス権のチェックをするのは sudo-1.8.4p3 以降である)。 -q オプ ションが指定されていない場合は、メッセージを標準出力に表示して、 sudoers の状態を報告す る。チェックが成功裡に終わった場合は、 visudo は返り値 0 で終了する。 エラーに出会った場合の 返り値は 1 である。 -f sudoers sudoers ファイルの位置を指定・変更する。このオプションを付けると、 visudo はデフォルトの /etc/sudoers ではなく、 ユーザが選んだ sudoers ファイルを編集 (あるいは、チェック) することに なる。ロックファイルとしては、指定された sudoers ファイルの名前の末尾に ".tmp" を付けたものが 使われる。なお、 check-only モードの場合だけ、-f の引数に "-" を指定することができる。 これ は、標準入力から sudoers が読み込まれるということである。 -h -h (help) オプションを指定すると、 visudo は標準出力に簡単なヘルプメッセージを表示して、終了 する。 -q quiet モードを有効にする。このモードでは、 文法エラーの詳細情報は表示されない。このオプション が役に立つのは、 -c オプションと組み合わせたときだけである。 -s sudoers ファイルの厳密 (strict) チェックを有効にする。 エイリアスを定義する前に使用すると、 visudo がそれを文法エラーと見なすようになるわけだ。 ホスト名やユーザ名がアルファベットの大文 字、数字、アンダースコア ('_') だけから構成されている場合は、 そうしたものとエイリアスとの区 別が付かないことに注意してほしい。 -V -V (version) オプションを指定すると、 visudo はバージョン番号を表示して、終了する。
環境変数
以下の環境変数が参照されるかどうかは、sudoers の editor や env_editor オプションの値次第である。 VISUAL visudo が起動するエディタ EDITOR VISUAL が設定されていないとき visudo が使用するエディタ
ファイル
/etc/sudoers 誰が何を実行できるかのリスト /etc/sudoers.tmp visudo が使うロックファイル
メッセージによる診断
sudoers file busy, try again later. 現在、ほかの誰かが sudoers ファイルを編集中である。 /etc/sudoers.tmp: Permission denied visudo を root として実行しなかった。 Can't find you in the passwd database あなたのユーザ ID はシステムの passwd ファイルに載っていない。 Warning: {User,Runas,Host,Cmnd}_Alias referenced but not defined User_Alias (あるいは、Runas_Alias, Host_Alias, Cmnd_Alias) を、定義しないまま使用しようとしている。 あるいは、記載したユーザ名かホスト名の中に、アルファベットの大文字、 数字、アンダースコア ('_') のみ からなるものがある。後者の場合は、 この warning を無視して構わない (sudo は警告を出さないないだろ う)。 -s (strict) モードでは、warning ではなく、error になる。 Warning: unused {User,Runas,Host,Cmnd}_Alias 指摘された User_Alias (あるいは、Runas_Alias, Host_Alias, Cmnd_Alias) は、 定義されているが、一度も使 用されていない。そうした使用しないエイリアスは、 コメントアウトするなり、消去するなりしてもよい。 -s (strict) モードでは、warning ではなく、error になる。 Warning: cycle in {User,Runas,Host,Cmnd}_Alias 指摘された User_Alias (あるいは、Runas_Alias, Host_Alias, Cmnd_Alias) は、 直接自分自身を参照している か、 構成要素のエイリアスを通して自分自身を参照している。 sudo は sudoers を解析するとき、 循環を無視 するので、これはデフォルトでは、単なる警告になっている。
関連項目
vi(1), sudoers(5), sudo(8), vipw(8)
作者
多数の人々が長年に渡って sudo の開発に取り組んできた。 visudo の当バージョンを書いたのは、 Todd Miller である。sudo の開発に貢献してくださった方々のリストについては、 sudo の配布に含まれる CONTRIBUTORS ファイ ルをご覧いただきたい (http://www.sudo.ws/sudo/contributors.html)。
警告
visudo が使用するエディタでシェル・エスケープが可能なかぎり、 ユーザがルート・シェルを獲得するのを防止す る簡単な方法はない。
バグ
visudo にバクを発見したと思ったら、下記のページにアクセスして、 バグレポートを提出していただきたい。 http://www.sudo.ws/sudo/bugs/
サポート
ある程度の無料サポートが sudo-users メーリングリストを通して利用できる。 購読やアーカイブの検索には下記 URL を御覧になること。 http://www.sudo.ws/mailman/listinfo/sudo-users
免責
visudo は「現状のまま」提供される。 明示的な、あるいは黙示的ないかなる保証も、 商品性や特定目的への適合性 についての黙示的な保証を含め、 またそれのみに止まらず、これを否認する。詳細な全文については、 sudo と一緒 に配布されている LICENSE ファイルや、 下記 Web ページを御覧いただきたい。 http://www.sudo.ws/sudo/license.html