Provided by: manpages-ja_0.5.0.0.20140515+dfsg-2_all
名前
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