OSDN Git Service

sudo: release pages for sudo-1.8.4p4
[linuxjm/jm.git] / manual / sudo / release / man5 / sudoers.5
index d2ad1d0..ae0bc2e 100644 (file)
@@ -1,4 +1,4 @@
-.\" Copyright (c) 1994-1996, 1998-2005, 2007-2009
+.\" Copyright (c) 1994-1996, 1998-2005, 2007-2012
 .\"    Todd C. Miller <Todd.Miller@courtesan.com>
 .\" 
 .\" Permission to use, copy, modify, and distribute this software for any
 .\" Updated & Modified (sudo-1.7.2p1) Sat Nov 14 21:15:16 JST 2009
 .\"         by Yoichi Chonan
 .\" Modified Tue Nov 24 20:00:00 JST 2009 by Yoichi Chonan
+.\" Updated & Modified (sudo-1.8.4p4) Wed May  9 12:26:33 JST 2012
+.\"         by Yoichi Chonan
+.\"
+.nr SL 0
+.nr BA 0
+.nr LC 0
 .\"
-.\" $Sudo: sudoers.man.in,v 1.80 2009/06/30 12:41:09 millert Exp $
-.\" Automatically generated by Pod::Man 2.16 (Pod::Simple 3.05)
+.\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14)
 .\"
 .\" Standard preamble:
 .\" ========================================================================
-.de Sh \" Subsection heading
-.br
-.if t .Sp
-.ne 5
-.PP
-\fB\\$1\fR
-.PP
-..
 .de Sp \" Vertical space (when we can't use .PP)
 .if t .sp .5v
 .if n .sp
@@ -86,7 +83,7 @@
 .el       .ds Aq '
 .\"
 .\" If the F register is turned on, we'll generate index entries on stderr for
-.\" titles (.TH), headers (.SH), subsections (.Sh), items (.Ip), and index
+.\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index
 .\" entries marked with X<> in POD.  Of course, you'll have to process the
 .\" output yourself in some meaningful fashion.
 .ie \nF \{\
 .\" ========================================================================
 .\"
 .IX Title "SUDOERS 5"
-.TH SUDOERS 5 "June 30, 2009" "1.7.2p1" "MAINTENANCE COMMANDS"
+.TH SUDOERS 5 "February  5, 2012" "1.8.4" "MAINTENANCE COMMANDS"
 .\" For nroff, turn off justification.  Always turn off hyphenation; it makes
 .\" way too many mistakes in technical documents.
 .if n .ad l
 .nh
 .SH "名前"
-sudoers \- ã\81©ã\81®ã\83¦ã\83¼ã\82¶ã\81\8cä½\95ã\82\92å®\9fè¡\8cã\81§ã\81\8dã\82\8bã\81\8bã\81®ã\83ªã\82¹ã\83\88
+sudoers \- ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81® sudo ç\94¨ã\82»ã\82­ã\83¥ã\83ªã\83\86ã\82£ã\83»ã\83\9dã\83ªã\82·ã\83¼ã\83»ã\83¢ã\82¸ã\83¥ã\83¼ã\83«
 .SH "説明"
 .IX Header "DESCRIPTION"
+\&\fIsudoers\fR ポリシー・モジュールは、デフォルトの \fBsudo\fR
+用ポリシー・プラグインであり、このモジュールによってユーザがどんな
+\&\fBsudo\fR 権限を持っているかの判定が行われる。ポリシーの運用は
+\&\fI/etc/sudoers\fR ファイルによって行われるが、
+\&\s-1LDAP\s0 を使用することも可能である。ポリシーを設定するときの書式は、
+「SUDOERS ファイルの書式」セクションで詳しく説明している。
+\&\fIsudoers\fR ポリシーの情報を \s-1LDAP\s0 に格納することについては、
+\&\fIsudoers.ldap\fR\|(5) をご覧になるとよい。
+.SS "認証とロギング"
+.IX Subsection "Authentication and Logging"
+\&\fIsudoers\fR セキュリティ・ポリシーでは、ユーザはたいていの場合、
+\&\fBsudo\fR を使用できるようになる前に、本人であることを証明する必要がある。ただし、
+\&\fBsudo\fR を実行するユーザが root だったり、変身対象ユーザが
+\&\fBsudo\fR を実行するユーザと同一であったり、
+ポリシーによってそのユーザやコマンドに対する認証が免除されている場合は、
+パスワードは要求されない。\fIsu\fR\|(1) とは違って、
+\&\fIsudoers\fR  ポリシーによる認証でチェックされるのは、
+\&\fBsudo\fR を実行するユーザの認証情報 (訳注: 通常はパスワード)
+であって、変身対象ユーザの (あるいは、root の) 認証情報ではない。
+この動作は、後述する \fIrootpw\fR, \fItargetpw\fR, \fIrunaspw\fR
+フラグによって変更することができる。
+.PP
+ポリシーに登録されていないユーザが \fBsudo\fR
+を使ってコマンドを実行しようとすると、しかるべき権威者にメールが送付される。
+そうしたメールの宛先は、
+後述する「デフォルト設定」の \fImailto\fR によって設定できるが、
+デフォルトでは \f(CW\*(C`root\*(C'\fR になっている。
+.PP
+\&\fBsudo\fR を使用する権限のないユーザが、\fB\-l\fR や \fB\-v\fR
+オプションを付けて \fBsudo\fR の実行を試みても、
+メールは送付されないことに注意してほしい。これによって、
+自分が \fBsudo\fR を使用できるかどうか、
+ユーザが自分で判断できるようになっているのである。
+.PP
+\&\fBsudo\fR が root によって実行されたとき、環境変数
+\&\f(CW\*(C`SUDO_USER\*(C'\fR が設定されていると、
+\&\fIsudoers\fR ポリシーは実際のユーザが誰かを判定するのに、
+その値を使用する。ユーザとしては、この動作を利用することで、
+すでに root シェルが起動されている場合でも、
+自分が \fBsudo\fR を介して実行したコマンドのログを取ることができる。
+また、この動作のおかげで、
+\&\fBsudo\fR で実行したスクリプトやプログラムから呼び出される場合でさえ、
+\&\fB\-e\fR オプションが役に立つものになっている。とは言え、そうした場合でも、
+\&\fIsudoers\fR の参照はやはり root に対してなされるのであって、
+\&\f(CW\*(C`SUDO_USER\*(C'\fR が指定しているユーザに対してではないことに気をつけてほしい。
+.PP
+\&\fIsudoers\fR は認証情報の一時保存 (credential caching) のために
+タイムスタンプ・ファイルを使用する。ユーザの認証が済むと、
+タイムスタンプが更新され、ユーザはしばらくの間 (\fItimeout\fR
+オプションによって変更されていなければ、\f(CW\*(C`5\*(C'\fR 分間)
+パスワードなしで \fBsudo\fR を使うことができる。デフォルトでは、
+\&\fIsudoers\fR は tty ごとのタイムスタンプを使用する。すなわち、
+ユーザの各ログイン・セッションごとに別のタイムスタンプが存在するわけだ。
+\&\fItty_tickets\fR オプションを無効にすれば、
+あるユーザのすべてのセッションに対して、
+単一のタイムスタンプの使用を強制することができる。
+.PP
+\&\fIsudoers\fR は \fBsudo\fR の実行が成功したときも失敗したときも、
+その事実を (エラー内容とともに)  \fIsyslog\fR\|(3) や 独自のログファイル、
+あるいはその両方に記録することができる。\fIsudoers\fR はデフォルトでは、
+\&\fIsyslog\fR\|(3) 経由でログを記録することになっているが、
+この動作はデフォルト設定の \fIsyslog\fR と \fIlogfile\fR
+を使って変更することが可能だ。
+.PP
+\&\fIsudoers\fR はコマンドの入出力ストリームのロギングもサポートしている。
+入出力ロギングは、デフォルトでは ON になっていないが、デフォルト設定の
+\&\fIlog_input\fR や \fIlog_output\fR フラグを使って有効にすることができる。
+コマンド・タグの \f(CW\*(C`LOG_INPUT\*(C'\fR や \f(CW\*(C`LOG_OUTPUT\*(C'\fR
+を使って有効にすることも可能だ。
+.SS "コマンド環境"
+.IX Subsection "Command Environment"
+環境変数はプログラムの動作に影響を与えることがあるので、\fIsudoers\fR は、
+実行されるコマンドがユーザの環境からどんな変数を引き継ぐかについて、
+制御する手段を用意している。すなわち、\fIsudoers\fR は二つの異なった方法で、
+環境変数を処理することができる。
+.PP
+デフォルトでは \fIenv_reset\fR オプションが有効になっている。
+この場合、コマンドは最小限の環境で実行されることになるが、その環境には、
+\&\f(CW\*(C`TERM\*(C'\fR, \f(CW\*(C`PATH\*(C'\fR, \f(CW\*(C`HOME\*(C'\fR,
+\&\f(CW\*(C`MAIL\*(C'\fR, \f(CW\*(C`SHELL\*(C'\fR, \f(CW\*(C`LOGNAME\*(C'\fR,
+\&\f(CW\*(C`USER\*(C'\fR, \f(CW\*(C`USERNAME\*(C'\fR、
+及び \f(CW\*(C`SUDO_*\*(C'\fR という変数、
+それに、呼び出し側のプロセスから来た変数で、\fIenv_check\fR や
+\&\fIenv_keep\fR オプションによって許可されたものが含まれている。
+これは、言わば、環境変数のホワイトリストである。
+.PP
+これに対して、\fIenv_reset\fR オプションが無効になっている場合は、
+\&\fIenv_check\fR や \fIenv_delete\fR オプションによって明示的に拒否されていないかぎり、
+いかなる環境変数も呼び出し側のプロセスから継承される。この場合、
+\&\fIenv_check\fR や \fIenv_delete\fR はブラックリストのように振舞うわけだ。
+危険性のある環境変数のすべてをブラックリストに載せることは不可能なので、
+\&\fIenv_reset\fR を有効にしておくデフォルトの動作を採用することをお勧めする。
+.PP
+どんな場合でも、値が \f(CW\*(C`()\*(C'\fR で始まる変数は除去されるが、
+それは \fBbash\fR の関数として解釈される恐れがあるからである。
+\&\fBsudo\fR が許可、または拒否する環境変数のリストは、
+\&\f(CW\*(C`sudo \-V\*(C'\fR を root の資格で実行したときの出力中に表示される。
+.PP
+たいていのオペレーティングシステムのダイナミック・リンカは、
+ダイナミック・リンキングを制御する働きがある環境変数を、\fBsudo\fR もその一つである
+setuid プログラムの環境から除去するようになっていることに注意してほしい。
+オペレーティングシステムによって名前は様々だが、
+\&\f(CW\*(C`_RLD*\*(C'\fR, \f(CW\*(C`DYLD_*\*(C'\fR, \f(CW\*(C`LD_*\*(C'\fR, 
+\&\f(CW\*(C`LDR_*\*(C'\fR, \f(CW\*(C`LIBPATH\*(C'\fR,
+\&\f(CW\*(C`SHLIB_PATH\*(C'\fR などが、この範疇に含まれるだろう。
+こうした変数は、\fBsudo\fR の実行が始まるよりも前に、環境から除去されるので、
+\&\fBsudo\fR がそうした変数を保持することは不可能である。
+.PP
+特例として、\fBsudo\fR に \fB\-i\fR オプション (initial login)
+が指定されている場合は、\fIsudoers\fR は \fIenv_reset\fR
+の有効・無効にかかわらず、環境を初期化する。
+環境変数 \fI\s-1DISPLAY\s0\fR, \fI\s-1PATH\s0\fR,
+\&\fI\s-1TERM\s0\fR は変更されないが、\fI\s-1HOME\s0\fR, \fI\s-1MAIL\s0\fR,
+\&\fI\s-1SHELL\s0\fR, \fI\s-1USER\s0\fR, \fI\s-1LOGNAME\s0\fR は、
+変身対象ユーザのそれにセットされるのである。Linux や \s-1AIX\s0 システムでは、
+\&\fI/etc/environment\fR の内容も取り込まれる。
+それ以外の環境変数はすべて捨てられる。
+.PP
+最後に。\fIenv_file\fR が設定されている場合は、
+そのファイルに記載されたいかなる変数も、そこで指定されている値にセットされることになる。
+.SH "SUDOERS ファイルの書式"
+.IX Header "SUDOERS FILE FORMAT"
 \&\fIsudoers\fR ファイルは二種類のエントリから構成されている。
-(要するに変数である) エイリアスと (誰が何を実行できるかを
-指定している) ユーザ設定だ。
+(要するに変数である) エイリアスと (誰が何を実行できるかを指定している)
+ユーザ設定だ。
 .IP "[\fB訳注\fR]:" 8
 .IX Item "footnote1"
-訳者としては、「エイリアス、デフォルト定、ユーザ設定の三種類の
+訳者としては、「エイリアス、デフォルト定、ユーザ設定の三種類の
 エントリから構成されている」と言った方が実態に合っているのではないかと思う。
 .PP
 一人のユーザに複数のエントリがマッチするときは、順番に適用される。
-複数の指定がマッチしている箇所については、最後にマッチしたものが
-使用される (それが一番明示的なマッチだとはかぎらないが)。
-.PP
-以下では \fIsudoers\fR の文法を拡張 Backus-Naur 記法 (\s-1EBNF\s0) を
-使って記述する。\s-1EBNF\s0 がどんなものか知らないからといって、
-あきらめないでいただきたい。わりと簡単なものだし、以下に出てくる定義には
-詳しい説明を付けておきますから。
-.Sh "\s-1EBNF\s0 早わかり"
+複数の指定がマッチしている箇所については、最後にマッチしたものが使用される
+(それが一番明示的なマッチだとはかぎらないが)。
+.PP
+以下では \fIsudoers\fR の文法を拡張 Backus-Naur 記法 (\s-1EBNF\s0)
+を用いて記述する。\s-1EBNF\s0 がどんなものか御存じないからといって、
+あきらめないでいただきたい。わりと簡単なものだし、
+以下に出てくる定義には詳しい説明を付けておきますから。
+.SS "\s-1EBNF\s0 の基礎の基礎"
 .IX Subsection "Quick guide to EBNF"
 \&\s-1EBNF\s0 は言語の文法を記述する簡潔で厳密な方法である。
 \&\s-1EBNF\s0 の個々の定義は生成規則からできている。たとえば、
@@ -199,15 +318,16 @@ sudoers \- どのユーザが何を実行できるかのリスト
 \& シンボル ::= 定義 | 別の定義 1 | 別の定義 2 ...
 .Ve
 .PP
-個々の生成規則は、ほかの生成規則を参照し、そのようにして言語の文法を
-作り上げている。また \s-1EBNF\s0 には以下の演算子が含まれるが、
-正規表現で御存じの読者も多いだろう。だが、いわゆる「ワイルドカード」文字と
-混同しないでいただきたい。あれは別の意味を持っている。
+個々の生成規則は、ほかの生成規則を参照し、そのようにして言語の文法を作り上げている。
+また \s-1EBNF\s0 には以下の演算子が含まれるが、
+正規表現で御存じの読者も多いだろう。
+だが、いわゆる「ワイルドカード」文字と混同しないでいただきたい。
+あれは別の意味を持っている。
 .ie n .IP "\*(C`?\*(C'" 4
 .el .IP "\f(CW\*(C`?\*(C'\fR" 4
 .IX Item "?"
-直前のシンボル (または、シンボルのグループ) が、あってもなくてもよいことを
-意味する。すなわちそのシンボルは、1 回現れてもよいし、1 回も現れないでもよい。
+直前のシンボル (または、シンボルのグループ) が、あってもなくてもよいことを意味する。
+すなわちそのシンボルは、1 回現れてもよいし、1 回も現れないでもよい。
 .ie n .IP "\*(C`*\*(C'" 4
 .el .IP "\f(CW\*(C`*\*(C'\fR" 4
 .IX Item "*"
@@ -218,9 +338,10 @@ sudoers \- どのユーザが何を実行できるかのリスト
 直前のシンボル (または、シンボルのグループ) が 1 回以上現れる。
 .PP
 丸カッコを使うと、複数のシンボルをグループにまとめることができる。
-なお混乱を避けるため、以下の定義で (シンボル名ではなく) 文字どおりの
-文字列や記号を示す場合は、それをシングルクォート ('') で囲むことにする。
-.Sh "エイリアス"
+なお混乱を避けるため、以下の定義で (シンボル名ではなく)
+文字どおりの文字列や記号を示す場合は、それをシングルクォート ('')
+で囲むことにする。
+.SS "エイリアス"
 .IX Subsection "Aliases"
 エイリアスには四種類ある。\f(CW\*(C`User_Alias\*(C'\fR,
 \&\f(CW\*(C`Runas_Alias\*(C'\fR, \f(CW\*(C`Host_Alias\*(C'\fR,
@@ -253,8 +374,9 @@ sudoers \- どのユーザが何を実行できるかのリスト
 \&\f(CW\*(C`Runas_Alias\*(C'\fR, \f(CW\*(C`Host_Alias\*(C'\fR,
 \&\f(CW\*(C`Cmnd_Alias\*(C'\fR のうちの一つである。
 \&\f(CW\*(C`NAME\*(C'\fR はアルファベットの大文字、数字、
-アンダースコア ('_') からなる文字列であるが、\fB先頭の文字は大文字\fRで
-なければならない。同じタイプのエイリアス定義を、コロンで (':') つないで、
+アンダースコア ('_') からなる文字列であるが、
+\&\fB先頭の文字は大文字\fRでなければならない。同じタイプのエイリアス定義を、
+コロンで (':') つないで、
 一行に複数書くこともできる。たとえば、
 .PP
 .Vb 1
@@ -267,95 +389,117 @@ sudoers \- どのユーザが何を実行できるかのリスト
 \& User_List ::= User |
 \&               User \*(Aq,\*(Aq User_List
 \&
-\& User ::= \*(Aq!\*(Aq* username |
-\&          \*(Aq!\*(Aq* \*(Aq#\*(Aquid |
-\&          \*(Aq!\*(Aq* \*(Aq%\*(Aqgroup |
-\&          \*(Aq!\*(Aq* \*(Aq+\*(Aqnetgroup |
-\&          \*(Aq!\*(Aq* \*(Aq%:\*(Aqnonunix_group |
+\& User ::= \*(Aq!\*(Aq* user name |
+\&          \*(Aq!\*(Aq* #uid |
+\&          \*(Aq!\*(Aq* %group |
+\&          \*(Aq!\*(Aq* %#gid |
+\&          \*(Aq!\*(Aq* +netgroup |
+\&          \*(Aq!\*(Aq* %:nonunix_group |
+\&          \*(Aq!\*(Aq* %:#nonunix_gid |
 \&          \*(Aq!\*(Aq* User_Alias
 .Ve
 .PP
-\&\f(CW\*(C`User_List\*(C'\fR は一個以上の、ユーザ名、uid ('#' が
-頭に付く)、システムグループ名 ('%' が頭に付く) 、ネットグループ名
-('+' が頭に付く)、非 UNIX グループ名 ('%:' が頭に付く)、
-\&\f(CW\*(C`User_Alias\*(C'\fR からなる。
-リストの各項目の前には一個以上の '!' 演算子を付けてもよい。
-奇数個の '!' はその項目の値を否定する。偶数個の場合は互い相殺するだけだ。
-.PP
-ユーザ名、グループ名、ネットグループ名、非 UNIX グループ名は、
-ダブルクォートで囲めば、特殊文字をエスケープしないですむ。
-ダブルクォートで囲まずに特殊文字を使いたいなら、エスケープした 16 進数を
-指定してやればよい。たとえば、スペースなら \ex20 という具合だ。
-.PP
-非 UNIX グループ名の書式は、利用するサービスの実装によって決まる。たとえば、
-\&\s-1Quest Authentication Services\s0 の \s-1AD\s0 バックエンドは、
+\&\f(CW\*(C`User_List\*(C'\fR を構成するのは、一個以上の次のものである。
+ユーザ名、ユーザ ID (接頭辞 '#' が付く)、システムグループ名やその ID
+(それぞれ、接頭辞 '%' と '%#' が付く)、ネットグループ名 (接頭辞 '+' が付く)、
+非 Unix グループ名やその ID (それぞれ、接頭辞 '%:' と '%:#' が付く)、
+それに \f(CW\*(C`User_Alias\*(C'\fR。
+リストの各項目の前には一個以上の '!' 演算子を付けてもよい。 
+奇数個の '!' はその項目の値を否定する。偶数個の場合は互い相殺されるだけだ。
+.PP
+ユーザ名、\f(CW\*(C`uid\*(C'\fR、グループ名、\f(CW\*(C`gid\*(C'\fR、
+ネットグループ名、非 Unix グループ名、非 Unix グループ の
+\&\f(CW\*(C`gid\*(C'\fR は、ダブルクォートで囲めば、
+特殊文字をエスケープしないですむ。
+ダブルクォートで囲まずに特殊文字を使いたいなら、
+エスケープした 16 進数を指定してやればよい。たとえば、
+スペースなら \ex20 という具合だ。ダブルクォートを使用する場合は、
+接頭辞があれば、それをダブルクォートの内側に入れなければならない。
+.PP
+非 Unix グループやその \f(CW\*(C`gid\*(C'\fR の書式が、
+実際にどんなものになるかは、利用するグループ・プロバイダ・プラグイン
+(group provider plugin) 次第である (後述する \fIgroup_plugin\fR
+オプションの説明も見てほしい)。たとえば、
+\&\s-1QAS\s0 (\s-1Quest Authentication Services\s0) の \s-1AD\s0 プラグインは、
 以下の書式をサポートしている。
 .IP "\(bu" 4
-同じドメインのグループ:  \*(L"Group Name\*(R"
+同じドメインのグループ: \*(L"Group Name\*(R"
 .IP "\(bu" 4
-任意のドメインのグループ:  \*(L"Group Name@FULLY.QUALIFIED.DOMAIN\*(R"
+任意のドメインのグループ: \*(L"Group Name@FULLY.QUALIFIED.DOMAIN\*(R"
 .IP "\(bu" 4
 グループ \s-1SID:\s0 \*(L"S\-1\-2\-34\-5678901234\-5678901234\-5678901234\-567\*(R"
 .PP
-グループ名を囲む引用符は任意であることに注意してほしい。文字列を
-引用符で囲まない場合は、スペースや '@' 記号をエスケープするために、
+グループ名を囲む引用符は任意であることに注意してほしい。
+文字列を引用符で囲まない場合は、スペースや特殊文字をエスケープするために、
 バックスラッシュ (\e) を使わなければならない。
+エスケープする必要がある文字のリストについては、
+「ほかの特殊文字と予約語」のセクションをご覧になってほしい。
 .PP
 .Vb 2
 \& Runas_List ::= Runas_Member |
 \&                Runas_Member \*(Aq,\*(Aq Runas_List
 \&
-\& Runas_Member ::= \*(Aq!\*(Aq* username |
-\&                  \*(Aq!\*(Aq* \*(Aq#\*(Aquid |
-\&                  \*(Aq!\*(Aq* \*(Aq%\*(Aqgroup |
+\& Runas_Member ::= \*(Aq!\*(Aq* user name |
+\&                  \*(Aq!\*(Aq* #uid |
+\&                  \*(Aq!\*(Aq* %group |
+\&                  \*(Aq!\*(Aq* %#gid |
+\&                  \*(Aq!\*(Aq* %:nonunix_group |
+\&                  \*(Aq!\*(Aq* %:#nonunix_gid |
 \&                  \*(Aq!\*(Aq* +netgroup |
 \&                  \*(Aq!\*(Aq* Runas_Alias
 .Ve
 .PP
 \&\f(CW\*(C`Runas_List\*(C'\fR は \f(CW\*(C`User_List\*(C'\fR に似ている。
 違うのは、\f(CW\*(C`User_Alias\*(C'\fR ではなく、
-\&\f(CW\*(C`Runas_Alias\*(C'\fR が使えることだ。ユーザ名やグループ名の
\83\9eã\83\83ã\83\81ã\81¯æ\96\87å­\97å\88\97ã\81¨ã\81\97ã\81¦è¡\8cã\82\8fã\82\8cã\82\8bã\81\93ã\81¨ã\81«æ°\97ã\82\92ä»\98ã\81\91ã\81¦ã\81»ã\81\97ã\81\84ã\80\82è¨\80ã\81\84æ\8f\9bã\81\88ã\82\8bã\81¨ã\80\81
-二つのユーザ名 (あるいはグループ名) は、かりに同じ uid (gid) を
-持っていても、別個のものと見なされるのである。
+\&\f(CW\*(C`Runas_Alias\*(C'\fR が使えることだ。
\83¦ã\83¼ã\82¶å\90\8dã\82\84ã\82°ã\83«ã\83¼ã\83\97å\90\8dã\81®ã\83\9eã\83\83ã\83\81ã\81¯æ\96\87å­\97å\88\97ã\81¨ã\81\97ã\81¦è¡\8cã\82\8fã\82\8cã\82\8bã\81\93ã\81¨ã\81«æ°\97ã\82\92ä»\98ã\81\91ã\81¦ã\81»ã\81\97ã\81\84ã\80\82
+言い換えると、二つのユーザ名 (あるいはグループ名) は、かりに同じ uid (gid)
+持っていても、別個のものと見なされるのである。
 だから、もし同じ uid を持ったすべてのユーザ名にマッチさせたかったら 
-(たとえば、root と toor がそうだとしよう)、ユーザ名の代わりに uid を
-使えばよい (この例なら、#0 である)。
+(たとえば、root と toor がそうだとしよう)、ユーザ名の代わりに
+uid を使えばよい (この例なら、#0 である)。
 .PP
 .Vb 2
 \& Host_List ::= Host |
 \&               Host \*(Aq,\*(Aq Host_List
 \&
-\& Host ::= \*(Aq!\*(Aq* hostname |
+\& Host ::= \*(Aq!\*(Aq* host name |
 \&          \*(Aq!\*(Aq* ip_addr |
 \&          \*(Aq!\*(Aq* network(/netmask)? |
-\&          \*(Aq!\*(Aq* \*(Aq+\*(Aqnetgroup |
+\&          \*(Aq!\*(Aq* +netgroup |
 \&          \*(Aq!\*(Aq* Host_Alias
 .Ve
 .PP
 \&\f(CW\*(C`Host_List\*(C'\fR は一個以上の、ホスト名、\s-1IP\s0 アドレス、
-ネットワークアドレス、ネットグループ名 (頭に '+' が付く)、および
-他のエイリアスからなる。ここでもまた、'!' 演算子を付けて、項目の値を
-否定することができる。ネットワークアドレスにネットマスクを
-指定しなかった場合は、\fBsudo\fR がローカルホストの
-ネットワークインターフェースを一つ一つ参照し、指定された
-ネットワークアドレスと同じアドレスを持つインターフェースがあれば、
+ネットワークアドレス、ネットグループ名 (接頭辞 '+' が付く)、
+および他のエイリアスからなる。ここでもまた、'!' 演算子を付けて、
+項目の値を否定することができる。
+ネットワークアドレスにネットマスクを指定しなかった場合は、
+\&\fBsudo\fR がローカルホストのネットワークインターフェースを一つ一つ参照し、
+指定されたネットワークアドレスと同じアドレスを持つインターフェースがあれば、
 そのネットマスクを使用することになる。ネットマスクの指定は、
 標準の \s-1IP\s0 アドレス表記 (たとえば 255.255.255.0 とか 
 ffff:ffff:ffff:ffff:: とか) でもよく、\&\s-1CIDR\s0 表記 (ビット数、
-たとえば 24 とか 64 とか) でもよい。ホスト名の一部にシェル風の
-ワイルドカードを使用することができるが (下記のワイルドカードのセクションを
-参照)、使用マシンの \f(CW\*(C`hostname\*(C'\fR コマンドが
-完全修飾ドメイン名を返さない場合、ワイルドカードを
-利用するには \fIfqdn\fR オプションを使う必要がある。
+たとえば 24 とか 64 とか) でもよい。
+ホスト名の一部にシェル風のワイルドカードを使用することができるが
+(下記の「ワイルドカード」セクションを参照)、使用マシンの
+\&\f(CW\*(C`hostname\*(C'\fR コマンドが完全修飾ドメイン名 (FQDN) を返さない場合、
+ワイルドカードを利用するには \fIfqdn\fR オプションを使う必要がある。
+なお、\fBsudo\fR がチェックするのは、
+実在のネットワークインターフェースだけだということに留意してほしい。
+すなわち、\s-1IP\s0 アドレス 127.0.0.1 (localhost)
+がマッチすることは、絶対にないのである。
+また、\*(L"localhost\*(R" というホスト名がマッチするのは、
+それが実際のホスト名であるときだけであり、
+それは通常、ネットワークにつながっていないシステムの場合にしか当てはまらない。
 .PP
 .Vb 2
 \& Cmnd_List ::= Cmnd |
 \&               Cmnd \*(Aq,\*(Aq Cmnd_List
 \&
-\& commandname ::= filename |
-\&                 filename args |
-\&                 filename \*(Aq""\*(Aq
+\& commandname ::= file name |
+\&                 file name args |
+\&                 file name \*(Aq""\*(Aq
 \&
 \& Cmnd ::= \*(Aq!\*(Aq* commandname |
 \&          \*(Aq!\*(Aq* directory |
@@ -364,40 +508,41 @@ ffff:ffff:ffff:ffff:: とか) でもよく、\&\s-1CIDR\s0 表記 (ビット数
 .Ve
 .PP
 \&\f(CW\*(C`Cmnd_List\*(C'\fR は一個以上の、コマンド名、ディレクトリ、
-他のエイリアスからなるリストである。コマンド名は絶対パスのファイル名で
\81\82ã\82\8aã\80\81ã\82·ã\82§ã\83«é¢¨ã\81®ã\83¯ã\82¤ã\83«ã\83\89ã\82«ã\83¼ã\83\89ã\82\92å\90«ã\82\93ã\81§ã\81\84ã\81¦ã\82\82æ§\8bã\82\8fã\81ªã\81\84 (ä¸\8bè¨\98ã\81®ã\83¯ã\82¤ã\83«ã\83\89ã\82«ã\83¼ã\83\89ã\81®
-セクションを参照)。単にファイル名だけ指定した場合、ユーザはお望みの
\81©ã\82\93ã\81ªå¼\95ã\81\8dæ\95°ã\81§ã\82\82ä»\98ã\81\91ã\81¦ã\81\9dã\81®ã\82³ã\83\9eã\83³ã\83\89ã\82\92å®\9fè¡\8cã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82ã\81¨ã\81¯è¨\80ã\81\88ã\80\81
\82³ã\83\9eã\83³ã\83\89ã\83©ã\82¤ã\83³å¼\95ã\81\8dæ\95°ã\82\92 (ã\83¯ã\82¤ã\83«ã\83\89ã\82«ã\83¼ã\83\89ã\82\92å\90«ã\82\81ã\81¦) æ\8c\87å®\9aã\81\97ã\81¦ã\82\82æ§\8bã\82\8fã\81ªã\81\84ã\81\97ã\80\81
-また、引き数に \f(CW""\fR を指定して、そのコマンドは
+他のエイリアスからなるリストである。コマンド名は絶対パスのファイル名であり、
\82·ã\82§ã\83«é¢¨ã\81®ã\83¯ã\82¤ã\83«ã\83\89ã\82«ã\83¼ã\83\89ã\82\92å\90«ã\82\93ã\81§ã\81\84ã\81¦ã\82\82æ§\8bã\82\8fã\81ªã\81\84
+(下記の「ワイルドカード」セクションを参照)。単にファイル名だけ指定した場合、
\83¦ã\83¼ã\82¶ã\81¯ã\81\8aæ\9c\9bã\81¿ã\81®ã\81©ã\82\93ã\81ªå¼\95ã\81\8dæ\95°ã\81§ã\82\82ä»\98ã\81\91ã\81¦ã\81\9dã\81®ã\82³ã\83\9eã\83³ã\83\89ã\82\92å®\9fè¡\8cã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82
\81¨ã\81¯è¨\80ã\81\88ã\80\81ã\82³ã\83\9eã\83³ã\83\89ã\83©ã\82¤ã\83³å¼\95ã\81\8dæ\95°ã\82\92 (ã\83¯ã\82¤ã\83«ã\83\89ã\82«ã\83¼ã\83\89ã\82\92å\90«ã\82\81ã\81¦)
+指定しても構わないし、また、引き数に \f(CW""\fR を指定して、そのコマンドは
 \&\fBコマンドライン引き数なし\fRの実行のみが可能だと指示することもできる。
 ディレクトリは '/' で終わる絶対パス名である。
-\&\f(CW\*(C`Cmnd_List\*(C'\fR に
\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªã\82\92æ\8c\87å®\9aã\81\99ã\82\8bã\81¨ã\80\81ã\83¦ã\83¼ã\82¶ã\83¼ã\81¯ã\81\9dã\81®ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªå\86\85ã\81®ä»»æ\84\8fã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\82\92
-実行できるようになる (だが、そのサブディレクトリにあるファイルは実行できない)。
+\&\f(CW\*(C`Cmnd_List\*(C'\fR にディレクトリを指定すると、
\83¦ã\83¼ã\82¶ã\83¼ã\81¯ã\81\9dã\81®ã\83\87ã\82£ã\83¬ã\82¯ã\83\88ã\83ªå\86\85ã\81®ä»»æ\84\8fã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\82\92å®\9fè¡\8cã\81§ã\81\8dã\82\8bã\82\88ã\81\86ã\81«ã\81ªã\82\8b
+(だが、そのサブディレクトリにあるファイルは実行できない)。
 .PP
 \&\f(CW\*(C`Cmnd\*(C'\fR がコマンドライン引き数を伴っている場合は、
-\&\f(CW\*(C`Cmnd\*(C'\fR 中の引き数は、ユーザがコマンドラインに打ち込む
-引き数と正確に一致しなければならない (Cmnd 中の引き数にワイルドカードが
-あるならば、それがコマンドラインの引き数とマッチしなければならない)。
-以下に挙げる文字をコマンド引き数の中で用いるときは、'\e' によって
-エスケープしなければならないことに注意してほしい。 ',', ':', '=', '\e' が
-それである。スペシャルコマンド \f(CW"sudoedit"\fR は、ユーザが 
-\&\fBsudo\fR を \fB-e\fR オプション付きで (あるいは、\fBsudoedit\fR という
-コマンド名で) 実行することを許可するために使用する。この場合、
-コマンドライン引き数を取ることができるのは、普通のコマンドとまったく
-同様である。
-.Sh "デフォルトの指定 (Defaults)"
+\&\f(CW\*(C`Cmnd\*(C'\fR 中の引き数は、
+ユーザがコマンドラインに打ち込む引き数と正確に一致しなければならない
+(Cmnd 中の引き数にワイルドカードがあるならば、
+それがコマンドラインの引き数とマッチしなければならない)。
+以下に挙げる文字をコマンド引き数の中で用いるときは、
+\&'\e' によってエスケープしなければならないことに注意してほしい。
+\&',', ':', '=', '\e' がそれである。
+\&\f(CW"sudoedit"\fR という特別なコマンド名は、ユーザが \fBsudo\fR を
+\&\fB-e\fR オプション付きで (あるいは、\fBsudoedit\fR というコマンド名で)
+実行することを許可するために使用される。この場合、
+コマンドライン引き数を取ることができるのは、普通のコマンドとまったく同様である。
+.SS "デフォルト設定 (Defaults)"
 .IX Subsection "Defaults"
-かなりの設定オプションが、一行以上の \f(CW\*(C`Default_Entry\*(C'\fR 行を
-使うことで実行時にデフォルトの値から変更可能だ。その効果の及ぶ範囲は、
-任意のホストのすべてのユーザにすることもできるし、ある特定のホストの
-すべてのユーザ、ある特定のユーザ、ある特定のコマンド、
-ある特定のユーザとして実行するコマンドに限定することもできる。
-気を付けてほしいのは、コマンドに限定した Defaults 行に
-コマンドライン引き数まで書くことができないことだ。引き数を指定する必要が
-ある場合は、\f(CW\*(C`Cmnd_Alias\*(C'\fR を定義して、代わりにそれを
-参照すればよい。
+かなりの設定オプションが、一行以上の \f(CW\*(C`Default_Entry\*(C'\fR
+行を使うことで実行時にデフォルトの値から変更可能だ。その効果の及ぶ範囲は、
+任意のホストのすべてのユーザにすることもできるし、
\81\82ã\82\8bç\89¹å®\9aã\81®ã\83\9bã\82¹ã\83\88ã\81®ã\81\99ã\81¹ã\81¦ã\81®ã\83¦ã\83¼ã\82¶ã\80\81ã\81\82ã\82\8bç\89¹å®\9aã\81®ã\83¦ã\83¼ã\82¶ã\80\81ã\81\82ã\82\8bç\89¹å®\9aã\81®ã\82³ã\83\9eã\83³ã\83\89ã\80\81
\81\82ã\82\8bç\89¹å®\9aã\81®ã\83¦ã\83¼ã\82¶ã\81¨ã\81\97ã\81¦å®\9fè¡\8cã\81\99ã\82\8bã\82³ã\83\9eã\83³ã\83\89ã\81ªã\81©ã\81«é\99\90å®\9aã\81\99ã\82\8bã\81\93ã\81¨ã\82\82ã\81§ã\81\8dã\82\8bã\80\82
+気を付けてほしいのは、コマンドに限定した
+Defaults 行にコマンドライン引き数まで書くことができないことだ。
+引き数を指定する必要がある場合は、\f(CW\*(C`Cmnd_Alias\*(C'\fR を定義して、
+代わりにそれを参照すればよい。
 .PP
 .Vb 5
 \& Default_Type ::= \*(AqDefaults\*(Aq |
@@ -417,26 +562,27 @@ ffff:ffff:ffff:ffff:: とか) でもよく、\&\s-1CIDR\s0 表記 (ビット数
 \&               \*(Aq!\*(Aq* Parameter
 .Ve
 .PP
-パラメータは\fBフラグ\fR、\fB整数値\fR、\fB文字列\fR、\fBリスト\fR の
-どれでもよい。フラグは要するにブーリアン (真偽値) であり、'!' 演算子で 
-off にできる。整数値、文字列、リストのパラメータにも、真偽値として使用して
-それを無効にできるものがいくつか存在する。パラメータの値が複数の単語を
-含むときは、値をダブルクオート (\f(CW\*(C`"\*(C'\fR) で囲むとよい。
-特殊文字はバックスラッシュ (\f(CW\*(C`\e\*(C'\fR) でエスケープすることが
-できる。
+パラメータは\fBフラグ\fR、\fB整数値\fR、\fB文字列\fR、
+\&\fBリスト\fRのどれでもよい。フラグは要するにブーリアン (真偽値) であり、
+\&'!' 演算子で off にできる。整数値、文字列、リストのパラメータにも
+真偽値として使用して、それを無効にできるものがいくつか存在する。
+パラメータの値が複数の単語を含むときは、値をダブルクオート
+(\f(CW\*(C`"\*(C'\fR) で囲むとよい。特殊文字はバックスラッシュ
+(\f(CW\*(C`\e\*(C'\fR) でエスケープすることができる。
 .PP
 リストには代入演算子が \f(CW\*(C`\=\*(C'\fR のほかにもう二つある。
-\&\f(CW\*(C`+=\*(C'\fR と \f(CW\*(C`\-=\*(C'\fR である。こうした演算子は
-それぞれリストに付け加えたり、リストから削除したりするのに使用する。
-\&\f(CW\*(C`\-=\*(C'\fR 演算子を使って、リストに存在しない要素を
-消去しようとしても、エラーにはならない。
+\&\f(CW\*(C`+=\*(C'\fR と \f(CW\*(C`\-=\*(C'\fR である。こうした演算子は
\81\9dã\82\8cã\81\9eã\82\8cã\80\81ã\83ªã\82¹ã\83\88ã\81«ä»\98ã\81\91å\8a ã\81\88ã\81\9fã\82\8aã\80\81ã\83ªã\82¹ã\83\88ã\81\8bã\82\89å\89\8aé\99¤ã\81\97ã\81\9fã\82\8aã\81\99ã\82\8bã\81®ã\81«ä½¿ç\94¨ã\81\99ã\82\8bã\80\82
+\&\f(CW\*(C`\-=\*(C'\fR 演算子を使って、
+リストに存在しない要素を消去しようとしても、エラーにはならない。
 .PP
-Defaults 行の解析は、次の順序で行われる。最初に汎用、Host、User の
-Defaults が解析され、それから Runas、最後にコマンドの Defaults の順番になる。
+Defaults 行の解析は、次の順序で行われる。最初に汎用、Host、
+User の Defaults が解析され、それから Runas の Defaults、最後にコマンドの
+Defaults の順番になる。
 .PP
 Defaults 行で使用できるパラメータのリストについては、
 「SUDOERS のオプション」を御覧いただきたい。
-.Sh "ユーザの設定 (User Specification)"
+.SS "ユーザ設定 (User Specification)"
 .IX Subsection "User Specification"
 .Vb 2
 \& User_Spec ::= User_List Host_List \*(Aq=\*(Aq Cmnd_Spec_List \e
@@ -445,54 +591,66 @@ Defaults 行で使用できるパラメータのリストについては、
 \& Cmnd_Spec_List ::= Cmnd_Spec |
 \&                    Cmnd_Spec \*(Aq,\*(Aq Cmnd_Spec_List
 \&
-\& Cmnd_Spec ::= Runas_Spec? Tag_Spec* Cmnd
+.ie \n(SL \& Cmnd_Spec ::= Runas_Spec? SELinux_Spec? Tag_Spec* Cmnd
+.el \& Cmnd_Spec ::= Runas_Spec? Tag_Spec* Cmnd
 \&
 \& Runas_Spec ::= \*(Aq(\*(Aq Runas_List? (\*(Aq:\*(Aq Runas_List)? \*(Aq)\*(Aq
 \&
+.if \n(SL \{\
+\& SELinux_Spec ::= (\*(AqROLE=role\*(Aq | \*(AqTYPE=type\*(Aq)
+\&
+\}
 \& Tag_Spec ::= (\*(AqNOPASSWD:\*(Aq | \*(AqPASSWD:\*(Aq | \*(AqNOEXEC:\*(Aq | \*(AqEXEC:\*(Aq |
-\&               \*(AqSETENV:\*(Aq | \*(AqNOSETENV:\*(Aq )
+\&               \*(AqSETENV:\*(Aq | \*(AqNOSETENV:\*(Aq | \*(AqLOG_INPUT:\*(Aq | \*(AqNOLOG_INPUT:\*(Aq |
+\&               \*(AqLOG_OUTPUT:\*(Aq | \*(AqNOLOG_OUTPUT:\*(Aq)
 .Ve
 .PP
-\&\fBユーザの設定\fRは、あるユーザが指定されたホストで (どのユーザに
-変身して) どのコマンドを実行できるかを決定する。デフォルトでは、
-コマンドは \fBroot\fR に変身して実行されるが、これはコマンドごとに
-変更することができる。
+\&\fBユーザ設定\fRは、あるユーザが、指定されたホストで (どのユーザに変身して)
+どのコマンドを実行できるかを決定する。デフォルトでは、コマンドは \fBroot\fR
+に変身して実行されるが、これはコマンドごとに変更することができる。
+.PP
+ユーザ設定の基本構造は、
+.PP
+.Vb 2
+\&      who     where     = (as_whom)      what 
+\&     [誰が どのホストで = (誰に変身して) 何を]
+.Ve
 .PP
-ユーザの設定の基本構造は、「誰が どこで = (誰に変身して) 何を」
-である (who where = (as_whom) what)。
-構成部分に分けて説明しよう。
-.Sh "Runas_Spec (どのユーザやグループに変身できるか)"
+である。構成部分に分けて説明しよう。
+.SS "Runas_Spec (どのユーザやグループに変身できるか)"
 .IX Subsection "Runas_Spec"
-\&\f(CW\*(C`Runas_Spec\*(C'\fR は変身の対象となるユーザやグループを
-規定している。完全な形の  \f(CW\*(C`Runas_Spec\*(C'\fR は、(上で定義して
\81\84ã\82\8bã\82\88ã\81\86ã\81«) ã\82³ã\83­ã\83³ (':') ã\81§å\8cºå\88\87ã\82\89ã\82\8cã\80\81ã\82«ã\83\83ã\82³ã\81§å\9b²ã\81¾ã\82\8cã\81\9fã\80\81äº\8cã\81¤ã\81® 
-\&\f(CW\*(C`Runas_List\*(C'\fR からなっている。
-一つ目の \f(CW\*(C`Runas_List\*(C'\fR は、
-\&\fBsudo\fR で \fB\-u\fR オプションを使ったときに変身できるユーザを
-指している。二番目の方が規定しているのは、\fBsudo\fR の \fB\-g\fR
+\&\f(CW\*(C`Runas_Spec\*(C'\fR は変身の対象となるユーザやグループを規定している。
+完全な形の \f(CW\*(C`Runas_Spec\*(C'\fR は、(上で定義しているように)
\82³ã\83­ã\83³ (':') ã\81§å\8cºå\88\87ã\82\89ã\82\8cã\80\81
+カッコで囲まれた、二つの \f(CW\*(C`Runas_List\*(C'\fR からなっている。
+一つ目の \f(CW\*(C`Runas_List\*(C'\fR は、\fBsudo\fR で
+\&\fB\-u\fR オプションを使ったときに変身できるユーザを指している。
+二番目の方が規定しているのは、\fBsudo\fR の \fB\-g\fR
 オプションによって指定できるグループのリストだ。
 両方の \f(CW\*(C`Runas_List\*(C'\fR が指定されている場合は、
-それぞれの \f(CW\*(C`Runas_List\*(C'\fR にリストされているユーザと
-グループの任意の組み合わせで、コマンドを実行することが可能である。
+それぞれの \f(CW\*(C`Runas_List\*(C'\fR
+にリストされているユーザとグループの任意の組み合わせで、
+コマンドを実行することができる。
 一つ目の \f(CW\*(C`Runas_List\*(C'\fR だけが指定されているときは、
 リスト中のいかなるユーザにでも変身してコマンドを実行できるが、
 \&\fB\-g\fR オプションを指定することはできない。
 一つ目の \f(CW\*(C`Runas_List\*(C'\fR が空で、二番目だけ指定されている場合は、
 \&\fBsudo\fR を実行するユーザの資格で、グループを
 \&\f(CW\*(C`Runas_List\*(C'\fR にリストされている任意のグループに設定して、
-コマンドを実行することができる。\f(CW\*(C`Runas_Spec\*(C'\fR がまったく
-指定されていないときは、
+コマンドを実行することができる。
+\&\f(CW\*(C`Runas_Spec\*(C'\fR がまったく指定されていないときは、
 \&\fBroot\fR としてコマンドを実行できるが、グループを指定することはできない。
 .PP
-\&\f(CW\*(C`Runas_Spec\*(C'\fR は、それに続くコマンドに対してデフォルトを
-定める。それはどういうことかと言うと、次のようなエントリがあったとしよう。
+\&\f(CW\*(C`Runas_Spec\*(C'\fR は、
+それに続くコマンドに対してデフォルトを定める。それはどういうことかと言うと、
+次のようなエントリがあったとしよう。
 .PP
 .Vb 1
 \& dgb    boulder = (operator) /bin/ls, /bin/kill, /usr/bin/lprm
 .Ve
 .PP
 ユーザ \fBdgb\fR は \fI/bin/ls\fR, \fI/bin/kill\fR,
-\&\fI/usr/bin/lprm\fR を実行することができる。ただし、\&\fBoperator\fR 
+\&\fI/usr/bin/lprm\fR を実行することができる。ただし、\fBoperator\fR 
 として実行できるだけだ。たとえば、次のようにである。
 .PP
 .Vb 1
@@ -507,8 +665,8 @@ Defaults 行で使用できるパラメータのリストについては、
 .Ve
 .PP
 すると、ユーザ \fBdgb\fR は、\fI/bin/ls\fR こそ \fBoperator\fR としてだが、
-\&\fI/bin/kill\fR や \fI/usr/bin/lprm\fR は \fBroot\fR の資格で
-実行できるようになる。
+\&\fI/bin/kill\fR や \fI/usr/bin/lprm\fR は
+\&\fBroot\fR の資格で実行できるようになる。
 .PP
 \&\fBdgb\fR が \f(CW\*(C`/bin/ls\*(C'\fR を実行するとき、
 変身対象ユーザとグループのどちらでも \fBoperator\fR にできるように、
@@ -519,27 +677,71 @@ Defaults 行で使用できるパラメータのリストについては、
 \&        /usr/bin/lprm
 .Ve
 .PP
-次の例では、ユーザ \fBtcm\fR が モデムのデバイスファイルにアクセスする
-コマンドを dialer グループとして実行できるようにしている。
-この例では、グループしか指定できないことに注意してほしい。コマンドは
-ユーザ \fBtcm\fR の資格で実行されるのである。
+注意してほしいが、\f(CW\*(C`Runas_Spec\*(C'\fR のグループの部分は、
+コマンドをそのグループとして実行することをユーザに許可しているのであって、
+そうすることをユーザに強制しているのではない。コマンドラインで
+グループを指定しない場合は、コマンドは、パスワード・データベースにある
+変身対象ユーザのエントリに登録されているグループとして
+実行されることになるのだ。以下のコマンドはすべて、上記の sudoers
+エントリによって許可されることになるだろう。
+.PP
+.Vb 3
+\& $ sudo \-u operator /bin/ls
+\& $ sudo \-u operator \-g operator /bin/ls
+\& $ sudo \-g operator /bin/ls
+.Ve
+.PP
+次の例では、ユーザ \fBtcm\fR が
+モデムのデバイスファイルにアクセスするコマンドを
+dialer グループとして実行できるようにしている。
 .PP
 .Vb 2
 \& tcm    boulder = (:dialer) /usr/bin/tip, /usr/bin/cu, \e
 \&        /usr/local/bin/minicom
 .Ve
-.Sh "Tag_Spec"
+.PP
+この例では、グループしか指定できないことに注意してほしい。コマンドは
+ユーザ \fBtcm\fR の資格のまま実行されるのである。たとえば、次のように。
+.PP
+.Vb 1
+\& $ sudo \-g dialer /usr/bin/cu
+.Ve
+.PP
+\&\f(CW\*(C`Runas_Spec\*(C'\fR には複数のユーザやグループが存在してもよい。
+その場合、ユーザは \fB\-u\fR や \fB\-g\fR オプションを使って、
+ユーザとグループのどんな組み合わせでも選択することができる。
+.PP
+.Vb 1
+\& alan   ALL = (root, bin : operator, system) ALL
+.Ve
+.PP
+この例では、ユーザ \fBalan\fR は root と bin ユーザのどちらに変身して、
+任意のコマンドを実行することもできる。また、グループを
+operator や system に設定することも自由である。
+.if \n(SL \{\
+.SS "SELinux_Spec"
+.IX Subsection "SELinux_Spec"
+SELinux をサポートするシステムでは、\fIsudoers\fR のエントリで
+SELinux の role や type をコマンドに関連付けることも可能である。
+コマンドについて指定した role や type は、\fIsudoers\fR 中で
+role や type にデフォルトの値が設定されていても、それよりも優先される。
+もっとも、role や type をコマンドラインで指定すれば、
+そちらが \fIsudoers\fR 中の値よりさらに優先されることになる。
+\}
+.SS "Tag_Spec"
 .IX Subsection "Tag_Spec"
-コマンドは 0 個以上のタグを伴うことができる。タグの値としては、 
+コマンドは 0 個以上のタグを伴うことができる。使用できるタグの値は 10 個あり、 
 \&\f(CW\*(C`NOPASSWD\*(C'\fR, \f(CW\*(C`PASSWD\*(C'\fR,
 \&\f(CW\*(C`NOEXEC\*(C'\fR, \f(CW\*(C`EXEC\*(C'\fR,
-\&\f(CW\*(C`SETENV\*(C'\fR, \f(CW\*(C`NOSETENV\*(C'\fR の六つが可能で
-ある。ある \f(CW\*(C`Cmnd\*(C'\fR にタグをセットすると、
+\&\f(CW\*(C`SETENV\*(C'\fR, \f(CW\*(C`NOSETENV\*(C'\fR,
+\&\f(CW\*(C`LOG_INPUT\*(C'\fR, \f(CW\*(C`NOLOG_INPUT\*(C'\fR,
+\&\f(CW\*(C`LOG_OUTPUT\*(C'\fR, \f(CW\*(C`NOLOG_OUTPUT\*(C'\fR
+が、それである。ある \f(CW\*(C`Cmnd\*(C'\fR にタグをセットすると、
 \&\f(CW\*(C`Cmnd_Spec_List\*(C'\fR 中のそれ以後の 
 \&\f(CW\*(C`Cmnd\*(C'\fR は、反対の意味を持つタグによって変更されないかぎり、
-そのタグを継承する (すなわち、\f(CW\*(C`PASSWD\*(C'\fR は 
+そのタグを継承することになる (すなわち、\f(CW\*(C`PASSWD\*(C'\fR は 
 \&\f(CW\*(C`NOPASSWD\*(C'\fR を上書きし、\f(CW\*(C`NOEXEC\*(C'\fR は 
-\&\f(CW\*(C`EXEC\*(C'\fR を上書きするわけだ)。
+\&\f(CW\*(C`EXEC\*(C'\fR を上書きする)。
 .PP
 \fI\s-1NOPASSWD\s0 と \s-1PASSWD\s0\fR
 .IX Subsection "NOPASSWD and PASSWD"
@@ -549,7 +751,8 @@ Defaults 行で使用できるパラメータのリストについては、
 \&\f(CW\*(C`NOPASSWD\*(C'\fR タグによって変更することができる。
 \&\f(CW\*(C`Runas_Spec\*(C'\fR と同様、\f(CW\*(C`NOPASSWD\*(C'\fR タグも 
 \&\f(CW\*(C`Cmnd_Spec_List\*(C'\fR 中のそれに続くコマンドに対して
-デフォルトを定める。\f(CW\*(C`PASSWD\*(C'\fR の働きは反対であり、
+デフォルトを定める。
+\&\f(CW\*(C`PASSWD\*(C'\fR の働きは反対であり、
 振舞いを元に戻したいときに使える。たとえば、
 .PP
 .Vb 1
@@ -558,17 +761,16 @@ Defaults 行で使用できるパラメータのリストについては、
 .PP
 とすれば、ユーザ \fBray\fR はマシン rushmore 上で認証をしないでも 
 \&\fBroot\fR として \fI/bin/kill\fR, \fI/bin/ls\fR,
-\&\fI/usr/bin/lprm\fR を実行できるようになる。もし \fBray\fR が
\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\81ªã\81\97ã\81§å®\9fè¡\8cã\81§ã\81\8dã\82\8bã\82³ã\83\9eã\83³ã\83\89ã\82\92 \fI/bin/kill\fR ã\81 ã\81\91ã\81«
-絞りたいのなら、エントリはこうなるだろう。
+\&\fI/usr/bin/lprm\fR を実行できるようになる。もし \fBray\fR
\81\8cã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\81ªã\81\97ã\81§å®\9fè¡\8cã\81§ã\81\8dã\82\8bã\82³ã\83\9eã\83³ã\83\89ã\82\92 \fI/bin/kill\fR ã\81 ã\81\91ã\81«çµ\9eã\82\8aã\81\9fã\81\84ã\81®ã\81ªã\82\89ã\80\81
+エントリはこうなるだろう。
 .PP
 .Vb 1
 \& ray    rushmore = NOPASSWD: /bin/kill, PASSWD: /bin/ls, /usr/bin/lprm
 .Ve
 .PP
-ただし、ユーザが \fIexempt_group\fR オプションで指定されているグループに
-属する場合は、\f(CW\*(C`PASSWD\*(C'\fR タグが効果を持たないことに
-注意してほしい。
+ただし、ユーザが \fIexempt_group\fR オプションで指定されているグループに属する場合は、
+\&\f(CW\*(C`PASSWD\*(C'\fR タグが効果を持たないことに注意してほしい。
 .PP
 デフォルトでは、現在使用中のホストに関するユーザのエントリのうちに 
 \&\f(CW\*(C`NOPASSWD\*(C'\fR タグが指定されているものが一つでもあれば、
@@ -582,7 +784,7 @@ Defaults 行で使用できるパラメータのリストについては、
 .IX Subsection "NOEXEC and EXEC"
 .PP
 \&\fBsudo\fR が \fInoexec\fR サポートつきでコンパイルされ、
¸\8bã\81§ç¨¼å\83\8dしているオペレーティングシステムがそれに対応している場合、
½¿ç\94¨しているオペレーティングシステムがそれに対応している場合、
 \&\f(CW\*(C`NOEXEC\*(C'\fR タグを利用すれば、動的にリンクされた実行ファイルが
 そこからさらにコマンドを実行するのを防ぐことができる。
 .PP
@@ -593,30 +795,46 @@ Defaults 行で使用できるパラメータのリストについては、
 \& aaron  shanty = NOEXEC: /usr/bin/more, /usr/bin/vi
 .Ve
 .PP
-\&\f(CW\*(C`NOEXEC\*(C'\fR がどんなふうに働くのか、お使いのシステムで
-利用できるかどうか、などについてさらに詳しく知りたかったら、
\80\8cã\82·ã\82§ã\83«ã\83»ã\82¨ã\82¹ã\82±ã\83¼ã\83\97ã\82\92é\98²æ­¢ã\81\99ã\82\8bã\80\8dã\81®ã\82»ã\82¯ã\82·ã\83§ã\83³ã\82\92御覧ã\81«ã\81ªã\81£ã\81¦ã\81\84ã\81\9fã\81 ã\81\8dã\81\9fい。
+\&\f(CW\*(C`NOEXEC\*(C'\fR がどんなふうに働くのか、お使いのシステムで利用できるかどうか、
+などについてさらに詳しく知りたかったら、
\80\8cã\82·ã\82§ã\83«ã\83»ã\82¨ã\82¹ã\82±ã\83¼ã\83\97ã\82\92é\98²æ­¢ã\81\99ã\82\8bã\80\8dã\81®ã\82»ã\82¯ã\82·ã\83§ã\83³ã\82\92御覧ã\81«ã\81ªã\82\8bã\81¨ã\82\88い。
 .PP
 \fI\s-1SETENV\s0 と \s-1NOSETENV\s0\fR
 .IX Subsection "SETENV and NOSETENV"
 .PP
 上記のタグは \fIsetenv\fR オプションの値をコマンドごとに変更する。
-注意すべきは、あるコマンドに対して \f(CW\*(C`SETENV\*(C'\fR が
-設定されていると、コマンドラインから設定するどんな環境変数も \fIenv_check\fR,
-\&\fIenv_delete\fR, \fIenv_keep\fR による規制を受けないということである。
-だから、そうした形で環境変数を設定することを許可するのは、
-信用できるユーザだけに限るべきだ。なお、マッチするコマンドが
-\&\fB\s-1ALL\s0\fR だった場合は、暗黙のうちに \f(CW\*(C`SETENV\*(C'\fR タグが
-そのコマンドに付けられるが、このデフォルトの動作は
+あるコマンドに対して \f(CW\*(C`SETENV\*(C'\fR を設定すると、
+ユーザがコマンドラインから \fB\-E\fR オプションを使用して、
+\fIenv_reset\fR オプションを無効にできるようになることに注意してほしい。
+それだけではない。コマンドラインから設定する環境変数が \fIenv_check\fR,
+\&\fIenv_delete\fR, \fIenv_keep\fR による規制を受けないようにもなる。
+それ故、こうした形で環境変数を設定することを許可するのは、
+信用できるユーザだけに限るべきである。なお、マッチするコマンドが
+\&\fB\s-1ALL\s0\fR だった場合は、暗黙のうちに \f(CW\*(C`SETENV\*(C'\fR
+タグがそのコマンドに付けられるが、このデフォルトの動作は
 \&\f(CW\*(C`UNSETENV\*(C'\fR タグを使えば打ち消すことができる。
-.Sh "ワイルドカード"
+.PP
+\fI\s-1LOG_INPUT\s0 と \s-1NOLOG_INPUT\s0\fR
+.IX Subsection "LOG_INPUT and NOLOG_INPUT"
+.PP
+この二つのタグは \fIlog_input\fR オプションの値をコマンドごとに変更する。
+詳しい情報については、後述する「SUDOERS のオプション」セクションの
+\&\fIlog_input\fR の説明をご覧になっていただきたい。
+.PP
+\fI\s-1LOG_OUTPUT\s0 と \s-1NOLOG_OUTPUT\s0\fR
+.IX Subsection "LOG_OUTPUT and NOLOG_OUTPUT"
+.PP
+この二つのタグは \fIlog_output\fR オプションの値をコマンドごとに変更する。
+詳しい情報については、後述する「SUDOERS のオプション」セクションの
+\&\fIlog_output\fR の説明をご覧になっていただきたい。
+.SS "ワイルドカード"
 .IX Subsection "Wildcards"
 \&\fIsudoers\fR ファイルでは、ホスト名、コマンドラインのパス名、
 コマンドラインの引き数にシェル形式のワイルドカード (メタ文字とか
 glob キャラクタとも言う) が使用できる。ワイルドカードのマッチングは
 \&\fB\s-1POSIX\s0\fR の \fIglob\fR\|(3) と \fIfnmatch\fR\|(3)
-ルーティンを用いて行われる。\fB以下のものは正規表現ではない\fRことに
-注意してほしい。
+ルーティンを用いて行われる。
+\&\fB以下のものは正規表現ではない\fRことに注意してほしい。
 .ie n .IP "\*(C`*\*(C'" 8
 .el .IP "\f(CW\*(C`*\*(C'\fR" 8
 .IX Item "*"
@@ -636,14 +854,15 @@ glob キャラクタとも言う) が使用できる。ワイルドカードの
 .ie n .IP "\*(C`\ex\*(C'" 8
 .el .IP "\f(CW\*(C`\ex\*(C'\fR" 8
 .IX Item "x"
-\&\*(L"x\*(R" がどんな文字であっても、\*(L"x\*(R" そのものとして
-評価する。これは \*(L"*\*(R", \*(L"?\*(R", \*(L"[\*(R", \*(L"}\*(R" といった
-特殊文字をエスケープするために使用する。
+\&\*(L"x\*(R" がどんな文字であっても、\*(L"x\*(R" そのものとして評価する。
+この表記法は \*(L"*\*(R", \*(L"?\*(R", \*(L"[\*(R", \*(L"}\*(R"
+といった特殊文字をエスケープするために使用される。
 .PP
 使用システムの \fIglob\fR\|(3) や \fIfnmatch\fR\|(3) 関数が
 \&\s-1POSIX\s0 の文字クラスに対応しているなら、文字クラスも使用できる。
-ただし、\f(CW\*(Aq:\*(Aq\fR 文字は、\fIsudoers\fR で特別な意味を
-持っているので、エスケープしなければならない。一例を上げると、
+ただし、\f(CW\*(Aq:\*(Aq\fR 文字は、
+\&\fIsudoers\fR で特別な意味を持っているので、エスケープしなければならない。
+一例を上げると、
 .PP
 .Vb 1
 \&    /bin/ls [[\e:alpha\e:]]*
@@ -652,9 +871,9 @@ glob キャラクタとも言う) が使用できる。ワイルドカードの
 上記は、文字で始まるどんなファイル名にもマッチするだろう。
 .PP
 コマンドのパス名に使われたワイルドカードはフォワードスラッシュ ('/') 
-に\fBマッチしない\fRことに注意してほしい。だが、コマンドライン引き数との
\83\9eã\83\83ã\83\81ã\83³ã\82°ã\81§ã\81¯ã\80\81ã\83¯ã\82¤ã\83«ã\83\89ã\82«ã\83¼ã\83\89ã\81¯ã\82¹ã\83©ã\83\83ã\82·ã\83¥ã\81¨\fBã\81\97ã\81£ã\81\8bã\82\8aã\83\9eã\83\83ã\83\81ã\81\99ã\82\8b\fRã\80\82
-そこで、
+に\fBマッチしない\fRことに注意してほしい。
\81 ã\81\8cã\80\81ã\82³ã\83\9eã\83³ã\83\89ã\83©ã\82¤ã\83³å¼\95ã\81\8dæ\95°ã\81¨ã\81®ã\83\9eã\83\83ã\83\81ã\83³ã\82°ã\81§ã\81¯ã\80\81
\83¯ã\82¤ã\83«ã\83\89ã\82«ã\83¼ã\83\89ã\81¯ã\82¹ã\83©ã\83\83ã\82·ã\83¥ã\81¨\fBã\81\97ã\81£ã\81\8bã\82\8aã\83\9eã\83\83ã\83\81ã\81\99ã\82\8b\fRã\80\82ã\81\9dã\81\93ã\81§ã\80\81
 .PP
 .Vb 1
 \&    /usr/bin/*
@@ -662,23 +881,24 @@ glob キャラクタとも言う) が使用できる。ワイルドカードの
 .PP
 というコマンドパスは、\fI/usr/bin/who\fR とマッチするが、
 \&\fI/usr/bin/X11/xterm\fR とはマッチしないことになる。
-.Sh "ワイルドカード・ルールの例外"
+.SS "ワイルドカード・ルールの例外"
 .IX Subsection "Exceptions to wildcard rules"
 上記ルールには次の例外がある。
 .ie n .IP """""" 8
 .el .IP "\f(CW``''\fR" 8
 .IX Item """"""
-\&\fIsudoers\fR ファイルのエントリにおいて、空文字列 \f(CW""\fR が唯一
\81®ã\82³ã\83\9eã\83³ã\83\89ã\83©ã\82¤ã\83³å¼\95ã\81\8dæ\95°ã\81 ã\81£ã\81\9få ´å\90\88ã\81¯ã\80\81ã\81\9dã\81®ã\82³ã\83\9eã\83³ã\83\89ã\81«\fBã\81\84ã\81\8bã\81ªã\82\8b\fRå¼\95ã\81\8dæ\95°ã\82\92ä»\98
\81\91ã\81¦å®\9fè¡\8cã\81\99ã\82\8bã\81\93ã\81¨ã\82\82許ã\81\95ã\82\8cã\81ªã\81\84ã\81¨ã\81\84ã\81\86ã\81\93ã\81¨ã\81§ã\81\82る。
-.Sh "sudoers に他のファイルをインクルードする"
+\&\fIsudoers\fR ファイルのエントリにおいて、空文字列 \f(CW""\fR
\81\8cå\94¯ä¸\80ã\81®ã\82³ã\83\9eã\83³ã\83\89ã\83©ã\82¤ã\83³å¼\95ã\81\8dæ\95°ã\81 ã\81£ã\81\9få ´å\90\88ã\81¯ã\80\81
\81\9dã\81®ã\82³ã\83\9eã\83³ã\83\89ã\81¯å¼\95æ\95°ã\82\92\fBä»\98ã\81\91ã\81\9aã\81«\fRå®\9fè¡\8cã\81\97ã\81ªã\81\91ã\82\8cã\81°ã\81ªã\82\89ã\81ªã\81\84ã\81\93ã\81¨ã\82\92æ\84\8få\91³ã\81\99る。
+.SS "sudoers に他のファイルをインクルードする"
 .IX Subsection "Including other files from within sudoers"
-\&\f(CW\*(C`#include\*(C'\fR 命令や \f(CW\*(C`#includedir\*(C'\fR 命令を
-使えば、現在解析中の \fIsudoers\fR ファイルに外部にあるほかの
+\&\f(CW\*(C`#include\*(C'\fR 命令や \f(CW\*(C`#includedir\*(C'\fR
+命令を使えば、現在解析中の \fIsudoers\fR ファイルに、外部にあるほかの
 \&\fIsudoers\fR ファイルをインクルードすることができる。
 .PP
-この方法を使えば、たとえば、サイト全体で使用する \fIsudoers\fR ファイルの
-ほかに、マシンごとのローカルな \fIsudoers\fR ファイルを持つことができる。
+この方法を使えば、たとえば、
+サイト全体で使用する \fIsudoers\fR ファイルのほかに、
+マシンごとのローカルな \fIsudoers\fR ファイルを持つことができる。
 ここでは、サイト全体の \fIsudoers\fR を \fI/etc/sudoers\fR とし、
 マシンごとの方は \fI/etc/sudoers.local\fR とすることにしよう。
 \&\fI/etc/sudoers\fR に \fI/etc/sudoers.local\fR をインクルードするには、
@@ -691,72 +911,97 @@ glob キャラクタとも言う) が使用できる。ワイルドカードの
 \&\fBsudo\fR は解析中この行に出会うと、カレントファイル
 (\fI/etc/sudoers\fR だ) の処理を一時中止し、処理の対象を
 \&\fI/etc/sudoers.local\fR に切り替える。そして、
-\&\fI/etc/sudoers.local\fR の末尾まで達したら、\fI/etc/sudoers\fR の
-残りを処理するのだ。インクルードされたファイルがさらに他のファイルを
-インクルードしてもよい。インクルートのネストには 128 ファイルまでという
-ハード・リミットがあって、インクルードファイルのループが起きないように
-なっている。
+\&\fI/etc/sudoers.local\fR の末尾まで達したら、\fI/etc/sudoers\fR
+の残りを処理するのだ。
+インクルードされたファイルがさらに他のファイルをインクルードしてもよい。
+インクルートのネストには 128 ファイルまでというハード・リミットがあって、
+インクルードファイルのループが起きないようになっている。
+.PP
+インクルードファイルのパスが絶対パスでない場合は (すなわち、パスが
+\&\fI/\fR で始まっていない場合は)、インクルードする側の sudoers
+ファイルと同じディレクトリに、インクルードされるファイルも存在しなければならない。
+たとえば、
+\&\fI/etc/sudoers\fR に次のような行があったら、
+.Sp
+.RS 4
+\&\f(CW\*(C`#include sudoers.local\*(C'\fR
+.RE
 .PP
-ファイル名には \f(CW%h\fR エスケープが使える。これはホスト名の短縮形を
-示している。たとえば、マシンのホスト名が \*(L"xerxes\*(R" のとき、
+インクルードされるファイルは、\fI/etc/sudoers.local\fR である。
+(訳注: インクルードファイルのディレクトリ部分を省略できるのは、
+sudo-1.8.4 以上である。sudo-1.8.3 以前では、絶対パスで指定しなければならない。) 
 .PP
+なお、ファイル名には \f(CW%h\fR エスケープが使える。
+これはホスト名の短縮形を示している。
+たとえば、マシンのホスト名が \*(L"xerxes\*(R" のとき、
+.Sp
+.RS 4
 \&\f(CW\*(C`#include /etc/sudoers.%h\*(C'\fR
+.RE
 .PP
-と書けば、\fBsudo\fR はファイル \fI/etc/sudoers.xerxes\fR をインクルード
-することになる。
-.PP
-\&\f(CW\*(C`#includedir\*(C'\fR 命令を使えば、\fIsudo.d\fR ディレクトリを
-作っておいて、システムのパッケージ管理者がパッケージをインストールする過程で
-\&\fIsudoers\fR のルールを記したファイルをそこに入れてやる、といったことが
-可能になる。たとえば、次のように書くと、
+と書けば、\fBsudo\fR はファイル \fI/etc/sudoers.xerxes\fR
+をインクルードすることになる。
 .PP
+\&\f(CW\*(C`#includedir\*(C'\fR 命令を使えば、
+\&\fIsudo.d\fR ディレクトリを作っておいて、
+システムのパッケージ管理者がパッケージをインストールする際に
+\&\fIsudoers\fR のルールを記したファイルをそこに入れてやる、
+といったことが可能になる。たとえば、
+次のように書くと、
+.Sp
+.RS 4
 \&\f(CW\*(C`#includedir /etc/sudoers.d\*(C'\fR
+.RE
 .PP
 \&\fBsudo\fR は \fI/etc/sudoers.d\fR にあるファイルを一つづつ読み込む。
-ただし、末尾が \f(CW\*(C`~\*(C'\fR だったり、\f(CW\*(C`.\*(C'\fR 文字を
-含んでいたりするファイル名はスキップするが、これは パッケージマネージャや
-エディタが作った、テンポラリファイルやバックアップファイルを読み込むような
-問題を起こさないためである。ファイルは辞書順にソートされて、解析される。
-すなわち、\fI/etc/sudoers.d/01_first\fR が \fI/etc/sudoers.d/10_second\fR
-より前に解析されるということだ。ソートは辞書順であって、数値の順では
-ないので、\fI/etc/sudoers.d/1_whoops\fR というファイルがあっても、
-\&\fI/etc/sudoers.d/10_second\fR \fBより後で\fRロードされることに
-注意してほしい。ファイル名の先頭を 0 で埋めて数字の桁を揃えれば、
+ただし、末尾が \f(CW\*(C`~\*(C'\fR だったり、
+\&\f(CW\*(C`.\*(C'\fR 文字を含んでいたりするファイル名はスキップするが、
+これは、パッケージマネージャやエディタが作った、
+テンポラリファイルやバックアップファイルを読み込むような問題を起こさないためである。
+ファイルは辞書順にソートされて、解析される。
+すなわち、\fI/etc/sudoers.d/01_first\fR は \fI/etc/sudoers.d/10_second\fR
+より前に解析されるということだ。ソートは辞書順であって、数値の順ではないので、
+\&\fI/etc/sudoers.d/1_whoops\fR というファイルがあっても、
+\&\fI/etc/sudoers.d/10_second\fR
+\&\fBより後で\fRロードされることに注意してほしい。
+ファイル名の先頭を 0 で埋めて数字の桁を揃えれば、
 こうした問題を回避することができる。
 .PP
-気を付けてほしいが、\f(CW\*(C`#include\*(C'\fR でインクルードされた
-ファイルとは違って (訳注: \fBvisudo\fR は \fI/etc/sudoers\fR を
-編集するとき、\f(CW\*(C`#include\*(C'\fR で指定したファイルがあれば、
-続けてそれも編集する)、
-\&\fBvisudo\fR が \f(CW\*(C`#includedir\*(C'\fR で指定したディレクトリの
-ファイルまで編集するのは、シンタクスエラーを含むものがあるときだけである。
+気を付けてほしいが、
+\&\f(CW\*(C`#include\*(C'\fR でインクルードされたファイルとは違って
+(訳注: \fBvisudo\fR は \fI/etc/sudoers\fR を編集するとき、
+\&\f(CW\*(C`#include\*(C'\fR で指定したファイルがあれば、続けてそれも編集する)、
+\&\fBvisudo\fR が \f(CW\*(C`#includedir\*(C'\fR
+で指定したディレクトリのファイルまで編集するのは、
+シンタクスエラーを含むものがあるときだけである。
 とは言え、\fBvisudo\fR を \f(CW\*(C`\-f\*(C'\fR オプション付きで実行して、
 ディレクトリ中のファイルを直接編集することは可能だ。
-.Sh "ほかの特殊文字と予約語"
+.SS "ほかの特殊文字と予約語"
 .IX Subsection "Other special characters and reserved words"
-パウンド記号 ('#') はコメントを示すのに使用される (例外は、#include 命令の
-一部であるときや、ユーザ名に関連して現れ、その後に一個以上の数字が
-続くときであり、後者の場合は uid と見なされる)。コメント記号と
-それに続くテキストは、行末にいたるまで無視される。
+パウンド記号 ('#') はコメントを示すのに使用される
+(例外は、#include 命令の一部であるときや、ユーザ名に関連して現れ、
+その後に一個以上の数字が続くときであり、後者の場合は uid と見なされる)。
\82³ã\83¡ã\83³ã\83\88è¨\98å\8f·ã\81¨ã\81\9dã\82\8cã\81«ç¶\9aã\81\8fã\83\86ã\82­ã\82¹ã\83\88ã\81¯ã\80\81è¡\8cæ\9c«ã\81«ã\81\84ã\81\9fã\82\8bã\81¾ã\81§ç\84¡è¦\96ã\81\95ã\82\8cã\82\8bã\80\82
 .PP
-予約語 \fB\s-1ALL\s0\fR は組込みのエイリアスであり、何に対してでも
-マッチする。\fB\s-1ALL\s0\fR は、\f(CW\*(C`Cmnd_Alias\*(C'\fR,
+予約語 \fB\s-1ALL\s0\fR は組込みのエイリアスであり、何に対してでもマッチする。
+\&\fB\s-1ALL\s0\fR は、\f(CW\*(C`Cmnd_Alias\*(C'\fR,
 \&\f(CW\*(C`User_Alias\*(C'\fR, \f(CW\*(C`Runas_Alias\*(C'\fR,
-\&\f(CW\*(C`Host_Alias\*(C'\fR を代わりに使えるところなら、どこでも
-使用できる。\fB\s-1ALL\s0\fR という名前のエイリアスを自分で定義しようと
\81\97ã\81¦ã\81¯ã\81\84ã\81\91ã\81ªã\81\84ã\80\82çµ\84è¾¼ã\81¿ã\81®ã\82¨ã\82¤ã\83ªã\82¢ã\82¹ã\81®æ\96¹ã\81\8cã\80\81è\87ªå\88\86ã\81§ä½\9cã\81£ã\81\9fã\82¨ã\82¤ã\83ªã\82¢ã\82¹ã\82\88ã\82\8a
-優先して使われるからだ。\fB\s-1ALL\s0\fR の使用には危険が伴うことが
-あるのを忘れないでいただきたい。なぜなら、\fB\s-1ALL\s0\fR を
\82³ã\83\9eã\83³ã\83\89ã\81«é\96¢ã\81\97ã\81¦ä½¿ã\81\86ã\81¨ã\80\81ã\83¦ã\83¼ã\82¶ã\81«ã\82·ã\82¹ã\83\86ã\83 ä¸\8aã\81®\fBã\81©ã\82\93ã\81ª\fRã\82³ã\83\9eã\83³ã\83\89ã\81§ã\82\82
-実行することを許してしまうからである。
+\&\f(CW\*(C`Host_Alias\*(C'\fR を代わりに使えるところなら、
+どこでも使用できる。\fB\s-1ALL\s0\fR
\81¨ã\81\84ã\81\86å\90\8då\89\8dã\81®ã\82¨ã\82¤ã\83ªã\82¢ã\82¹ã\82\92è\87ªå\88\86ã\81§å®\9a義ã\81\97ã\82\88ã\81\86ã\81¨ã\81\97ã\81¦ã\81¯ã\81\84ã\81\91ã\81ªã\81\84ã\80\82
+組込みのエイリアスの方が、自分で作ったエイリアスより優先して使われるからだ。
+\&\fB\s-1ALL\s0\fR の使用には危険が伴うことがあるのを忘れないでいただきたい。
\81ªã\81\9cã\81ªã\82\89ã\80\81\fB\s-1ALL\s0\fR ã\82\92ã\82³ã\83\9eã\83³ã\83\89ã\81«é\96¢ã\81\97ã\81¦ä½¿ã\81\86ã\81¨ã\80\81
+ユーザにシステム上の\fBどんな\fRコマンドでも実行することを許してしまうからである。
 .PP
 エクスクラメーションマーク ('!') は、エイリアスでも 
 \&\f(CW\*(C`Cmnd\*(C'\fR の前でも論理 \fInot\fR 演算子として使用できる。
 これによってある値を除外することが可能だ。しかしながら、
-組込みエイリアス \f(CW\*(C`ALL\*(C'\fR と \f(CW\*(C`!\*(C'\fR を
-組み合わせて、「二三のコマンド以外のすべての」コマンドの実行をあるユーザに
-許可しようとしても、思いどおりの動きになることはめったにないことに
-気を付けてほしい (下記の「セキュリティに関する注意点」を参照)。
+組込みエイリアス \f(CW\*(C`ALL\*(C'\fR と \f(CW\*(C`!\*(C'\fR
+を組み合わせて、「二三のコマンド以外のすべての」コマンドの実行を
+あるユーザに許可しようとしても、
+思いどおりの動きになることはめったにないことに気を付けてほしい
+(下記の「セキュリティに関する注意点」を参照)。
 .PP
 長い行は、行末にバックスラッシュ ('\e') を置けば、継続することができる。
 .PP
@@ -766,98 +1011,141 @@ glob キャラクタとも言う) が使用できる。ワイルドカードの
 .PP
 次の文字を単語 (ユーザ名とかホスト名とか) の一部として使うときは、
 バックスラッシュ ('\e') でエスケープしなければならない。
-\&'@', '!', '=', ':', ',', '(', ')', '\e' がそれである。
+\&'!', '=', ':', ',', '(', ')', '\e' がそれである。
 .SH "SUDOERS のオプション"
 .IX Header "SUDOERS OPTIONS"
 すでに説明したように、\fBsudo\fR の動作は 
 \&\f(CW\*(C`Default_Entry\*(C'\fR 行によって変更することができる。
-Defaults に与えることのできるパラメータについて、サポートされているも
-ののすべてを、タイプ別にまとめて以下に列挙する。
+Defaults に与えることのできるパラメータについて、
\82µã\83\9dã\83¼ã\83\88ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bã\82\82ã\81®ã\81®ã\81\99ã\81¹ã\81¦ã\82\92ã\80\81ã\82¿ã\82¤ã\83\97å\88¥ã\81«ã\81¾ã\81¨ã\82\81ã\81¦ä»¥ä¸\8bã\81«å\88\97æ\8c\99ã\81\99ã\82\8bã\80\82
 .PP
-\&\fBフラグ\fR:
+\&\fBフラグ (真偽値)\fR:
 .IP "always_set_home" 16
 .IX Item "always_set_home"
-これをセットすると、\fBsudo\fR は環境変数 \f(CW\*(C`HOME\*(C'\fR を
-変身対象ユーザのホームディレクトリに設定する (\fB\-u\fR オプションが
-使用されないかぎり、それは root である)。事実上、暗黙のうちに \fBsudo\fR に
-\&\fB\-H\fR オプションが常に指定されることになるわけだ。このフラグは
-デフォルトでは \fIoff\fR である。
+これを有効にすると、\fBsudo\fR は環境変数 \f(CW\*(C`HOME\*(C'\fR
+を変身対象ユーザの (\fB\-u\fR オプションが使用されないかぎり、root である)
+ホームディレクトリに設定する。事実上、暗黙のうちに
+\&\fBsudo\fR に \fB\-H\fR オプションが常に指定されることになるわけだ。
+気をつけてほしいのは、\fIenv_reset\fR オプションが有効になっている場合、
+\&\f(CW\*(C`HOME\*(C'\fR の値は (訳注: 変身対象ユーザのホームディレクトリに)
+すでに設定済みだということだ。だから、
+\&\fIalways_set_home\fR の指定に効果があるのは、
+\&\fIenv_reset\fR を無効に設定している場合か、
+\&\fIenv_keep\fR のリストに \f(CW\*(C`HOME\*(C'\fR が存在する場合のみである。
+このフラグはデフォルトでは \fIoff\fR である。
 .IP "authenticate" 16
 .IX Item "authenticate"
 これをセットすると、ユーザはコマンドの実行を許可される前に、パスワードで
-(あるいは、ほかの認証方法で) 認証をしなければならない。このデフォルト値は
+(あるいは、ほかの認証方法で) 自分が本人であることを証明しなければならなくなる。
+このデフォルト値は
 \&\f(CW\*(C`PASSWD\*(C'\fR や \f(CW\*(C`NOPASSWD\*(C'\fR タグで変更できる。
 このフラグはデフォルトでは \fIon\fR である。
 .IP "closefrom_override" 16
 .IX Item "closefrom_override"
-これをセットすると、ユーザが \fBsudo\fR の \fB\-C\fR オプションを
-使用できるようになる。\fB\-C\fR オプションというのは、\fBsudo\fR が
-開いたファイルを閉じていくとき、どのファイル・ディスクリプタから
-クローズしていくかというデフォルトの始点を変更するものだ。このフラグは
-デフォルトでは \fIoff\fR である。
+これをセットすると、ユーザが \fBsudo\fR の \fB\-C\fR
+オプションを使用できるようになる。\fB\-C\fR オプションというのは、
+\&\fBsudo\fR が開いているファイルを閉じていくとき、
+どのファイル・ディスクリプタから閉じていくかという、
+デフォルトの始点を変更するものだ。このフラグはデフォルトでは \fIoff\fR である。
+.IP "compress_io" 16
+.IX Item "compress_io"
+これをセットすると、
+\&\fBsudo\fR がコマンドの入出力のログを取るように設定されている場合に、
+入出力のログを \fBzlib\fR を使って、圧縮することになる。
+\&\fBsudo\fR が \fBzlib\fR をサポートするようにコンパイルされている場合、
+このフラグはデフォルトで \fIon\fR である。
 .IP "env_editor" 16
 .IX Item "env_editor"
-これをセットすると、\fBvisudo\fR はデフォルトのエディタ・リストを
-利用する前に、環境変数 \s-1EDITOR\s0 や \s-1VISUAL\s0 の値を
-使用するようになる。これがセキュリティホールになりかねないことに
-注意してほしい。ユーザが root として任意のコマンドをログに記録されることなく
-実行できるようになるからだ。こうした環境変数を利用するときの、
+これをセットすると、
+\&\fBvisudo\fR はデフォルトのエディタ・リストを利用する前に、
+環境変数 \s-1EDITOR\s0 や \s-1VISUAL\s0 の値を使用するようになる。
+これがセキュリティホールになりかねないことに注意してほしい。
+ユーザが root として任意のコマンドを、
+ログに記録されることなく実行できるようになるからだ。
+こうした環境変数を利用するときの、
 \&\fIenv_editor\fR を有効にするよりも安全な方法は、
 \&\fIsudoers\fR ファイルの \f(CW\*(C`editor\*(C'\fR オプションに
 コロンで区切ったエディタのリストを書いておくことだ。そうすれば、
-\&\fBvisudo\fR が \s-1EDITOR\s0 や \s-1VISUAL\s0 を使うのは、
-それが \f(CW\*(C`editor\*(C'\fR オプションに指定した値とマッチしたときだけに
\81ªã\82\8bã\80\82ã\81\93ã\81®ã\83\95ã\83©ã\82°ã\81¯ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81§ã\81¯ \fIoff\fR ã\81§ã\81\82ã\82\8bã\80\82
+\&\fBvisudo\fR が \s-1EDITOR\s0 や \s-1VISUAL\s0 を使うのは、それが
+\&\f(CW\*(C`editor\*(C'\fR オプションに指定した値とマッチしたときだけになる。
+このフラグはデフォルトでは \fIoff\fR である。
 .IP "env_reset" 16
 .IX Item "env_reset"
-これをセットすると、\fBsudo\fR は環境を以下の変数のみを含むように
-設定し直す。すなわち、\s-1LOGNAME\s0, \s-1SHELL\s0, \s-1USER\s0,
-\&\s-1USERNAME\s0 それに \f(CW\*(C`SUDO_*\*(C'\fR である。その後で
-さらに、\fBsudo\fR を起動するユーザの環境にある変数のうち、
-\&\f(CW\*(C`env_keep\*(C'\fR や \f(CW\*(C`env_check\*(C'\fR のリストに
-マッチするものが追加される。 \f(CW\*(C`env_keep\*(C'\fR や 
-\&\f(CW\*(C`env_check\*(C'\fR のリストにデフォルトでどんな変数が
-含まれているかは、root ユーザが \fBsudo\fR を \fI\-V\fR オプション付きで
-実行すれば、見ることができる。なお、\fIsudoers\fR ファイルの
-\&\fIsecure_path\fR オプションが設定されているときは、その値が
-環境変数 \f(CW\*(C`PATH\*(C'\fR として使用されることになる。
-このフラグはデフォルトでは \fIon\fR である。
+これをセットすると、\fBsudo\fR は最小限の環境でコマンドを実行することになる。
+その環境には、以下の変数が含まれる。すなわち、
+\&\f(CW\*(C`TERM\*(C'\fR, \f(CW\*(C`PATH\*(C'\fR, \f(CW\*(C`HOME\*(C'\fR,
+\&\f(CW\*(C`MAIL\*(C'\fR, \f(CW\*(C`SHELL\*(C'\fR, \f(CW\*(C`LOGNAME\*(C'\fR,
+\&\f(CW\*(C`USER\*(C'\fR, \f(CW\*(C`USERNAME\*(C'\fR、
+及び \f(CW\*(C`SUDO_*\*(C'\fR という変数。
+これに、\fBsudo\fR を起動するユーザの環境にある変数のうち、
+\&\f(CW\*(C`env_keep\*(C'\fR や \f(CW\*(C`env_check\*(C'\fR
+のリストにマッチするものが加わり、さらに、
+\&\fIenv_file\fR オプションによって指定されたファイルがあれば、
+そのファイルに記載されたすべての変数が追加される。
+\&\f(CW\*(C`env_keep\*(C'\fR や \f(CW\*(C`env_check\*(C'\fR
+のリストにデフォルトでどんな変数が存在するかは、root ユーザが
+\&\fBsudo\fR に \fI\-V\fR オプションを付けて実行すれば、見ることができる。
+なお、\fIsecure_path\fR オプションが設定されているときは、
+その値が環境変数 \f(CW\*(C`PATH\*(C'\fR として使用される。
+このフラグはデフォルトで \fIon\fR である。
+.IP "fast_glob" 16
+.IX Item "fast_glob"
+通常 \fBsudo\fR はパス名のマッチングをするとき、\fIglob\fR\|(3)
+関数を使用して、シェル・スタイルのワイルドカード展開 (glob) を行う。
+しかし、\fIglob\fR\|(3) はファイルシステムにアクセスするので、
+指定パターンによっては、作業を完了するまでに時間がかかることがある。
+必要な時にマウントするようになっている (つまりオートマウントの)
+ネットワーク・ファイル・システムを参照するときは、とりわけ時間がかかる。
+\&\fIfast_glob\fR オプションを指定すると、
+\&\fBsudo\fR が \fIfnmatch\fR\|(3) 関数を使うようになるが、
+こちらの関数はマッチングの際にファイルシステムにアクセスしない。
+\&\fIfast_glob\fR の欠点は、\fI./ls\fR や \fI../bin/ls\fR
+のような相対パスに対するマッチができないことである。
+そのため、ワイルドカードを含むパス名が、否定演算子 \f(CW\*(Aq!\*(Aq\fR
+と一緒に使われている場合に、セキュリティ上の問題が生じるおそれがある。
+そうしたルールは簡単に迂回できるからだ。それ故、\fIsudoers\fR
+にワイルドカードを含むパス名を否定するルールが存在する場合は、
+このオプションを使ってはいけない。このフラグはデフォルトでは \fIoff\fR である。
 .IP "fqdn" 16
 .IX Item "fqdn"
 \&\fIsudoers\fR ファイルで完全修飾ホスト名を使用したかったら、
 このフラグをセットするとよい。すなわち、myhost ではなく、
 myhost.mydomain.edu を使いたい場合だ。そのときでも、そうしたければ、
-短縮形も使える (両方を混ぜて使うことだってできる)。気を付けて
-ほしいのは、\fIfqdn\fR を 有効にすると、\fBsudo\fR は \s-1DNS\s0 へ
-問い合わせをしなければならないので、\s-1DNS\s0 サービスが
-稼働していない場合、\fBsudo\fR が使えなくなるかもしれないということだ
+短縮形も使える (両方を混ぜて使うこともできる)。気を付けてほしいのは、
+\&\fIfqdn\fR を 有効にすると、
+\&\fBsudo\fR は \s-1DNS\s0 へ問い合わせをしなければならないので、
+\&\s-1DNS\s0 サービスが稼働していない場合、
+\&\fBsudo\fR が使えなくなるかもしれないということだ
 (たとえば、マシンがネットワークに接続していない場合)。
 もう一つ気を付けるべきことがある。
 \&\s-1DNS\s0 が知っているホストの正式名を使わなければならないということだ。
-言い換えれば、ホストのエイリアス (\f(CW\*(C`CNAME\*(C'\fR のエントリ) を
-使ってはいけない。パフォーマンスの問題もあるし、\s-1DNS\s0 からエイリアスを
-すべて取得する方法はないからでもある。マシンのホスト名が 
-\&(\f(CW\*(C`hostname\*(C'\fR コマンドで返ってくるものが) すでに
-完全修飾名になっているならば、\fIfqdn\fR をセットする必要はないだろう。
+言い換えれば、ホストのエイリアス (\f(CW\*(C`CNAME\*(C'\fR のエントリ)
+を使ってはいけない。パフォーマンスの問題もあるし、
+\&\s-1DNS\s0 からエイリアスをすべて取得する方法はないからでもある。
+マシンのホスト名が (\f(CW\*(C`hostname\*(C'\fR コマンドで返ってくるものが)
+すでに完全修飾名になっているならば、\fIfqdn\fR をセットする必要はないだろう。
 このフラグはデフォルトでは \fIoff\fR である。
 .IP "ignore_dot" 16
 .IX Item "ignore_dot"
 これをセットすると、環境変数 \f(CW\*(C`PATH\*(C'\fR 中に '.' や ''
-(カレントディレクトリ) があっても、\fBsudo\fR はそれを無視する。
+(カレントディレクトリを意味する) があっても、\fBsudo\fR はそれを無視する。
 \&\f(CW\*(C`PATH\*(C'\fR そのものは変更されない。このフラグは
 デフォルトでは \fIoff\fR である。
 .IP "ignore_local_sudoers" 16
 .IX Item "ignore_local_sudoers"
-\&\s-1LDAP\s0 の方でこのフラグをセットすると、\fI/etc/sudoers\fR の
-解析がスキップされる。このフラグは、ローカルにある sudoers ファイルの
-使用を禁じて、\s-1LDAP\s0 のみを使うようにしたい企業のためにある。
-たちの悪いオペレータが \fI/etc/sudoers\fR に手を加えて自分の権限を
-増やそうとしても、そうした悪だくみは阻止されるわけだ。このオプションが
-設定されているときは、\fI/etc/sudoers\fR ファイルは存在する必要すらない。
-このオプションは、マッチする \s-1LDAP\s0 の具体的なエントリが
-一つもなかったときに、どう振舞うべきかを \fBsudo\fR に指示するものだから、
-これを指定した sudoOption は \f(CW\*(C`cn=defaults\*(C'\fR のセクションに
-なければ意味がない。このフラグはデフォルトでは \fIoff\fR である。
+\&\s-1LDAP\s0 の方でこのフラグをセットすると、
+\&\fI/etc/sudoers\fR の解析がスキップされる。
+このフラグは、ローカルにある sudoers ファイルの使用を禁じて、
+\&\s-1LDAP\s0 のみを使うようにしたい企業のためにある。
+たちの悪いオペレータが \fI/etc/sudoers\fR に手を加えて、
+自分の権限を増やそうとしても、そうした悪だくみは阻止されるわけだ。
+このオプションが設定されているときは、
+\&\fI/etc/sudoers\fR ファイルは存在する必要すらない。このオプションは、
+\&\s-1LDAP\s0 中に、マッチする特定のエントリが存在しなかったときに、
+いかに振舞うべきかを \fBsudo\fR に指示するものだから、
+これを指定する sudoOption は、
+\&\f(CW\*(C`cn=defaults\*(C'\fR のセクションになければ意味がない。
+このフラグはデフォルトでは \fIoff\fR である。
 .IP "insults" 16
 .IX Item "insults"
 これをセットすると、不正なパスワードが入力されたとき、
@@ -868,19 +1156,59 @@ myhost.mydomain.edu を使いたい場合だ。そのときでも、そうした
 これをセットすると、ホスト名が (syslog 経由ではない) \fBsudo\fR の
 ログファイルに記録されることになる。このフラグはデフォルトでは \fIoff\fR
 である。
+.IP "log_input" 16
+.IX Item "log_input"
+これをセットすると、\fBsudo\fR は \fI擬似 tty\fR でコマンドを実行し、
+ユーザの入力をすべてログに取ることになる。入出力がリダイレクトされているとか、
+コマンドがパイプラインの一部だとかいう理由で、標準入力がユーザの tty
+に結びつけられていない場合も、その入力がキャプチャーされて、
+独立したログファイルに書き込まれることに変わりはない。
+.Sp
+入力は、\fIiolog_dir\fR オプションで指定したディレクトリに
+(デフォルトでは \fI/var/log/sudo-io\fR)、一意なセッション \s-1ID\s0
+を使って記録される。このセッション \s-1ID\s0 は \fBsudo\fR
+の通常のログのエントリに、\fITSID=\fR に続く値として書き込まれているものだ。
+\&\fIiolog_file\fR オプションを使えば、
+セッション \s-1ID\s0 の形式を変更することができる。
+.Sp
+ユーザの入力には、パスワードのような (たとえ、
+画面にエコーされることはないにしても) 秘密情報が含まれていることがある。
+そういった情報も、暗号化されずに、
+ログファイルに記録されることに注意してほしい。
+たいていの場合、\fIlog_output\fR を使って、
+コマンドの出力をログに記録するだけで十分用が足りる。
+.IP "log_output" 16
+.IX Item "log_output"
+これをセットすると、\fBsudo\fR は \fI擬似 tty\fR でコマンドを実行し、
+スクリーンに送られたすべての出力をログに取ることになる。
+\&\fIscript\fR\|(1) コマンドと似たことをやるわけだ。
+入出力がリダイレクトされているとか、
+コマンドがパイプラインの一部だとかいう理由で、標準出力や標準エラーがユーザの
+tty に結びつけられていない場合も、その出力がキャプチャーされて、
+それぞれ独立したログファイルに書き込まれることに変わりはない。
+.Sp
+出力は、\fIiolog_dir\fR オプションで指定したディレクトリに
+(デフォルトでは \fI/var/log/sudo-io\fR)、一意なセッション \s-1ID\s0
+を使って記録される。このセッション \s-1ID\s0 は \fBsudo\fR
+の通常のログのエントリに 、\fITSID=\fR に続く値として書き込まれているものだ。
+\&\fIiolog_file\fR オプションを使えば、
+セッション \s-1ID\s0 の形式を変更することができる。
+.Sp
+出力のログは \fIsudoreplay\fR\|(8) コマンドを使って、見ることができる。
+また、このコマンドは、利用できるログをリストしたり、
+検索したりするのにも使用できる。
 .IP "log_year" 16
 .IX Item "log_year"
-これをセットすると、四桁の年が (syslog 経由ではない) \fBsudo\fR の
-ログファイルに記入されることになる。このフラグはデフォルトでは \fIoff\fR 
+これをセットすると、四桁の年が (syslog 経由ではない) \fBsudo\fR
\81®ã\83­ã\82°ã\83\95ã\82¡ã\82¤ã\83«ã\81«è¨\98å\85¥ã\81\95ã\82\8cã\82\8bã\81\93ã\81¨ã\81«ã\81ªã\82\8bã\80\82ã\81\93ã\81®ã\83\95ã\83©ã\82°ã\81¯ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81§ã\81¯ \fIoff\fR 
 である。
 .IP "long_otp_prompt" 16
 .IX Item "long_otp_prompt"
 \&\fBS/Key\fR や \fB\s-1OPIE\s0\fR のような One Time Password
-(\s-1OTP\s0) スキームを採用しているときにこれを有効にすると、チャレンジを
-ローカルウィンドウにカット・アンド・ペーストしやすいように、
+(\s-1OTP\s0) スキームを採用しているときにこれを有効にすると、
\83\81ã\83£ã\83¬ã\83³ã\82¸ã\82\92ã\83­ã\83¼ã\82«ã\83«ã\82¦ã\82£ã\83³ã\83\89ã\82¦ã\81«ã\82«ã\83\83ã\83\88ã\83»ã\82¢ã\83³ã\83\89ã\83»ã\83\9aã\83¼ã\82¹ã\83\88ã\81\97ã\82\84ã\81\99ã\81\84ã\82\88ã\81\86ã\81«ã\80\81
 二行のプロンプトが使用される。デフォルトのプロンプトほど見栄えはよくないが、
-こちらの方が便利だと思う人もいる。デフォルトではこのフラグは \fIoff\fR 
-である。
+こちらの方が便利だと思う人もいる。デフォルトではこのフラグは \fIoff\fR である。
 .IP "mail_always" 16
 .IX Item "mail_always"
 ユーザが \fBsudo\fR を実行するたびに、\fImailto\fR ユーザにメールを送る。
@@ -892,203 +1220,236 @@ myhost.mydomain.edu を使いたい場合だ。そのときでも、そうした
 \&\fIoff\fR である。
 .IP "mail_no_host" 16
 .IX Item "mail_no_host"
-これをセットすると、\fBsudo\fR を起動したユーザが \fIsudoers\fR ファイルに
-存在するものの、使用中のホストでコマンドの実行を許可されていない場合、
+これをセットすると、\fBsudo\fR を起動したユーザが \fIsudoers\fR
+ファイルに記載されているものの、
+使用中のホストでコマンドの実行を許可されていない場合、
 \&\fImailto\fR ユーザにメールを送付する。このフラグはデフォルトでは 
 \&\fIoff\fR である。
 .IP "mail_no_perms" 16
 .IX Item "mail_no_perms"
-これをセットすると、\fBsudo\fR を起動したユーザが \fBsudo\fR の使用を
-許可されているが、実行しようとしているコマンドが \fIsudoers\fR ファイルの
+これをセットすると、\fBsudo\fR を起動したユーザが
+\&\fBsudo\fR の使用を許可されているが、
+実行しようとしているコマンドが \fIsudoers\fR ファイルの
 そのユーザのエントリに登録されていないか、明示的に禁止されている場合、
 \&\fImailto\fR ユーザにメールを送付する。このフラグはデフォルトでは 
 \&\fIoff\fR である。
 .IP "mail_no_user" 16
 .IX Item "mail_no_user"
-これをセットすると、\fBsudo\fR を起動したユーザが \fIsudoers\fR ファイルに
-記載されていない場合、\fImailto\fR ユーザにメールを送付する。
+これをセットすると、\fBsudo\fR を起動したユーザが \fIsudoers\fR
+ファイルに記載されていない場合、\fImailto\fR ユーザにメールを送付する。
 このフラグはデフォルトでは \fIon\fR である。
 .IP "noexec" 16
 .IX Item "noexec"
 これをセットすると、\fBsudo\fR を通して実行されるすべてのコマンドが、
 \&\f(CW\*(C`EXEC\*(C'\fR タグで無効にされないかぎり、あたかも 
 \&\f(CW\*(C`NOEXEC\*(C'\fR タグが設定されているかのごとく振舞うようになる。
-上述の「\fI\s-1NOEXEC\s0 と \s-1EXEC\s0\fR」の説明、および、このマニュアルの
-終わりの方にある「シェル・エスケープを防止する」というセクションを
-参照してほしい。このフラグはデフォルトでは \fIoff\fR である。
+前述の「\fI\s-1NOEXEC\s0 と \s-1EXEC\s0\fR」の説明、
+および、このマニュアルの終わりの方にある「シェル・エスケープを防止する」
+というセクションを参照してほしい。
+このフラグはデフォルトでは \fIoff\fR である。
 .IP "path_info" 16
 .IX Item "path_info"
-通常 \fBsudo\fR は、環境変数 \f(CW\*(C`PATH\*(C'\fR 中にコマンドが
-見付からないと、ユーザにそのことを知らせる。これを利用すれば、
-一般ユーザにアクセス権のない実行ファイルのありかについて情報を
-収集できるという理由から、この動作を無効にしたいサイトもあるかもしれない。
-その場合の欠点は、実行ファイルが単にユーザの \f(CW\*(C`PATH\*(C'\fR 中に
-なかっただけの場合でも、実行の許可がないと \fBsudo\fR がユーザに告げる
-ことになって、実情がわかりにくいかもしれないことである。このフラグは
-デフォルトでは \fIon\fR である。
+通常 \fBsudo\fR は、環境変数 \f(CW\*(C`PATH\*(C'\fR
+中にコマンドが見付からないと、ユーザにそのことを知らせる。これを利用すれば、
+一般ユーザにアクセス権のない実行ファイルのありかについて
+情報を収集できるという理由から、
+この動作を無効にしたいサイトもあるかもしれない。
+その場合の欠点は、実行ファイルが単にユーザの \f(CW\*(C`PATH\*(C'\fR
+中になかっただけの場合でも、実行の許可がないと \fBsudo\fR
+がユーザに告げることになって、実情がわかりにくいかもしれないことである。
+このフラグはデフォルトでは \fIon\fR である。
 .IP "passprompt_override" 16
 .IX Item "passprompt_override"
-通常、\fIpassprompt\fR オプションによって指定されたパスワードプロンプトが
-使用されるのは、\s-1PAM\s0 のようなシステムが用意している
-パスワードプロンプトが \*(L"Password:\*(R" という文字列にマッチしている
-ときだけである。\fIpassprompt_override\fR をセットすると、
-\&\fIpassprompt\fR が無条件で使われることになる。このフラグは
-デフォルトでは \fIoff\fR である。
+通常、\fIpassprompt\fR
+オプションによって指定されたパスワードプロンプトが使用されるのは、
+\&\s-1PAM\s0 のようなシステムが用意しているパスワードプロンプトが、
+\&\*(L"Password:\*(R" という文字列にマッチしているときだけである。
+\&\fIpassprompt_override\fR をセットすると、
+\&\fIpassprompt\fR が無条件で使われることになる。
+このフラグはデフォルトでは \fIoff\fR である。
 .IP "preserve_groups" 16
 .IX Item "preserve_groups"
-デフォルトでは、\fBsudo\fR は所属グループの初期値として、変身対象ユーザが
-所属しているグループのリストを設定する。 \fIpreserve_groups\fR を
-セットすると、\fBsudo\fR を実行するユーザの所属グループのリストが、
-変更されずにそのまま維持される。とは言え、実グループ ID や
-実効グループ ID が変身対象ユーザのそれに設定されることに変わりはない。
+デフォルトでは、\fBsudo\fR は所属グループの初期値として、
+変身対象ユーザが所属しているグループのリストを設定する。
+\&\fIpreserve_groups\fR をセットすると、
+\&\fBsudo\fR を実行するユーザの所属グループのリストが、
+変更されずにそのまま維持される。とは言え、実グループ ID や実効グループ ID
+が変身対象ユーザのそれに設定されることに変わりはない。
 このフラグはデフォルトでは \fIoff\fR である。
 .IP "pwfeedback" 16
 .IX Item "pwfeedback"
-ほかのたいていの Unix プログラムと同様、\fBsudo\fR はパスワードを
-読み込むとき、デフォルトでは、ユーザが Return (または Enter) キーを
-押すまで、エコーを off にする。この動作にとまどうユーザが存在する。
+ほかのたいていの Unix プログラムと同様、
+\&\fBsudo\fR はパスワードを読み込むとき、デフォルトでは、ユーザが Return
+(または Enter) キーを押すまで、エコーを off にする。
+この動作にとまどうユーザが存在する。
 彼らには \fBsudo\fR が急に反応しなくなったように見えるのだ。
-\&\fIpwfeedback\fR をセットすると、ユーザがキーを押すたびに、\fBsudo\fR が
-目に見える反応を返すようになる。これには、セキュリティ上の問題が
\81\82ã\82\8bã\81\93ã\81¨ã\81«æ³¨æ\84\8fã\81\97ã\81¦ã\81»ã\81\97ã\81\84ã\80\82横ã\81§è¦\8bã\81¦ã\81\84ã\82\8b人ã\81\8cã\80\81æ\89\93ã\81¡è¾¼ã\81¾ã\82\8cã\81\9fã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\81®
\96\87å­\97æ\95°ã\82\92ç\89¹å®\9aã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\81\8bã\82\82ã\81\97ã\82\8cã\81ªã\81\84ã\81®ã\81 ã\80\82ã\81\93ã\81®ã\83\95ã\83©ã\82°ã\81¯ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81§ã\81¯
-\&\fIoff\fR である。
+\&\fIpwfeedback\fR をセットすると、ユーザがキーを押すたびに、
+\&\fBsudo\fR が目に見える反応を返すようになる。
\81\93ã\82\8cã\81«ã\81¯ã\80\81ã\82»ã\82­ã\83¥ã\83ªã\83\86ã\82£ä¸\8aã\81®å\95\8fé¡\8cã\81\8cã\81\82ã\82\8bã\81\93ã\81¨ã\81«æ³¨æ\84\8fã\81\97ã\81¦ã\81»ã\81\97ã\81\84ã\80\82å\81´ã\81§è¦\8bã\81¦ã\81\84ã\82\8b人ã\81\8cã\80\81
\89\93ã\81¡è¾¼ã\81¾ã\82\8cã\81\9fã\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\81®æ\96\87å­\97æ\95°ã\82\92ç\89¹å®\9aã\81§ã\81\8dã\81¦ã\81\97ã\81¾ã\81\86ã\81\8bã\82\82ã\81\97ã\82\8cã\81ªã\81\84ã\81®ã\81 ã\80\82
+このフラグはデフォルトでは \fIoff\fR である。
 .IP "requiretty" 16
 .IX Item "requiretty"
-これをセットすると、\fBsudo\fR が実行されるのは、ユーザが実際の tty に
-ログインしたときだけになる。すなわち、\fBsudo\fR を実行できるのは、
+これをセットすると、\fBsudo\fR が実行されるのは、ユーザが実際の tty
\81«ã\83­ã\82°ã\82¤ã\83³ã\81\97ã\81\9fã\81¨ã\81\8dã\81 ã\81\91ã\81«ã\81ªã\82\8bã\80\82ã\81\99ã\81ªã\82\8fã\81¡ã\80\81\fBsudo\fR ã\82\92å®\9fè¡\8cã\81§ã\81\8dã\82\8bã\81®ã\81¯ã\80\81
 ログイン・セッションからだけであって、
-\&\fIcron\fR\|(8) や cgi-bin スクリプトといった、ほかの方法を介して実行する
-ことはできないということだ。このフラグは、デフォルトでは \fIoff\fR である。
+\&\fIcron\fR\|(8) や cgi-bin スクリプトといった、
+ほかの方法を介して実行することはできないということだ。このフラグは、
+デフォルトでは \fIoff\fR である。
 .IP "root_sudo" 16
 .IX Item "root_sudo"
 これをセットすると、root も \fBsudo\fR を実行できるようになる。
-このフラグを無効にすると、ユーザがたとえば \f(CW"sudo sudo /bin/sh"\fR と
\81\84ã\81£ã\81\9fã\82\88ã\81\86ã\81« \fBsudo\fR ã\82³ã\83\9eã\83³ã\83\89ã\82\92\fBé\80£é\8e\96ç\9a\84ã\81«\fR使ã\81£ã\81¦ã\80\81ã\83«ã\83¼ã\83\88ã\82·ã\82§ã\83«ã\82\92
-獲得することができなくなる。ところで、
-\&\fIroot_sudo\fR が off だと、root が \fBsudoedit\fR まで実行できなくなる
-ことに注意してほしい。
+このフラグを無効にすると、ユーザがたとえば \f(CW"sudo sudo /bin/sh"\fR
\81¨ã\81\84ã\81£ã\81\9fã\82\88ã\81\86ã\81« \fBsudo\fR ã\82³ã\83\9eã\83³ã\83\89ã\82\92\fBé\80£é\8e\96ç\9a\84ã\81«\fR使ã\81£ã\81¦ã\80\81
+ルートシェルを獲得することができなくなる。ところで、
+\&\fIroot_sudo\fR が off だと、root が \fBsudoedit\fR
\81¾ã\81§å®\9fè¡\8cã\81§ã\81\8dã\81ªã\81\8fã\81ªã\82\8bã\81\93ã\81¨ã\81«æ³¨æ\84\8fã\81\97ã\81¦ã\81»ã\81\97ã\81\84ã\80\82
 \&\fIroot_sudo\fR を無効にしても、セキュリティが実際に向上するわけではない。
 このフラグが存在しているのは、もっぱら歴史的な理由からなのだ。
 このフラグはデフォルトでは \fIon\fR である。
 .IP "rootpw" 16
 .IX Item "rootpw"
-これをセットすると、\fBsudo\fR はプロンプトで、起動したユーザの
-パスワードではなく、root のパスワードを要求するようになる。
+これをセットすると、\fBsudo\fR はプロンプトで、起動したユーザのパスワードではなく、
+root のパスワードを要求するようになる。
 このフラグはデフォルトでは \fIoff\fR である。
 .IP "runaspw" 16
 .IX Item "runaspw"
-これをセットすると、\fBsudo\fR はプロンプトで、起動したユーザの
-パスワードではなく、\fIsudoers\fR ファイルの \fIrunas_default\fR オプションが
-定義しているユーザーの (デフォルトでは \f(CW\*(C`root\*(C'\fR である)
-パスワードを要求する。このフラグはデフォルトでは \fIoff\fR である。
+これをセットすると、\fBsudo\fR はプロンプトで、起動したユーザのパスワードではなく、
+\&\fIsudoers\fR ファイルの
+\&\fIrunas_default\fR オプションで指定しているユーザーの
+(デフォルトでは \f(CW\*(C`root\*(C'\fR である) パスワードを要求する。
+このフラグはデフォルトでは \fIoff\fR である。
 .IP "set_home" 16
 .IX Item "set_home"
-これがセットされているとき、\fBsudo\fR を \fB\-s\fR オプション付きで
-起動すると、環境変数 \f(CW\*(C`HOME\*(C'\fR が変身対象ユーザの 
+これが有効なときに \fBsudo\fR を \fB\-s\fR オプション付きで起動すると、
+環境変数 \f(CW\*(C`HOME\*(C'\fR が変身対象ユーザの 
 (\fB\-u\fR オプションが使用されないかぎり、それは root である)
 ホームディレクトリに設定される。すなわち、 \fB\-s\fR オプションが
-\&\fB\-H\fR オプションを事実上兼ねることになるわけだ。このフラグは
-デフォルトでは \fIoff\fR である。
+\&\fB\-H\fR オプションを事実上兼ねることになるわけだ。
+気をつけてほしいのは、\fIenv_reset\fR が有効な場合、\f(CW\*(C`HOME\*(C'\fR
+はすでに (訳注: 変身対象ユーザのホームディレクトリに) 設定済みだということだ。
+だから、\fIset_home\fR の効果があるのは、
+\&\fIenv_reset\fR が無効に設定されているか、 \fIenv_keep\fR のリストに
+\&\f(CW\*(C`HOME\*(C'\fR が存在する場合のみである。
+このフラグはデフォルトでは \fIoff\fR である。
 .IP "set_logname" 16
 .IX Item "set_logname"
 通常 \fBsudo\fR は環境変数 \f(CW\*(C`LOGNAME\*(C'\fR,
-\&\f(CW\*(C`USER\*(C'\fR, \f(CW\*(C`USERNAME\*(C'\fR を
-変身対象ユーザの名前 (\fB-u\fR オプションが指定されていない場合、
+\&\f(CW\*(C`USER\*(C'\fR, \f(CW\*(C`USERNAME\*(C'\fR
+変身対象ユーザの名前 (\fB-u\fR オプションが指定されていない場合、
 普通は root) にセットする。しかし、プログラムによっては (たとえば、
-\&\s-1RCS\s0 リビジョンコントロールシステムがその一つだが) ユーザが
-実際には誰であるかを判定するのに \f(CW\*(C`LOGNAME\*(C'\fR を
-使用していることがあるので、この振舞いを変更することが望ましい場合もある。
+\&\s-1RCS\s0 リビジョンコントロールシステムがその一つだが)
+ユーザが実際には誰であるかを判定するのに \f(CW\*(C`LOGNAME\*(C'\fR
+を使用していることがあり、そのために、この振舞いを変更したい場合もある。
 set_logname オプションに '!' を付けて否定することで、それができる。
 なお \fIenv_reset\fR オプションを無効にしていない場合、
-\&\fIenv_keep\fR リストの項目が \fIset_logname\fR による値を
-上書きすることになるので、注意してほしい。このフラグはデフォルトでは 
-\&\fIon\fR である。
+\&\fIenv_keep\fR リストの項目が \fIset_logname\fR
+による値を上書きすることになるので、注意してほしい。
+このフラグはデフォルトでは \fIon\fR である。
+.IP "set_utmp" 16
+.IX Item "set_utmp"
+これが有効になっていると、\fBsudo\fR は擬似 tty を割り当てるときに、
+utmp (または utmpx) ファイルにエントリを作成する。
+\&\fBsudo\fR によって擬似 tty の割り当てが行われるのは、
+\&\fIlog_input\fR, \fIlog_output\fR, \fIuse_pty\fR
+といったフラグが有効になっているときである。
+デフォルトでは、新しいエントリは、そのユーザの utmp エントリが存在すれば、
+そのコピーであり、tty, time, type, pid フィールドが更新される。
+このフラグはデフォルトでは \fIon\fR である。
 .IP "setenv" 16
 .IX Item "setenv"
\81\93ã\82\8cã\82\92ã\82»ã\83\83ã\83\88ã\81\99ã\82\8bã\81¨ã\80\81ã\83¦ã\83¼ã\82¶ã\81\8cã\82³ã\83\9eã\83³ã\83\89ã\83©ã\82¤ã\83³ã\81\8bã\82\89 \fIenv_reset\fR ã\82ªã\83\97ã\82·ã\83§ã\83³ã\82\92
-無効にできるようになる。さらに、コマンドラインから設定する環境変数が 
-\&\fIenv_check\fR, \fIenv_delete\fR, \fIenv_keep\fR による制限を
-受けなくなる。それ故、そのようなやり方で変数を設定することを
-許可するのは、信用できるユーザのみに限るべきだ。このフラグは
-デフォルトでは \fIoff\fR である。
\81\93ã\82\8cã\82\92ã\82»ã\83\83ã\83\88ã\81\99ã\82\8bã\81¨ã\80\81ã\83¦ã\83¼ã\82¶ã\81\8cã\82³ã\83\9eã\83³ã\83\89ã\83©ã\82¤ã\83³ã\81§ \fB\-E\fR ã\82ªã\83\97ã\82·ã\83§ã\83³ã\82\92æ\8c\87å®\9aã\81\97ã\81¦ã\80\81
+\&\fIenv_reset\fR オプションを無効にできるようになる。
+さらに、コマンドラインから設定する環境変数が 
+\&\fIenv_check\fR, \fIenv_delete\fR, \fIenv_keep\fR による制限を受けなくなる。
+それ故、そのようなやり方で変数を設定することを許可するのは、
+信用できるユーザのみに限るべきだ。このフラグはデフォルトでは \fIoff\fR である。
 .IP "shell_noargs" 16
 .IX Item "shell_noargs"
 これがセットされているとき、\fBsudo\fR を引き数なしで起動すると、
 \&\fBsudo\fR は \fB\-s\fR オプションが指定されたかのように振舞う。
-すなわち、root ユーザとしてシェルを実行するわけだ (シェルは、
-環境変数 \f(CW\*(C`SHELL\*(C'\fR がセットされていれば、それによって決まるし、
-セットされていなければ、\fBsudo\fR を起動したユーザの /etc/passwd エントリに
-登録されたものになる)。このフラグはデフォルトでは \fIoff\fR である。
-.IP "fast_glob" 16
-.IX Item "fast_glob"
-通常 \fBsudo\fR はパス名のマッチングをするとき、\fIglob\fR\|(3) 関数を
-使用して、シェル・スタイルのワイルドカード展開 (glob) を行う。しかし、
-\&\fIglob\fR\|(3) はファイルシステムにアクセスするので、指定パターンに
-よっては、作業を完了するまでに時間がかかることがある。
-必要な時にマウントするようになっている (つまりオートマウントの)
-ネットワーク・ファイル・システムを参照するときは、とりわけ時間がかかる。
-\&\fIfast_glob\fR オプションを指定すると、\fBsudo\fR が
-\&\fIfnmatch\fR\|(3) 関数を使うようになるが、こちらの関数はマッチングの際に
-ファイルシステムにアクセスしない。\fIfast_glob\fR の欠点は、
-\&\fI./ls\fR や \fI../bin/ls\fR のような相対パスに対するマッチが
-できないことである。このフラグはデフォルトでは \fIoff\fR である。
+すなわち、root ユーザとしてシェルを実行するわけだ (シェルは、環境変数
+\f(CW\*(C`SHELL\*(C'\fR がセットされていれば、それによって決まるし、
+セットされていなければ、\fBsudo\fR を起動したユーザの
+/etc/passwd エントリに登録されたものになる)。このフラグはデフォルトでは
+\&\fIoff\fR である。
 .IP "stay_setuid" 16
 .IX Item "stay_setuid"
-通常 \fBsudo\fR がコマンドを実行するとき、実 UID と実効 UID は
-変身対象ユーザ (デフォルトでは root) のものにセットされる。このオプションは
\81\9dã\81®æ\8c¯è\88\9eã\81\84ã\82\92å¤\89æ\9b´ã\81\97ã\81¦ã\80\81\fBsudo\fR ã\82\92èµ·å\8b\95ã\81\97ã\81\9fã\83¦ã\83¼ã\82¶ã\81® \s-1UID\s0 ã\81\8cã\80\81
-そのまま実 \s-1UID\s0 として残るようにする。言い換えると、\fBsudo\fR が 
-setuid ラッパーとして動作するようになるわけだ。プログラムを setuid で
-動かすと、危険をもたらしかねないという理由から、ある種の機能を
-使えないようにしているシステムでは、このオプションが役に立つかもしれない。
\81\93ã\81®ã\82ªã\83\97ã\82·ã\83§ã\83³ã\81¯ã\80\81 \fIsetreuid()\fR é\96¢æ\95°ã\81ªã\82\8a \fIsetresuid()\fR é\96¢æ\95°ã\81ªã\82\8aã\82\92
-持っているシステムでのみ有効である。
+通常 \fBsudo\fR がコマンドを実行するとき、実 UID と実効 UID
+は変身対象ユーザ (デフォルトでは root) のものにセットされる。
\81\93ã\81®ã\82ªã\83\97ã\82·ã\83§ã\83³ã\81¯ã\80\81ã\81\9dã\81®æ\8c¯è\88\9eã\81\84ã\82\92å¤\89æ\9b´ã\81\97ã\81¦ã\80\81\fBsudo\fR ã\82\92èµ·å\8b\95ã\81\97ã\81\9fã\83¦ã\83¼ã\82¶ã\81®
+\&\s-1UID\s0 が、そのまま実 \s-1UID\s0 として残るようにする。言い換えると、
+\&\fBsudo\fR が setuid ラッパーとして動作するようになるわけだ。
+プログラムを setuid で動かすと、危険をもたらしかねないという理由から、
+ある種の機能を使えないようにしているシステムでは、
\81\93ã\81®ã\82ªã\83\97ã\82·ã\83§ã\83³ã\81\8cå½¹ã\81«ç«\8bã\81¤ã\81\8bã\82\82ã\81\97ã\82\8cã\81ªã\81\84ã\80\82ã\81\93ã\81®ã\82ªã\83\97ã\82·ã\83§ã\83³ã\81¯ã\80\81\fIsetreuid()\fR
+関数や \fIsetresuid()\fR 関数を持っているシステムでのみ有効である。
 このフラグはデフォルトでは \fIoff\fR である。
 .IP "targetpw" 16
 .IX Item "targetpw"
-これをセットすると、\fBsudo\fR はプロンプトで、起動したユーザのパスワード
-ではなく、\fB\-u\fR オプションで指定されたユーザ (デフォルトでは root) の 
-パスワードを要求する。この設定をすると、\fB\-u\fR オプションの引き数として、
+これをセットすると、\fBsudo\fR はプロンプトで、
+起動したユーザのパスワードではなく、
+\&\fB\-u\fR オプションで指定されたユーザ (デフォルトでは root)
+のパスワードを要求することになる。それに加えて、
+タイムスタンプ・ファイルの名前に変身対象ユーザの名前が含まれるようになる。
+このフラグを設定をすると、\fB\-u\fR オプションの引き数として、
 passwd データベースに登録されていない uid が使えなくなることに注意してほしい。
 このフラグはデフォルトでは \fIoff\fR である。
 .IP "tty_tickets" 16
 .IX Item "tty_tickets"
 これをセットすると、ユーザは tty ごとに認証をしなければならなくなる。
-\&\fBsudo\fR は通常、チケットディレクトリ (訳注:たとえば 
-/var/run/sudo) にある、\fBsudo\fR を実行しているユーザと同じ名前のディ
-レクトリを認証に使用する。しかし、このフラグが有効になっている場合は、
-そのディレクトリにある、ユーザがログインしている tty に対応する名前の
-ファイルを使用することになるのだ。このフラグはデフォルトでは \fIoff\fR 
-である。
+このフラグが有効な場合、
+\&\fBsudo\fR はユーザのタイムスタンプ・ディレクトリにある、
+ユーザがログインしている tty
+に対応する名前のファイルをタイムスタンプに使用する。
+それに対して、このフラグが無効な場合は、
+ユーザのタイムスタンプ・ディレクトリそのもののタイムスタンプが使用されるのである。
+このフラグはデフォルトでは \fIon\fR である。
 .IP "umask_override" 16
 .IX Item "umask_override"
 これをセットすると、\fBsudo\fR は umask を \fIsudoers\fR の
 umask オプションで指定されたとおりの値に、変更を加えることなく設定する。
 このことによって、ユーザ自身の umask 値よりもっと緩やかな umask 値を
-\&\fIsudoers\fR で指定することが可能になる。\fBsudo\fR の昔の動作と
-同じになるわけだ。
-\&\fIumask_override\fR をセットしない場合、現在の \fBsudo\fR は umask を、
-ユーザの umask 値と \fIsudoers\fR で指定した umask 値とのビット和に
-設定することになっている。このフラグはデフォルトでは \fIoff\fR である。
-.\" .IP "use_loginclass" 16
-.\" .IX Item "use_loginclass"
-.\" If set, \fBsudo\fR will apply the defaults specified for the target user's
-.\" login class if one exists.  Only available if \fBsudo\fR is configured with
-.\" the \-\-with\-logincap option.  This flag is \fIoff\fR by default.
-.\" これをセットすると、\fBsudo\fR は、変身対象ユーザのログインクラスが存
-.\" 在するならば、それに対して指定されたデフォルトの値を使うことになる。こ
-.\" のフラグは、\fBsudo\fR を \-\-with\-logincap オプションを付けて 
-.\" configure したときのみ利用することができる。このフラグはデフォルトでは 
-.\" \&\fIoff\fR である。
+\&\fIsudoers\fR で指定することが可能になる。
+\&\fBsudo\fR の昔の動作と同じになるわけだ。
+\&\fIumask_override\fR をセットしない場合、
+現在の \fBsudo\fR は umask を、ユーザの umask 値と \fIsudoers\fR で指定した
+umask 値とのビット和に設定することになっている。
+このフラグはデフォルトでは \fIoff\fR である。
+.if \n(LC \{\
+.IP "use_loginclass" 16
+.IX Item "use_loginclass"
+これをセットすると、\fBsudo\fR は、
+変身対象ユーザのログインクラスが存在するならば、
+それに対して指定されたデフォルトの値を使うことになる。
+このフラグは、\fBsudo\fR を \-\-with\-logincap オプションを付けて 
+configure したときのみ利用することができる。このフラグはデフォルトでは 
+\&\fIoff\fR である。
+\}
+.IP "use_pty" 16
+.IX Item "use_pty"
+これをセットすると、\fBsudo\fR は入出力のロギングが行われていないときでも、
+擬似 tty でコマンドを実行することになる。
+\&\fBsudo\fR によって実行された悪意のあるプログラムが、
+バックグラウンド・プロセスをフォークし、
+そのプロセスが、メインプログラムの実行が終了した後でも、
+ユーザのターミナルデバイスを握って離さないといったことが考えられる。
+このオプションを使えば、そういったことが不可能になる。
+このフラグはデフォルトでは \fIoff\fR である。
+.IP "utmp_runas" 16
+.IX Item "utmp_runas"
+これをセットすると、\fBsudo\fR は utmp (または utmpx) ファイルを更新するとき、
+変身対象ユーザの名前を記録するようになる。\fBsudo\fR はデフォルトでは、
+\&\fBsudo\fR を実行したユーザの名前を記録するのだ。
+このフラグはデフォルトでは \fIoff\fR である。
 .IP "visiblepw" 16
 .IX Item "visiblepw"
 デフォルトでは、ユーザがパスワードを入力しなければならないときに、
 使用しているターミナルでエコーの抑制ができなかったら、
-\&\fBsudo\fR は実行を拒否するようになっている。これに対し、
-\&\fIvisiblepw\fR フラグが設定されていると、パスワードがスクリーンに
-表示されてしまう場合でも、\fBsudo\fR はプロンプトを出して、パスワードを
-求める。この動作によって、
+\&\fBsudo\fR は実行を拒否するようになっている。
+これに対し、\fIvisiblepw\fR フラグが設定されていると、
+パスワードがスクリーンに表示されてしまう場合でも、
+\&\fBsudo\fR はプロンプトを出して、パスワードを求める。この動作によって、
 \&\fIrsh\fR\|(1) は tty を割り当てないにもかかわらず、
 \&\f(CW"rsh somehost sudo ls"\fR といった操作の実行が可能になるわけだ。
 このフラグはデフォルトでは \fIoff\fR である。
@@ -1098,87 +1459,162 @@ umask オプションで指定されたとおりの値に、変更を加える
 .IX Item "closefrom"
 \&\fBsudo\fR はコマンドを実行する前に、標準入力、標準出力、標準エラー
 (すなわち、ファイルディスクリプタ 0\-2 である) を除いて、
-オープンしたすべてのファイル・ディスクリプタをクローズする。
-\&\fIclosefrom\fR オプションを使用すると、0\-2 以外の
-どのファイル・ディスクリプタからクローズして行くかを指定することができる。
+開いているすべてのファイル・ディスクリプタをクローズする。
+\&\fIclosefrom\fR オプションを使用すると、
+0\-2 以外のどのファイル・ディスクリプタから閉じて行くかを指定することができる。
 デフォルトは \f(CW3\fR である。
 .IP "passwd_tries" 16
 .IX Item "passwd_tries"
-\&\fBsudo\fR が「失敗」をログに記録して終了する前に、ユーザがパスワードを
-入力できる回数。デフォルトは \f(CW\*(C`3\*(C'\fR。
+\&\fBsudo\fR が「失敗」をログに記録して終了する前に、
+ユーザがパスワードを入力できる回数。デフォルトは \f(CW\*(C`3\*(C'\fR。
 .PP
 \&\fB真偽値としても使用できる整数\fR:
 .IP "loglinelen" 16
 .IX Item "loglinelen"
-\&\fBsudo\fR 用ログファイルの一行あたりの文字数。この値は、ログファイルを
-見やすくするために改行する位置を決めるのに使用される。この値は、
-syslog 経由のログファイルには影響せず、直接ファイルにログを書き出すときのみ
-効果がある。デフォルトは \f(CW\*(C`80\*(C'\fR である (改行をしないように
-するには、値を 0 にするか、頭に '!' を付けて、このオプションを否定する)。
+\&\fBsudo\fR 用ログファイルの一行あたりの文字数。
+この値は、ログファイルを見やすくするために改行する位置を決めるのに使用される。
+この値は、syslog 経由のログファイルには影響せず、
+直接ファイルにログを書き出すときのみ効果がある。デフォルトは
+\&\f(CW\*(C`80\*(C'\fR である (改行をしないようにするには、値を 0 にするか、
+頭に '!' を付けて、このオプションを否定する)。
 .IP "passwd_timeout" 16
 .IX Item "passwd_timeout"
 \&\fBsudo\fR のパスワードプロンプトが時間切れになるまでの分単位の時間。
-デフォルトは \f(CW\*(C`5\*(C'\fR である。これを \f(CW0\fR にセットする
-と、パスワードプロンプトが時間切れなしになる。
+\&\f(CW0\fR を指定すると、時間切れなしになる。
+分よりももっと細かい時間を指定したいときは、(\f(CW2.5\fR のように)
+小数点以下を付けることもできる。デフォルトは \f(CW\*(C`5\*(C'\fR である。
 .IP "timestamp_timeout" 16
 .IX Item "timestamp_timeout"
-\&\fBsudo\fR がパスワードを再び要求するようになるまでの時間を分単位で
-指定する。デフォルトでは \f(CW\*(C`5\*(C'\fR である。これを \f(CW0\fR に
-セットすると、毎回パスワードを要求するようになる。\f(CW0\fR より小さい値に
-セットした場合は、ユーザのタイムスタンプが期限切れになることがない。
-ユーザが \f(CW\*(C`sudo \-v\*(C'\fR と \f(CW\*(C`sudo \-k\*(C'\fR を
-実行することによって、タイムスタンプを自分で作ったり、消したりできるように
-したかったら、この手を使えばよい。
+\&\fBsudo\fR がパスワードを再び要求するようになるまでの時間を
+分単位で指定する。分よりももっと細かい時間を指定したいときは、
+(\f(CW2.5\fR のように) 小数点以下を付けることもできる。
+デフォルトでは \f(CW\*(C`5\*(C'\fR である。
+これを \f(CW0\fR にセットすると、毎回パスワードを要求するようになる。
+\&\f(CW0\fR より小さい値にセットした場合は、
+ユーザのタイムスタンプが期限切れになることがない。
+ユーザが \f(CW\*(C`sudo \-v\*(C'\fR と \f(CW\*(C`sudo \-k\*(C'\fR
+を実行することによって、タイムスタンプを自分で作ったり、
+消したりできるようにしたかったら、この手を使えばよい。
 .IP "umask" 16
 .IX Item "umask"
-コマンドを実行しているときに使用する umask 値。ユーザの umask 値をそのまま
-使いたかったら、'!' を頭に付けて、このオプションを否定するか、0777 に
-セットする。このオプションの値が 0777 以外の場合、実際に使用される
-umask 値は、ユーザの umask 値と umask オプションで指定する umask 値との
-ビット和になる。そのことによって、\fBsudo\fR がコマンドを実行するときの
-umask 値が、ユーザの umask 値より低くならないようになっているわけだ。
-なお、umask オプションのデフォルトの値は、\f(CW\*(C`0022\*(C'\fR である。
+コマンドを実行するときに使用する umask 値。
+ユーザの umask 値をそのまま使いたかったら、'!' を頭に付けて、
+このオプションを否定するか、0777 にセットすればよい。
+このオプションの値が 0777 以外の場合、実際に使用される umask 値は、
+ユーザの umask 値と \fIumask\fR オプションの値とのビット和であり、
+後者のデフォルトは \f(CW\*(C`0022\*(C'\fR である。
+このことによって、\fBsudo\fR がコマンドを実行するときの umask 値が、
+ユーザの umask 値より低くならないようになっているわけだ。
 \&\s-1PAM\s0 を使用しているシステムでは、 \s-1PAM\s0 のデフォルト設定で
-umask 値を指定することができるが、その場合は、それが \fIsudoers\fR で
-指定した値を上書きすることに注意してほしい。
+umask 値を指定することができるが、その場合は、それが \fIsudoers\fR
+指定した値を上書きすることに注意してほしい。
 .PP
 \&\fB文字列\fR:
 .IP "badpass_message" 16
 .IX Item "badpass_message"
 ユーザが不正なパスワードを入力したときに表示するメッセージ。
-\&\fIinsults\fR フラグが有効になっていないかぎり、デフォルトは
-「\f(CW\*(C`Sorry, try again.\*(C'\fR」である。
+\&\fIinsults\fR フラグが有効になっていないかぎり、
\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81¯ã\80\8c\f(CW\*(C`Sorry, try again.\*(C'\fRã\80\8dã\81§ã\81\82ã\82\8bã\80\82
 .IP "editor" 16
 .IX Item "editor"
 \&\fBvisudo\fR で使用できるエディタをコロン (':') で区切ったリスト。
-\&\fBvisudo\fR は、可能ならば、ユーザの \s-1EDITOR\s0 環境変数と一致し
-たエディタを選択する。それができないときは、このリストにあるエディタで、
-実際に存在し、かつ実行可能な最初のエディタを使用する。デフォルトは使用
-システムにおける vi のパスである。
+\&\fBvisudo\fR は、可能ならば、
+ユーザの \s-1EDITOR\s0 環境変数と一致したエディタを選択する。
+それができないときは、このリストにあるエディタで、
+実際に存在し、かつ実行可能な最初のエディタを使用する。デフォルトは
+\&\f(CW"/usr/bin/vi"\fR である。
+.IP "iolog_dir" 16
+.IX Item "iolog_dir"
+このオプションの値をトップレベル・ディレクトリにして、
+入出力ログを格納するディレクトリのパス名が構成される。
+この値が使用されるのは、\fIlog_input\fR や
+\&\fIlog_output\fR オプションが有効になっているときや、
+\&\f(CW\*(C`LOG_INPUT\*(C'\fR や \f(CW\*(C`LOG_OUTPUT\*(C'\fR
+タグがコマンドに付いているときだけである。このディレクトリ以下に、
+(セッション ID が連番ならば) セッションの連番が格納されることになるわけだ。
+デフォルトは \f(CW"/var/log/sudo-io"\fR である。
+.Sp
+以下のパーセント (`\f(CW\*(C`%\*(C'\fR') エスケープシーケンスが使用できる。
+.RS 16
+.ie n .IP "\*(C`%{seq}\*(C'" 4
+.el .IP "\f(CW\*(C`%{seq}\*(C'\fR" 4
+.IX Item "%{seq}"
+単純に増加する 36 進数の連続番号に展開される。たとえば、0100A5 といった番号であり、
+二桁づつ使って新しいディレクトリを作っていく。この場合なら、
+\&\fI01/00/A5\fR といった具合だ。
+.ie n .IP "\*(C`%{user}\*(C'" 4
+.el .IP "\f(CW\*(C`%{user}\*(C'\fR" 4
+.IX Item "%{user}"
+\&\fBsudo\fR を実行するユーザーのログイン名に展開される。
+.ie n .IP "\*(C`%{group}\*(C'" 4
+.el .IP "\f(CW\*(C`%{group}\*(C'\fR" 4
+.IX Item "%{group}"
+\&\fBsudo\fR を実行するユーザーの実グループ \s-1ID\s0 の名前に展開される。
+.ie n .IP "\*(C`%{runas_user}\*(C'" 4
+.el .IP "\f(CW\*(C`%{runas_user}\*(C'\fR" 4
+.IX Item "%{runas_user}"
+変身対象ユーザのログイン名に展開される (たとえば root)。
+.ie n .IP "\*(C`%{runas_group}\*(C'" 4
+.el .IP "\f(CW\*(C`%{runas_group}\*(C'\fR" 4
+.IX Item "%{runas_group}"
+変身対象ユーザのグループ名に展開される (たとえば wheel)。
+.ie n .IP "\*(C`%{hostname}\*(C'" 4
+.el .IP "\f(CW\*(C`%{hostname}\*(C'\fR" 4
+.IX Item "%{hostname}"
+ドメイン名なしのローカル・ホスト名に展開される。
+.ie n .IP "\*(C`%{command}\*(C'" 4
+.el .IP "\f(CW\*(C`%{command}\*(C'\fR" 4
+.IX Item "%{command}"
+実行されるコマンドのベースネームに展開される。
+.RE
+.RS 16
+.Sp
+このほか、システムの \fIstrftime()\fR
+関数がサポートしているエスケープシーケンスは、
+いかなるものでも展開の対象になる。
+.Sp
+\&`\f(CW\*(C`%\*(C'\fR' 文字そのものを使いたかったら、文字列
+\&`\f(CW\*(C`%%\*(C'\fR' を使用すればよい。
+.RE
+.IP "iolog_file" 16
+.IX Item "iolog_file"
+\&\fIiolog_dir\fR を基点とする相対パス名であり、\fIlog_input\fR や
+\&\fIlog_output\fR オプションが有効になっていたり、
+\&\f(CW\*(C`LOG_INPUT\*(C'\fR や \f(CW\*(C`LOG_OUTPUT\*(C'\fR
+タグがコマンドに付いている場合に、入出力ログがこの中に格納される。
+\&\fIiolog_file\fR の値がディレクトリ構成をなしていることがあるのに注意すること。
+デフォルトは \f(CW"%{seq}"\fR である。
+.Sp
+使用できるパーセント (`\f(CW\*(C`%\*(C'\fR') エスケープシーケンスのリストについては、
+上記の \fIiolog_dir\fR オプションを参照してほしい。
+.Sp
+エスケープシーケンスの展開とは別に、パス名が六個以上の \f(CW\*(C`X\*(C'\fR
+で終わっている場合、\f(CW\*(C`X\*(C'\fR の部分が、
+他と重複しない英数字の組み合わせに置き換えられる。
+\&\fImktemp()\fR 関数の場合と同様である。
 .IP "mailsub" 16
 .IX Item "mailsub"
 \&\fImailto\fR ユーザに送付するメールの件名。エスケープ文字 \f(CW%h\fR 
 はマシンのホスト名に展開される。デフォルトは「\f(CW\*(C`*** SECURITY
-information for %h ***\*(C'\fR」。
+information for %h ***\*(C'\fRã\80\8dã\81§ã\81\82ã\82\8bã\80\82
 .IP "noexec_file" 16
 .IX Item "noexec_file"
-ライブラリ関数 \fIexecv()\fR, \&\fIexecve()\fR, \fIfexecve()\fR の
-ダミー版 (エラーを返すだけの関数) が入っている共有ライブラリのパス。
-これは、\f(CW\*(C`LD_PRELOAD\*(C'\fR やそれに相当するものを
-サポートしているシステムで \fInoexec\fR 機能を実現するために使用される。
-デフォルトでは \fI/usr/local/libexec/sudo_noexec.so\fR になっている。
+このオプションはもうサポートされていない。現在では、
+noexec ファイルのパスは \fI/etc/sudo.conf\fR ファイルで設定するべきである。
+(訳注: sudo-1.8.3 では、まだこのオプションが有効かもしれない。
+しかし、そこでも \fI/etc/sudo.conf\fR を使用することが推奨されている。)
 .IP "passprompt" 16
 .IX Item "passprompt"
-パスワードを要求するときに使用するデフォルトのプロンプト。\fB-p\fR オ
-プションや環境変数 \f(CW\*(C`SUDO_PROMPT\*(C'\fR によって変更すること
\81\8cã\81§ã\81\8dã\82\8bã\80\82以ä¸\8bã\81®ã\83\91ã\83¼ã\82»ã\83³ã\83\88 (`\f(CW\*(C`%\*(C'\fR') ã\82¨ã\82¹ã\82±ã\83¼ã\83\97ã\81\8c使ç\94¨ã\81§
-きる。
+パスワードを要求するときに使用するデフォルトのプロンプト。
+\&\fB-p\fR オプションや環境変数 \f(CW\*(C`SUDO_PROMPT\*(C'\fR
\81«ã\82\88ã\81£ã\81¦å¤\89æ\9b´ã\81\99ã\82\8bã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82以ä¸\8bã\81®ã\83\91ã\83¼ã\82»ã\83³ã\83\88 (`\f(CW\*(C`%\*(C'\fR')
\82¨ã\82¹ã\82±ã\83¼ã\83\97ã\82·ã\83¼ã\82±ã\83³ã\82¹ã\81\8c使ç\94¨ã\81§ã\81\8dã\82\8bã\80\82
 .RS 16
 .ie n .IP "%H" 4
 .el .IP "\f(CW%H\fR" 4
 .IX Item "%H"
 ドメイン名付きのローカルホスト名に展開 (マシンのホスト名が完全修飾名か、
-\&\fIfqdn\fR ã\82ªã\83\97ã\82·ã\83§ã\83³ã\81\8cã\82»ã\83\83ã\83\88ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bå ´å\90\88ã\81«æ\9c\89å\8a¹)
+\&\fIfqdn\fR ã\82ªã\83\97ã\82·ã\83§ã\83³ã\81\8cã\82»ã\83\83ã\83\88ã\81\95ã\82\8cã\81¦ã\81\84ã\82\8bå ´å\90\88ã\81®ã\81¿)
 .ie n .IP "%h" 4
 .el .IP "\f(CW%h\fR" 4
 .IX Item "%h"
@@ -1199,80 +1635,73 @@ information for %h ***\*(C'\fR」。
 .ie n .IP "\*(C`%%\*(C'" 4
 .el .IP "\f(CW\*(C`%%\*(C'\fR" 4
 .IX Item "%%"
-連続した二個の \f(CW\*(C`%\*(C'\fR は、一個の \f(CW\*(C`%\*(C'\fR 文字
-そのものを意味する
+連続した二個の \f(CW\*(C`%\*(C'\fR は、一個の \f(CW\*(C`%\*(C'\fR
+文字そのものを意味する
 .RE
 .RS 16
 .Sp
 デフォルトの値は「\f(CW\*(C`Password:\*(C'\fR」である。
 .RE
-.\" .IP "role" 16
-.\" .IX Item "role"
-.\" The default SELinux role to use when constructing a new security
-.\" context to run the command.  The default role may be overridden on
-.\" a per-command basis in \fIsudoers\fR or via command line options.
-.\" This option is only available whe \fBsudo\fR is built with SELinux support.
-.\" コマンドを実行するために SELinux の新しいセキュリティ・コンテキストを
-.\" 構成するとき、使用するデフォルトのロール。デフォルトのロールは、
-.\" \&\fIsudoers\fR ファイルや、コマンドラインオプションを使って、コマンド
-.\" ごとに変更することができる。このオプションが利用できるのは、\fBsudo\fR 
-.\" が SELinux サポートつきで作成されたときだけである。
+.if \n(SL \{\
+.IP "role" 16
+.IX Item "role"
+コマンドを実行するために
+SELinux の新しいセキュリティ・コンテキストを構成するときに使用する、
+デフォルトのロール。デフォルトのロールは、
+\&\fIsudoers\fR ファイルや、コマンドラインオプションを使って、
+コマンドごとに変更することができる。このオプションが利用できるのは、
+\&\fBsudo\fR が SELinux サポートつきで作成されたときだけである。
+\}
 .IP "runas_default" 16
 .IX Item "runas_default"
-コマンドラインで \fB-u\fR オプションが指定されていないときの、デフォルトの
-変身対象ユーザ。デフォルトでは \f(CW\*(C`root\*(C'\fR になっている。
-\fIrunas_default\fR をセットするなら、\f(CW\*(C`Runas_Alias\*(C'\fR を
-指定するよりも前にやらなければならないことに注意すること。
+コマンドラインで \fB-u\fR オプションが指定されていないときの、
+デフォルトの変身対象ユーザ。デフォルトでは \f(CW\*(C`root\*(C'\fR
+になっている。
 .IP "syslog_badpri" 16
 .IX Item "syslog_badpri"
-ユーザが認証に失敗したときに使用する syslog の優先順位 (priority)。デ
-フォルトでは \f(CW\*(C`alert\*(C'\fR になっている。
+ユーザが認証に失敗したときに使用する syslog の重大度 (priority)。
+デフォルトでは \f(CW\*(C`alert\*(C'\fR になっている。
+.Sp
+syslog の重大度には、次のものが指定できる。\fBalert\fR, \fBcrit\fR,
+\&\fBdebug\fR, \fBemerg\fR, \fBerr\fR, \fBinfo\fR, \fBnotice\fR,
+\&\fBwarning\fR。
 .IP "syslog_goodpri" 16
 .IX Item "syslog_goodpri"
-ユーザが認証に成功したときに使用する syslog の優先順位 (priority)。デ
-フォルトでは \f(CW\*(C`notice\*(C'\fR になっている。
+ユーザが認証に成功したときに使用する syslog の重大度 (priority)。
+デフォルトでは \f(CW\*(C`notice\*(C'\fR になっている。
+.Sp
+どんな syslog の重大度が指定できるかについては、
+syslog_badpri を参照。
 .IP "sudoers_locale" 16
 .IX Item "sudoers_locale"
-sudoers ファイルを解析するときに使用するロケール。ロケールの変更は、
-sudoers の解釈に影響があるかもしれないので、注意してほしい。
+sudoers ファイルを解析したり、コマンドのログを記録したり、
+email を送付したりするときに使用するロケール。ロケールの変更は、
+sudoers の解釈に影響があるかもしれないので、気をつけてほしい。
 デフォルトでは \f(CW"C"\fR になっている。
 .IP "timestampdir" 16
 .IX Item "timestampdir"
-\&\fBsudo\fR がタイムスタンプ・ファイルを置くディレクトリ。デフォルト
\81¯ \fI/var/run/sudo\fR である。
+\&\fBsudo\fR がタイムスタンプ・ファイルを置くディレクトリ。
\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81¯ \fI/var/lib/sudo\fR である。
 .IP "timestampowner" 16
 .IX Item "timestampowner"
-タイムスタンプ・ディレクトリとそこに置かれるタイムスタンプの所有者。デ
-フォルトは \f(CW\*(C`root\*(C'\fR である。
-.\" .IP "type" 16
-.\" .IX Item "type"
-.\" The default SELinux type to use when constructing a new security
-.\" context to run the command.  The default type may be overridden on
-.\" a per-command basis in \fIsudoers\fR or via command line options.
-.\" This option is only available whe \fBsudo\fR is built with SELinux support.
-.\" コマンドを実行するために SELinux の新しいセキュリティ・コンテキストを
-.\" 構成するとき、使用するデフォルトのタイプ。デフォルトのタイプは、
-.\" \&\fIsudoers\fR ファイルや、コマンドラインオプションを使って、コマンド
-.\" ごとに変更することができる。このオプションが利用できるのは、\fBsudo\fR 
-.\" が SELinux サポートつきで作成されたときだけである。
+タイムスタンプ・ディレクトリとそこに置かれるタイムスタンプの所有者。
+デフォルトは \f(CW\*(C`root\*(C'\fR である。
+.if \n(SL \{\
+.IP "type" 16
+.IX Item "type"
+コマンドを実行するために SELinux の新しいセキュリティ・コンテキストを
+構成するとき、使用するデフォルトのタイプ。デフォルトのタイプは、
+\&\fIsudoers\fR ファイルや、コマンドラインオプションを使って、コマンド
+ごとに変更することができる。このオプションが利用できるのは、\fBsudo\fR 
+が SELinux サポートつきで作成されたときだけである。
+\}
 .PP
 \&\fB真偽値としても使用できる文字列\fR:
-.IP "askpass" 12
-.IX Item "askpass"
-\&\fIaskpass\fR で指定するのは、ヘルパー・プログラムの絶対パスである。
-このヘルパー・プログラムは、ターミナルを利用できないときに、
-ユーザのパスワードを読み込むために使用する。たとえば、\fBsudo\fR が
-(テキストベースではなく) グラフィカルなアプリケーションから実行される
-といった場合だ。\fIaskpass\fR で指定されたヘルパー・プログラムは、
-渡された引き数をプロンプトとして表示し、ユーザのパスワードを標準出力に
-書き出すべきである。
-\&\fIaskpass\fR の値は、環境変数 \f(CW\*(C`SUDO_ASKPASS\*(C'\fR で
-上書きすることができる。
 .IP "env_file" 12
 .IX Item "env_file"
 \&\fIenv_file\fR オプションでファイルの絶対パスを指定すると、
-å®\9fè¡\8cã\81\99ã\82\8bã\83\97ã\83­ã\82°ã\83©ã\83 ã\81®ç\92°å¢\83ã\81¨ã\81\97ã\81¦è¨­å®\9aã\81\99ã\82\8bå¤\89æ\95°ã\82\92ã\81\9dã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81«æ ¼ç´\8dã\81\97ã\81¦
\81\8aã\81\8fã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82ã\81\93ã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81®ã\82¨ã\83³ã\83\88ã\83ªã\81¯ \f(CW\*(C`VARIABLE=value\*(C'\fR
+å®\9fè¡\8cã\81\99ã\82\8bã\83\97ã\83­ã\82°ã\83©ã\83 ã\81®ç\92°å¢\83ã\81¨ã\81\97ã\81¦è¨­å®\9aã\81\99ã\82\8bå¤\89æ\95°ã\82\92ã\80\81ã\81\9dã\81®ã\83\95ã\82¡ã\82¤ã\83«ã\81«æ ¼ç´\8dã\81\97ã\81¦ã\81\8aã\81\8fã\81\93ã\81¨ã\81\8cã\81§ã\81\8dã\82\8bã\80\82
+このファイルのエントリは \f(CW\*(C`VARIABLE=value\*(C'\fR
 か \f(CW\*(C`export VARIABLE=value\*(C'\fR の形でなければならない。
 変数の値をシングルクォートやダブルクォートで囲んでもよい。
 このファイルに含まれる変数は、\fIenv_keep\fR や \fIenv_check\fR のような
@@ -1280,20 +1709,43 @@ sudoers の解釈に影響があるかもしれないので、注意してほし
 .IP "exempt_group" 12
 .IX Item "exempt_group"
 このグループのユーザはパスワードの入力や \fIsecure_path\fR による
-\&\s-1PATH\s0 の限定を免除されている。このオプションはデフォルトでは
-セットされていない。
+\&\s-1PATH\s0 の限定を免除されている。
+指定するグループ名に接頭辞の \f(CW\*(C`%\*(C'\fR を付けてはいけない。
+このオプションはデフォルトではセットされていない。
+.IP "group_plugin" 12
+.IX Item "group_plugin"
+このオプションの値となる文字列には、\fIsudoers\fR
+が使用するグループ・プラグインと、必要ならその引き数を指定する。
+このオプションを使えば、前述した (訳注: 「エイリアス」セクション参照)
+非 Unix グループの書式を使えるようにすることも可能だ。
+値となる文字列は、プラグインのパスに続けて、その設定に必要な引き数があれば、
+それを付け加えたものだが、パスは絶対パスか、
+\&\fI/usr/local/libexec\fR を基点とする相対パスにするべきである。
+指定した引き数は (もし存在するなら) プラグインの初期化関数に渡される。
+引き数が存在する場合は、
+文字列をダブルクォート (\f(CW\*(C`"\*(C'\fR) で囲まなければならない。 
+.Sp
+たとえば、\fI/etc/sudo\-group\fR という
+Unix グループの書式で書いたグループファイルがあるとしよう。
+次のようにすれば、sample group plugin を使用することができる。
+.Sp
+.Vb 1
+\&    Defaults group_plugin="sample_group.so /etc/sudo\-group"
+.Ve
+.Sp
+詳細に付いては、\fIsudo_plugin\fR\|(5) をご覧いただきたい。
 .IP "lecture" 12
 .IX Item "lecture"
-\&\fBsudo\fR はパスワードプロンプトに添えて簡単な訓戒を表示することが
\81§ã\81\8dã\82\8bã\80\82ã\81\93ã\81®ã\82ªã\83\97ã\82·ã\83§ã\83³ã\81¯ã\81\9dã\81®è¨\93æ\88\92ã\82\92ã\81\84ã\81¤è¡¨ç¤ºã\81\99ã\82\8bã\81\8bã\82\92決å®\9aã\81\99ã\82\8bã\80\82以ä¸\8bã\81®å\80¤ã\81\8c
-可能である。
+\&\fBsudo\fR はパスワードプロンプトに添えて簡単な訓戒を表示することができる。
\81\93ã\81®ã\82ªã\83\97ã\82·ã\83§ã\83³ã\81¯ã\81\9dã\81®è¨\93æ\88\92ã\82\92ã\81\84ã\81¤è¡¨ç¤ºã\81\99ã\82\8bã\81\8bã\82\92決å®\9aã\81\99ã\82\8bã\80\82
+以下の値が可能である。
 .RS 12
 .IP "always" 8
 .IX Item "always"
-いつでも必ず訓戒を表示する
+いつでも必ず訓戒を表示する
 .IP "never" 8
 .IX Item "never"
-訓戒を一切表示しない。
+訓戒をまったく表示しない。
 .IP "once" 8
 .IX Item "once"
 ユーザがはじめて \fBsudo\fR を実行したときだけ表示する。
@@ -1313,26 +1765,26 @@ sudoers の解釈に影響があるかもしれないので、注意してほし
 .IX Item "listpw"
 このオプションは、\fBsudo\fB を\fB\ -l\fR オプション付きで実行したとき、
 ユーザがパスワードを要求されるのは、どんな場合かを決定する。
-以下のような値が可能である。
+以下の値が可能である。
 .RS 12
 .IP "all" 8
 .IX Item "all"
-パスワードを入力しないですむためには、\fIsudoers\fR ファイルの使用中の
-ホストに対する当該ユーザのエントリのすべてに 
+パスワードを入力しないですむためには、
+\&\fIsudoers\fR ファイルの使用中のホストに対する当該ユーザのエントリのすべてに
 \&\f(CW\*(C`NOPASSWD\*(C'\fR タグが設定されていなければならない。
 .IP "always" 8
 .IX Item "always"
-ユーザは \fB\-l\fR オプションを使用する際に必ずパスワードを入力しなければ
-ならない。
+ユーザは \fB\-l\fR オプションを使用する際に
+必ずパスワードを入力しなければならない。
 .IP "any" 8
 .IX Item "any"
-パスワードを入力しないですむためには、\fIsudoers\fR ファイルの使用中の
-ホストに対する当該ユーザのエントリの少なくとも一つに 
+パスワードを入力しないですむためには、\fIsudoers\fR ファイルの
+使用中のホストに対する当該ユーザのエントリの少なくとも一つに 
 \&\f(CW\*(C`NOPASSWD\*(C'\fR タグが設定されていなければならない。
 .IP "never" 8
 .IX Item "never"
-ユーザは \fB\-l\fR オプションを使用する際にパスワードを入力する必要が
-まったくない。
+ユーザは \fB\-l\fR オプションを使用する際に
\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\82\92å\85¥å\8a\9bã\81\99ã\82\8bå¿\85è¦\81ã\81\8cã\81¾ã\81£ã\81\9fã\81\8fã\81ªã\81\84ã\80\82
 .RE
 .RS 12
 .Sp
@@ -1342,14 +1794,13 @@ sudoers の解釈に影響があるかもしれないので、注意してほし
 .RE
 .IP "logfile" 12
 .IX Item "logfile"
-\&\fBsudo\fR のログファイルのパス (syslog 経由のログファイルではない)。
-パスを指定すると、ファイルへのロギングが on になり、 '!' を頭に付けて、
+\&\fBsudo\fR 独自のログファイルのパス (syslog 経由のログファイルではない)。
+パスを指定すると、独自ファイルへのロギングが on になり、 '!' を頭に付けて、
 このオプションを否定すると、off になる。デフォルトでは、\fBsudo\fR は 
 syslog 経由でログを取る。
 .IP "mailerflags" 12
 .IX Item "mailerflags"
-メーラを起動するときに使用するフラグ。デフォルトは \fB\-t\fR に
-なっている。
+メーラを起動するときに使用するフラグ。デフォルトは \fB\-t\fR になっている。
 .IP "mailerpath" 12
 .IX Item "mailerpath"
 警告メールの送信に使うメール・プログラムのパス。デフォルトは configure 
@@ -1357,53 +1808,58 @@ syslog 経由でログを取る。
 .IP "mailfrom" 12
 .IX Item "mailfrom"
 警告メールやエラー・メールを送るとき、差出人として使用するアドレス。
-\&\fBsudo\fR ã\81\8c \f(CW\*(C`@\*(C'\fR è¨\98å\8f·ã\82\92解é\87\88ã\81\97ã\81ªã\81\84ã\82\88ã\81\86ã\81«ã\81\99ã\82\8bã\81\9fã\82\81ã\80\81
-アドレスはダブルクォート (\f(CW\*(C`"\*(C'\fR) で囲むべきである。
-デフォルトは、\fBsudo\fR を実行するユーザの名前。
+\&\fBsudo\fR が \f(CW\*(C`@\*(C'\fR 記号を解釈しないように、
+アドレスはダブルクォート (\f(CW\*(C`"\*(C'\fR) で囲むべきである。デフォルトは、
+\&\fBsudo\fR を実行するユーザの名前。
 .IP "mailto" 12
 .IX Item "mailto"
 警告メールやエラー・メールを送付する宛先のアドレス。\fBsudo\fR が 
-\&\f(CW\*(C`@\*(C'\fR è¨\98å\8f·ã\82\92解é\87\88ã\81\97ã\81ªã\81\84ã\82\88ã\81\86ã\81«ã\81\99ã\82\8bã\81\9fã\82\81ã\80\81ã\82¢ã\83\89ã\83¬ã\82¹ã\81¯
\83\80ã\83\96ã\83«ã\82¯ã\82©ã\83¼ã\83\88 (\f(CW\*(C`"\*(C'\fR) ã\81§å\9b²ã\82\80ã\81¹ã\81\8dã\81§ã\81\82ã\82\8bã\80\82ã\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81¯ root ã\81«
-なっている。
+\&\f(CW\*(C`@\*(C'\fR è¨\98å\8f·ã\82\92解é\87\88ã\81\97ã\81ªã\81\84ã\82\88ã\81\86ã\81«ã\80\81
\82¢ã\83\89ã\83¬ã\82¹ã\81¯ã\83\80ã\83\96ã\83«ã\82¯ã\82©ã\83¼ã\83\88 (\f(CW\*(C`"\*(C'\fR) ã\81§å\9b²ã\82\80ã\81¹ã\81\8dã\81§ã\81\82ã\82\8bã\80\82
\83\87ã\83\95ã\82©ã\83«ã\83\88ã\81¯ root ã\81«ã\81ªã\81£ã\81¦ã\81\84ã\82\8bã\80\82
 .IP "secure_path" 12
 .IX Item "secure_path"
 \&\fBsudo\fR から実行されるあらゆるコマンドが使用するパス。
-\&\fBsudo\fR を実行するユーザが、無難な環境変数 \f(CW\*(C`PATH\*(C'\fR を
-使っているかどうか確信が持てないなら、このオプションを使用するとよいだろう。
-もう一つの使用法は、「root のパス」と「一般ユーザのパス」を別のものに
\81\97ã\81¦ã\81\8aã\81\8dã\81\9fã\81\84å ´å\90\88ã\81 ã\80\82ã\83¦ã\83¼ã\82¶ã\81\8c \fIexempt_group\fR ã\82ªã\83\97ã\82·ã\83§ã\83³ã\81§æ\8c\87å®\9aã\81\97ã\81\9f
\82°ã\83«ã\83¼ã\83\97ã\81«å±\9eã\81\97ã\81¦ã\81\84ã\82\8bã\81¨ã\80\81ã\81\9dã\81®ã\83¦ã\83¼ã\82¶ã\81¯ \fIsecure_path\fR ã\81®å½±é\9f¿ã\82\92å\8f\97ã\81\91ã\81ªã\81\84ã\80\82
+\&\fBsudo\fR を実行するユーザが、無難な環境変数 \f(CW\*(C`PATH\*(C'\fR
+使っているかどうか確信が持てないなら、このオプションを使用するとよいだろう。
+もう一つの使用法は、「root のパス」と「一般ユーザのパス」を別のものにしておきたい場合だ。
\83¦ã\83¼ã\82¶ã\81\8c \fIexempt_group\fR ã\82ªã\83\97ã\82·ã\83§ã\83³ã\81§æ\8c\87å®\9aã\81\97ã\81\9fã\82°ã\83«ã\83¼ã\83\97ã\81«å±\9eã\81\97ã\81¦ã\81\84ã\82\8bã\81¨ã\80\81
+そのユーザは \fIsecure_path\fR の影響を受けない。
 このオプションは、デフォルトではセットされていない。
 .IP "syslog" 12
 .IX Item "syslog"
-syslog を使ってログを取っている場合の syslog のファシリティ (syslog 経由で
-ログを取らない場合は、'!' を頭に付けて、このオプションを否定する)。
-デフォルトは \f(CW\*(C`local2\*(C'\fR になっている。
+syslog を使ってログを取っている場合の syslog のファシリティ
+(syslog 経由でログを取らないなら、'!' を頭に付けて、このオプションを否定する)。
+デフォルトでは \f(CW\*(C`authpriv\*(C'\fR になっている。
+.Sp
+syslog のファシリティには、次のものが指定できる。
+\&\fBauthpriv\fR (\s-1OS\s0 が対応している場合), \fBauth\fR, \fBdaemon\fR,
+\&\fBuser\fR, \fBlocal0\fR, \fBlocal1\fR, \fBlocal2\fR, \fBlocal3\fR,
+\&\fBlocal4\fR, \fBlocal5\fR, \fBlocal6\fR, \fBlocal7\fR。
 .IP "verifypw" 12
 .IX Item "verifypw"
 このオプションは、\fBsudo\fR を \fB\-v\fR オプション付きで実行したとき、
-ユーザがパスワードを要求されるのは、どんな場合かを決定する。次のような
-値が可能である。
+ユーザがパスワードを要求されるのは、どんな場合かを決定する。
+次のような値が可能である。
 .RS 12
 .IP "all" 8
 .IX Item "all"
-パスワードを入力しないですむためには、\fIsudoers\fR ファイルの使用中の
-ホストに対する当該ユーザのエントリのすべてに 
+パスワードを入力しないですむためには、
+\&\fIsudoers\fR ファイルの使用中のホストに対する当該ユーザのエントリのすべてに
 \&\f(CW\*(C`NOPASSWD\*(C'\fR タグが設定されていなければならない。
 .IP "always" 8
 .IX Item "always"
-ユーザは \fB\-v\fR オプションを使用する際に必ずパスワードを入力しなければ
-ならない。
+ユーザは \fB\-v\fR オプションを使用する際に
+必ずパスワードを入力しなければならない。
 .IP "any" 8
 .IX Item "any"
-パスワードを入力しないですむためには、\fIsudoers\fR ファイルの使用中の
-ホストに対する当該ユーザのエントリの少なくとも一つに 
+パスワードを入力しないですむためには、\fIsudoers\fR ファイルの
+使用中のホストに対する当該ユーザのエントリの少なくとも一つに 
 \f(CW\*(C`NOPASSWD\*(C'\fR タグが設定されていなければならない。
 .IP "never" 8
 .IX Item "never"
-ユーザは \fB\-v\fR オプションを使用する際にパスワードを入力する必要が
-まったくない。
+ユーザは \fB\-v\fR オプションを使用する際に
\83\91ã\82¹ã\83¯ã\83¼ã\83\89ã\82\92å\85¥å\8a\9bã\81\99ã\82\8bå¿\85è¦\81ã\81\8cã\81¾ã\81£ã\81\9fã\81\8fã\81ªã\81\84ã\80\82
 .RE
 .RS 12
 .Sp
@@ -1417,50 +1873,46 @@ syslog を使ってログを取っている場合の syslog のファシリテ
 .IX Item "env_check"
 変数の値に \f(CW\*(C`%\*(C'\fR や \f(CW\*(C`/\*(C'\fR が含まれる場合に、
 ユーザの環境から取り除かれる環境変数。
-この機能は、出来のよくないプログラムに見られる printf 形式のフォーマットの
-脆弱性に対処するために利用できる。このオプションの引き数は、
-ダブルクォートで囲まれ、スペースで区切られたリストでもよく、
+この機能は、出来のよくないプログラムに見られる
+printf 形式のフォーマットの脆弱性に対処するために利用できる。
+このオプションの引き数は、ダブルクォートで囲まれ、
+スペースで区切られたリストでもよく、
 ダブルクォートなしの単一の値でもよい。リストは、\f(CW\*(C`=\*(C'\fR,
-\&\f(CW\*(C`+=\*(C'\fR, \f(CW\*(C`\-=\*(C'\fR, \f(CW\*(C`!\*(C'\fR 演算子を
-使って、それぞれ置き換えたり、追加したり、削除したり、無効にしたり
-することができる。\fIenv_check\fR で指定された変数は、
-\&\fIenv_reset\fR オプショの有効・無効にかかわらず、上記のチェックに
-パスすれば、環境に保存されることになる。チェックされる環境変数の
-デフォルトのリストは、root ユーザが \fBsudo\fR に \&\fI\-V\fR オプションを
-付けて実行したときに表示される。
+\&\f(CW\*(C`+=\*(C'\fR, \f(CW\*(C`\-=\*(C'\fR, \f(CW\*(C`!\*(C'\fR
+演算子を使って、それぞれ置き換えたり、追加したり、削除したり、
+無効にしたりすることができる。
+\&\fIenv_check\fR で指定された変数は、
+\&\fIenv_reset\fR オプショの有効・無効にかかわらず、
+上記のチェックにパスすれば、環境に保存されることになる。
+チェックされる環境変数のデフォルトのリストは、root ユーザが \fBsudo\fR に
+\&\fI\-V\fR オプションを付けて実行したときに表示される。
 .IP "env_delete" 16
 .IX Item "env_delete"
-\&\fIenv_reset\fR オプションが無効になっているときに、ユーザの環境から
-取り除かれる環境変数。このオプションの引き数は、ダブルクォートで囲まれ、
-スペースで区切られたリストでもよく、ダブルクォートなしの単一の値でもよい。
+\&\fIenv_reset\fR オプションが無効になっているときに、
+ユーザの環境から取り除かれる環境変数。このオプションの引き数は、
+ダブルクォートで囲まれ、スペースで区切られたリストでもよく、
+ダブルクォートなしの単一の値でもよい。
 リストは、\f(CW\*(C`=\*(C'\fR, \f(CW\*(C`+=\*(C'\fR, \f(CW\*(C`\-=\*(C'\fR,
 \&\f(CW\*(C`!\*(C'\fR 演算子を使って、それぞれ置き換えたり、追加したり、
-削除したり、無効にしたりすることができる。取り除かれる環境変数の
-デフォルトのリストは、root ユーザが \fBsudo\fR に \fI\-V\fR オプションを
-付けて実行したときに表示される。留意すべきは、オペレーティングシステムには、
-危険をもたらしかねない変数をいかなる setuid プロセス (\fBsudo\fR も
-その一つ) の環境からも取り除くことにしているものが多いということである。
+削除したり、無効にしたりすることができる。
+取り除かれる環境変数のデフォルトのリストは、root ユーザが \fBsudo\fR に
+\&\fI\-V\fR オプションを付けて実行したときに表示される。
+留意すべきは、オペレーティングシステムには、
+危険をもたらしかねない変数をいかなる setuid プロセス (\fBsudo\fR もその一つ)
+の環境からも取り除くことにしているものが多いということである。
 .IP "env_keep" 16
 .IX Item "env_keep"
-\&\fIenv_reset\fR オプションが有効になっているときでも、ユーザの環境に
-そのまま保存される環境変数。このオプションによって、\fBsudo\fR から
-生み出されるプロセスが受け取る環境を、きめ細かく制御することが可能になる。
-このオプションの引き数は、ダブルクォートで囲まれ、スペースで区切られたリ
-ストでもよく、ダブルクォートなしの単一の値でもよい。リストは、
+\&\fIenv_reset\fR オプションが有効になっているときでも、
+ユーザの環境にそのまま保存される環境変数。このオプションによって、
+\&\fBsudo\fR から生み出されるプロセスが受け取る環境を、
+きめ細かく制御することが可能になる。このオプションの引き数は、
+ダブルクォートで囲まれ、スペースで区切られたリストでもよく、
+ダブルクォートなしの単一の値でもよい。リストは、
 \&\f(CW\*(C`=\*(C'\fR, \f(CW\*(C`+=\*(C'\fR, \f(CW\*(C`\-=\*(C'\fR,
 \&\f(CW\*(C`!\*(C'\fR 演算子を使って、それぞれ置き換えたり、
-追加したり、削除したり、無効にしたりすることができる。保存される変数の
-デフォルトのリストは、root ユーザが \fBsudo\fR に \fI\-V\fR オプションを
-付けて実行したときに表示される。
-.PP
-\fIsyslog\fR\|(3) 経由でログを記録する場合、\fBsudo\fR は syslog のファ
-シリティ (facility: \fBsyslog\fR パラメータの値) として次の値を受け付
-ける。\fBauthpriv\fR (ただし、\s-1OS\s0 がサポートしているならばだが)、
-\&\fBauth\fR, \fBdaemon\fR, \fBuser\fR, \fBlocal0\fR, \fBlocal1\fR,
-\&\fBlocal2\fR, \fBlocal3\fR, \fBlocal4\fR, \fBlocal5\fR,
-\&\fBlocal6\fR, \fBlocal7\fR。syslog の優先順位 (priority) については、
-次のものに対応している。\fBalert\fR, \fBcrit\fR, \fBdebug\fR,
-\&\fBemerg\fR, \fBerr\fR, \fBinfo\fR, \fBnotice\fR, \fBwarning\fR。
+追加したり、削除したり、無効にしたりすることができる。
+保存される変数のデフォルトのリストは、root ユーザが \fBsudo\fR に
+\&\fI\-V\fR オプションを付けて実行したときに表示される。
 .SH "ファイル"
 .IX Header "FILES"
 .ie n .IP "\fI/etc/sudoers\fR" 24
@@ -1473,12 +1925,32 @@ syslog を使ってログを取っている場合の syslog のファシリテ
 .IP "\fI/etc/netgroup\fR" 24
 .IX Item "/etc/netgroup"
 ネットワークグループのリスト
+.ie n .IP "\fI/var/log/sudo-io\fR" 24
+.el .IP "\fI/var/log/sudo-io\fR" 24
+.IX Item "/var/log/sudo-io"
+入出力のログファイル (訳注: 厳密には、
+入出力のログを記録するファイル群をその下に格納するトップディレクトリ)
+.ie n .IP "\fI/var/lib/sudo\fR" 24
+.el .IP "\fI/var/lib/sudo\fR" 24
+.IX Item "/var/lib/sudo"
+\&\fIsudoers\fR セキュリティ・ポリシーが使用するタイムスタンプを格納するディレクトリ。
+.IP "\fI/etc/environment\fR" 24
+.IX Item "/etc/environment"
+Linux や \s-1AIX\s0 で \fB\-i\fR モードを使用するときの初期環境
 .SH "用例"
 .IX Header "EXAMPLES"
-以下は sudoers エントリの見本である。正直なところ、いささか
-凝りすぎの部分もある。まず最初にエイリアスを定義する。
+以下は \fIsudoers\fR エントリの見本である。
+正直なところ、いささか凝りすぎの部分もある。
+まず最初に継承を許可する環境変数をいくつか指定し、
+続いて \fIaliases\fR の定義をする。
 .PP
 .Vb 4
+\& # sudo 経由で X アプリケーションを実行するとき、HOME は
+\& # .Xauthority ファイルを探すために使用される。ほかのプログラムも
+\& # 設定ファイルを探すのに HOME を使用するので、この指定が
+\& # 権限の昇格を引き起こしかねないことに注意してほしい。
+\& Defaults env_keep += "DISPLAY HOME"
+\&
 \& # User alias の指定
 \& User_Alias     FULLTIMERS = millert, mikef, dowdy
 \& User_Alias     PARTTIMERS = bostley, jwfox, crawl
@@ -1515,18 +1987,20 @@ syslog を使ってログを取っている場合の syslog のファシリテ
 .Ve
 .PP
 以下では、コンパイル時に埋め込まれたデフォルト値のいくつかを変更している。
-\&\fBsudo\fR には \fIsyslog\fR\|(3) 経由でログを記録し、ファシリティには
-すべての場合に \fIauth\fR を使用させたい。フルタイムのスタッフには 
-\&\fBsudo\fR の訓戒を出さないようにしたい。ユーザ \fBmillert\fR は
-パスワードを入力しないでよい。コマンドを root として実行するときは、
+\&\fBsudo\fR には \fIsyslog\fR\|(3) 経由でログを記録し、
+ファシリティにはすべての場合に \fIauth\fR を使用させたい。
+フルタイムのスタッフには \fBsudo\fR の訓戒を出さないようにしたい。
+ユーザ \fBmillert\fR はパスワードを入力しないでよい。
+コマンドを root として実行するときは、
 環境変数 \f(CW\*(C`LOGNAME\*(C'\fR, \f(CW\*(C`USER\*(C'\fR,
 \&\f(CW\*(C`USERNAME\*(C'\fR を変更したくない。さらに、
-\&\fI\s-1SERVERS\s0\fR という \f(CW\*(C`Host_Alias\*(C'\fR に属する
-マシンでは、ローカルなログファイルを副本として作り、ログの記入事項は
-数年に渡って保存されるので、ログの各行に間違いなく年度が入るようにする。
-最後に \s-1PAGERS\s0 という \f(CW\*(C`Cmnd_Alias\*(C'\fR に属する
-コマンド (\fI/usr/bin/more\fR, \fI/usr/bin/pg\fR, \fI/usr/bin/less\fR) 
-については、シェル・エスケープを無効にする。
+\&\fI\s-1SERVERS\s0\fR という \f(CW\*(C`Host_Alias\*(C'\fR に属するマシンでは、
+ローカルなログファイルを副本として作り、
+ログの記入事項は数年に渡って保存されるので、
+ログの各行に間違いなく年度が入るようにする。
+最後に \s-1PAGERS\s0 という \f(CW\*(C`Cmnd_Alias\*(C'\fR に属するコマンド
+(\fI/usr/bin/more\fR, \fI/usr/bin/pg\fR, \fI/usr/bin/less\fR) については、
+シェル・エスケープを無効にする。
 .PP
 .Vb 7
 \& # built-in defaults の変更
@@ -1545,8 +2019,8 @@ syslog を使ってログを取っている場合の syslog のファシリテ
 \& %wheel         ALL = (ALL) ALL
 .Ve
 .PP
-\&\fBroot\fR と \fBwheel\fR グループのすべてのユーザには、どのホストでも
-任意のユーザとしていかなるコマンドでも実行することを認める。
+\&\fBroot\fR と \fBwheel\fR グループのすべてのユーザには、
+どのホストでも任意のユーザとしていかなるコマンドでも実行することを認める。
 .PP
 .Vb 1
 \& FULLTIMERS     ALL = NOPASSWD: ALL
@@ -1568,19 +2042,19 @@ syslog を使ってログを取っている場合の syslog のファシリテ
 \& jack           CSNETS = ALL
 .Ve
 .PP
-ユーザ \fBjack\fR は、\fI\s-1CSNETS\s0\fR というエイリアスに属するマシンで
-任意のコマンドを実行できる (すなわち、ネットワークが \f(CW128.138.243.0\fR,
-\&\f(CW128.138.204.0\fR, \f(CW128.138.242.0\fR のマシンだ)。この内、
-\&\f(CW128.138.204.0\fR にのみ class C のネットワークであることを示す
-明示的な (\s-1CIDR\s0 表記の) netmask がある。\fI\s-1CSNETS\s0\fR の
-ほかのネットワークについては、ローカルマシンの netmask がマッチングの際に
-使われることになる。
+ユーザ \fBjack\fR は、\fI\s-1CSNETS\s0\fR
+というエイリアスに属するマシンで、任意のコマンドを実行できる
+(すなわち、ネットワークが \f(CW128.138.243.0\fR, \f(CW128.138.204.0\fR,
+\&\f(CW128.138.242.0\fR のマシンだ)。この内、\f(CW128.138.204.0\fR にのみ
+class C のネットワークであることを示す明示的な (\s-1CIDR\s0 表記の)
+netmask がある。\fI\s-1CSNETS\s0\fR のほかのネットワークについては、
+ローカルマシンの netmask がマッチングの際に使われることになる。
 .PP
 .Vb 1
 \& lisa           CUNETS = ALL
 .Ve
 .PP
\83¦ã\83¼ã\82¶ \fBlisa\fR ã\81¯ã\82¨ã\82¤ã\83ªã\82¢ã\82¹ã\81\8c \fI\s-1CUNETS\s0\fR ã\81®ã\81\84ã\81\8bã\81ªã\82\8bã\83\9bã\82¹ã\83\88ã\81§ã\82\82
\83¦ã\83¼ã\82¶ \fBlisa\fR ã\81¯ã\80\81ã\82¨ã\82¤ã\83ªã\82¢ã\82¹ã\81\8c \fI\s-1CUNETS\s0\fR ã\81®ã\81\84ã\81\8bã\81ªã\82\8bã\83\9bã\82¹ã\83\88ã\81§ã\82\82ã\80\81
 任意のコマンドを実行することができる (すなわち、
 \f(CW128.138.0.0\fR という class B ネットワークのマシンだ)。
 .PP
@@ -1589,120 +2063,118 @@ syslog を使ってログを取っている場合の syslog のファシリテ
 \&                sudoedit /etc/printcap, /usr/oper/bin/
 .Ve
 .PP
-ユーザ \fBoperator\fR は、用途が簡単な保守管理に限定されたコマンドを
-実行できる。この場合それは、バックアップしたり、プロセスを kill したり
-印刷システムを操作したり、システムをシャットダウンしたりするのに
-関係するコマンドと、\fI/usr/oper/bin/\fR ディレクトリにある任意のコマンド
-である。
+ユーザ \fBoperator\fR は、
+用途が簡単な保守管理に限定されたコマンドを実行できる。この場合それは
+バックアップしたり、プロセスを kill したり、印刷システムを操作したり、
+システムをシャットダウンしたりするのに関係するコマンドと、
+\&\fI/usr/oper/bin/\fR ディレクトリにある任意のコマンドである。
 .PP
 .Vb 1
 \& joe            ALL = /usr/bin/su operator
 .Ve
 .PP
-ユーザ \fBjoe\fR は \fIsu\fR\|(1) を使って operator になることしか
-できない。
+ユーザ \fBjoe\fR は、\fIsu\fR\|(1) を使って operator になることしかできない。
 .PP
 .Vb 1
 \& %opers         ALL = (: ADMINGRP) /usr/sbin/
 .Ve
 .PP
-\&\fBopers\fR グループのユーザは、\fI/usr/sbin/\fR にあるコマンドを
+\&\fBopers\fR グループのユーザは、\fI/usr/sbin/\fR にあるコマンドを
 自分自身の資格で、
-\&\f(CW\*(C`Runas_Alias\*(C'\fR \fI\s-1ADMINGRP\s0\fR に属する
-任意のグループ (すなわち、\fBadm\fR か \fBoper\fR グループ) として
-実行できる。(訳注: 実のところ、sudo-1.7.2p1 では、
-\&\fI/etc/sudoers\fR で変身可能グループに \f(CW\*(C`Runas_Alias\*(C'\fR を
-まだ指定できないようだ。今のところ、この例で言うなら、\fI\s-1ADMINGRP\s0\fR
-ではなく、\fBadm\fR や \fBoper\fR を直接指定しなければならない。)
+\&\f(CW\*(C`Runas_Alias\*(C'\fR \fI\s-1ADMINGRP\s0\fR
+に属する任意のグループ (すなわち、\fBadm\fR か \fBoper\fR グループ)
+として実行できる。
 .PP
 .Vb 1
 \& pete           HPPA = /usr/bin/passwd [A\-Za\-z]*, !/usr/bin/passwd root
 .Ve
 .PP
-ユーザ \fBpete\fR は \fI\s-1HPPA\s0\fR に属するマシンで root 以外なら
-誰のパスワードでも変更することを許されている。上記の指定は、
-\&\fIpasswd\fR\|(1) がコマンドラインで複数のユーザ名を受け付けないこと
-前提としている点に注意してほしい。
+ユーザ \fBpete\fR は、\fI\s-1HPPA\s0\fR に属するマシンで
+root 以外なら誰のパスワードでも変更することを許されている。
+上記の指定は、\fIpasswd\fR\|(1) がコマンドラインで複数のユーザ名
\8f\97ã\81\91ä»\98ã\81\91ã\81ªã\81\84ã\81\93ã\81¨ã\82\92å\89\8dæ\8f\90ã\81¨ã\81\97ã\81¦ã\81\84ã\82\8bç\82¹ã\81«æ³¨æ\84\8fã\81\97ã\81¦ã\81»ã\81\97ã\81\84ã\80\82
 .PP
 .Vb 1
 \& bob            SPARC = (OP) ALL : SGI = (OP) ALL
 .Ve
 .PP
-ユーザ \fBbob\fR は \fI\s-1SPARC\s0\fR や \fI\s-1SGI\s0\fR に属する
-マシンで \f(CW\*(C`Runas_Alias\*(C'\fR \fI\s-1OP\s0\fR に登録されている
-任意のユーザとして (\fBroot\fR と \fBoperator\fR である) どんなコマンドでも
-実行できる。
+ユーザ \fBbob\fR は、\fI\s-1SPARC\s0\fR や \fI\s-1SGI\s0\fR に属するマシンで
+\&\f(CW\*(C`Runas_Alias\*(C'\fR \fI\s-1OP\s0\fR
+に登録されている任意のユーザとして (\fBroot\fR と \fBoperator\fR である)
+どんなコマンドでも実行できる。
 .PP
 .Vb 1
 \& jim            +biglab = ALL
 .Ve
 .PP
-ユーザ \fBjim\fR は \fIbiglab\fR ネットグループに属するマシンで
-どんなコマンドでも実行できる。\fBsudo\fR は、\*(L"biglab\*(R" に '+' の
-接頭辞が付いているので、それをネットグループだと認識する。
+ユーザ \fBjim\fR は、\fIbiglab\fR ネットグループに属するマシンで、
+どんなコマンドでも実行できる。
+\&\fBsudo\fR は、\*(L"biglab\*(R" に '+' の接頭辞が付いているので、
+それをネットグループだと認識する。
 .PP
 .Vb 1
 \& +secretaries   ALL = PRINTING, /usr/bin/adduser, /usr/bin/rmuser
 .Ve
 .PP
-\&\fBsecretaries\fR ネットグループのユーザは、ユーザの追加や削除は
\82\82ã\81¡ã\82\8dã\82\93ã\80\81ã\83\97ã\83ªã\83³ã\82¿ã\81®ç®¡ç\90\86ã\81«ã\82\82å\8d\94å\8a\9bã\81\99ã\82\8bå¿\85è¦\81ã\81\8cã\81\82ã\82\8bã\80\82ã\81\9dã\81\93ã\81§ã\80\81ã\81\99ã\81¹ã\81¦ã\81®ã\83\9eã\82·ã\83³ã\81§
-その種のコマンドの実行を認められている。
+\&\fBsecretaries\fR ネットグループのユーザは、ユーザの追加や削除はもちろん、
\83\97ã\83ªã\83³ã\82¿ã\81®ç®¡ç\90\86ã\81«ã\82\82å\8d\94å\8a\9bã\81\99ã\82\8bå¿\85è¦\81ã\81\8cã\81\82ã\82\8bã\80\82
\81\9dã\81\93ã\81§ã\80\81ã\81\99ã\81¹ã\81¦ã\81®ã\83\9eã\82·ã\83³ã\81§ã\81\9dã\81®ç¨®ã\81®ã\82³ã\83\9eã\83³ã\83\89ã\81®å®\9fè¡\8cã\82\92èª\8dã\82\81ã\82\89ã\82\8cã\81¦ã\81\84ã\82\8bã\80\82
 .PP
 .Vb 1
 \& fred           ALL = (DB) NOPASSWD: ALL
 .Ve
 .PP
-ユーザ \fBfred\fR は \f(CW\*(C`Runas_Alias\*(C'\fR \fI\s-1DB\s0\fR の
-任意のユーザとして (\fBoracle\fR か \fBsybase\fR だ) パスワードを
-入力しないでもコマンドを実行することができる。
+ユーザ \fBfred\fR は、\f(CW\*(C`Runas_Alias\*(C'\fR \fI\s-1DB\s0\fR
+の任意のユーザとして (\fBoracle\fR か \fBsybase\fR だ)
+パスワードを入力しないでもコマンドを実行することができる。
 .PP
 .Vb 1
 \& john           ALPHA = /usr/bin/su [!\-]*, !/usr/bin/su *root*
 .Ve
 .PP
-ユーザ \fBjohn\fR は \fI\s-1ALPHA\s0\fR に属するマシンで \fIsu\fR\|(1) を
-使って root 以外の誰にでもなることができるが、su にオプションを
-指定することは許されていない。
+ユーザ \fBjohn\fR は、\fI\s-1ALPHA\s0\fR に属するマシンで \fIsu\fR\|(1)
+を使って root 以外の誰にでもなることができるが、
+su にオプションを指定することは許されていない。
 .PP
 .Vb 1
 \& jen            ALL, !SERVERS = ALL
 .Ve
 .PP
-ユーザ \fBjen\fR は \f(CW\*(C`Host_Alias\*(C'\fR \fI\s-1SERVERS\s0\fR に
-属するマシン (master, mail, www, ns) を除くいかなるマシンでも
+ユーザ \fBjen\fR は、\f(CW\*(C`Host_Alias\*(C'\fR \fI\s-1SERVERS\s0\fR
+に属するマシン (master, mail, www, ns) を除くいかなるマシンでも、
 任意のコマンドを実行できる。
 .PP
 .Vb 1
 \& jill           SERVERS = /usr/bin/, !SU, !SHELLS
 .Ve
 .PP
-\&\fBjill\fR は \f(CW\*(C`Host_Alias\*(C'\fR \fI\s-1SERVERS\s0\fR の
-いかなるマシンでも \fI/usr/bin/\fR ディレクトリにある任意のコマンドを
-実行できるが、\fI\s-1SU\s0\fR や \fI\s-1SHELLS\s0\fR という
+\&\fBjill\fR は、\f(CW\*(C`Host_Alias\*(C'\fR \fI\s-1SERVERS\s0\fR のいかなるマシンでも
+\&\fI/usr/bin/\fR ディレクトリにある任意のコマンドを実行できるが、
+\&\fI\s-1SU\s0\fR や \fI\s-1SHELLS\s0\fR という
 \&\f(CW\*(C`Cmnd_Aliases\*(C'\fR に属するコマンドは実行できない。
 .PP
 .Vb 1
 \& steve          CSNETS = (operator) /usr/local/op_commands/
 .Ve
 .PP
-ユーザ \fBsteve\fR はディレクトリ \fI/usr/local/op_commands/\fR にある
-任意のコマンドを実行できるが、operator というユーザとして実行できるだけだ。
+ユーザ \fBsteve\fR は、ディレクトリ \fI/usr/local/op_commands/\fR
+にある任意のコマンドを実行できるが、
+operator というユーザとして実行できるだけだ。
 .PP
 .Vb 1
 \& matt           valkyrie = KILL
 .Ve
 .PP
-\&\fBmatt\fR も自分用のワークステーション valkyrie で
-ハングしたプロセスの kill ぐらいはできる必要がある。
+\&\fBmatt\fR も、自分用のワークステーション valkyrie で、ハングしたプロセスの
+kill ぐらいはできる必要がある。
 .PP
 .Vb 1
 \& WEBMASTERS     www = (www) ALL, (root) /usr/bin/su www
 .Ve
 .PP
-ホスト www で \f(CW\*(C`User_Alias\*(C'\fR \fI\s-1WEBMASTERS\s0\fR に
-属するいかなるユーザも (will, wendy, wim だ)、ユーザ www (web ページの
-所有者) として任意のコマンドを実行することができる。
+ホスト www で \f(CW\*(C`User_Alias\*(C'\fR \fI\s-1WEBMASTERS\s0\fR
+に属するいかなるユーザも (will, wendy, wim だ)、ユーザ www
+(web ページの所有者) として任意のコマンドを実行することができる。
 単に \fIsu\fR\|(1) で www になってもよい。
 .PP
 .Vb 2
@@ -1710,69 +2182,95 @@ syslog を使ってログを取っている場合の syslog のファシリテ
 \&                /sbin/mount \-o nosuid\e,nodev /dev/cd0a /CDROM
 .Ve
 .PP
-いかなるユーザも \f(CW\*(C`Host_Alias\*(C'\fR が \s-1CDROM\s0 の
-マシンで (orion, perseus, hercules)、パスワードを入力することなく 
-CD-ROM をマウント、アンマウントできる。上記のコマンドを打ち込むのは
-ユーザにとっていささか面倒なので、シェルスクリプトとして
-カプセル化してしまうのがよいだろう。
+いかなるユーザも、\f(CW\*(C`Host_Alias\*(C'\fR が \s-1CDROM\s0 のマシンで
+(orion, perseus, hercules)、パスワードを入力することなく 
+CD-ROM をマウント、アンマウントできる。
+上記のコマンドを打ち込むのはユーザにとっていささか面倒なので、
\82·ã\82§ã\83«ã\82¹ã\82¯ã\83ªã\83\97ã\83\88ã\81¨ã\81\97ã\81¦ã\82«ã\83\97ã\82»ã\83«å\8c\96ã\81\97ã\81¦ã\81\97ã\81¾ã\81\86ã\81®ã\81\8cã\82\88ã\81\84ã\81 ã\82\8dã\81\86ã\80\82
 .IP "[\fB訳注\fR]:" 8
 .IX Item "footnote2"
-当然と言えば当然だが、sudo は自ホストの /etc/sudoers しか読まない。
-そこで、こういうことになる。AAA というホストに aaa というユーザが
-いるとしよう。ホスト AAA の /etc/sudoers に「ホスト BBB でユーザ aaa は
+当然と言えば当然だが、sudo は自ホストの /etc/sudoers しか読まないし、
+制御の及ぶ範囲も自ホストだけである。そこで、こういうことになる。
+AAA というホストに aaa というユーザがいるとしよう。
+ホスト AAA の /etc/sudoers に「ホスト BBB でユーザ aaa は
 sudo を介して /bin/ls を実行できる」という記述があったとしても、
\83¦ã\83¼ã\82¶ aaa ã\81\8cã\83\9bã\82¹ã\83\88 AAA ã\81\8bã\82\89 telnet ã\82\84 ssh ã\82\92使ã\81£ã\81\9fã\81¨ã\81\8dã\80\81ã\83\9bã\82¹ã\83\88 BBB ä¸\8aã\81§
-sudo 経由で ls を実行できるわけではない。それができるためには、
-ホスト BBB の /etc/sudoers に「BBB でユーザ aaa は sudo を介して /bin/ls を
-実行できる」という記述がなければならないのだ。ホスト BBB で実行する
-sudo は BBB の sudo であり、BBB の sudo は BBB の /etc/sudoers しか
-読まないのだから。
\83¦ã\83¼ã\82¶ aaa ã\81\8cã\83\9bã\82¹ã\83\88 AAA ã\81\8bã\82\89 telnet ã\82\84 ssh ã\81§ã\83\9bã\82¹ã\83\88 BBB ã\81«ã\83­ã\82°ã\82¤ã\83³ã\81\97ã\80\81
+BBB 上で sudo を使って ls を実行できるわけではない。それができるためには、
+ホスト BBB の /etc/sudoers に「BBB でユーザ aaa は sudo を介して
+/bin/ls を実行できる」という記述がなければならないのだ。
+ホスト BBB で実行する sudo は BBB の sudo であり、
+BBB の sudo は BBB の /etc/sudoers しか読まないのだから。
 .Sp
-それでは、何故、上記の「用例」で自ホスト以外の設定が行われて
-いるのか? そもそも、sudoers の書式で自ホスト以外のホストを
-指定できるのは、何故なのか? それは、管理しているサイトの
-すべてのホストの設定を記した sudoers ファイルを一つ作って、それを
-すべてのホストにコピーして使う、そういった使い方を想定しているからだ。
+それでは、何故、上記の「用例」で自ホスト以外の設定が行われているのか?
+そもそも、sudoers の書式で自ホスト以外のホストを指定できるのは、
+何故なのか? ホストに ALL を指定できるのは、何故なのか?
+それは、管理しているサイトのすべてのホストの設定を記した
+sudoers ファイルを一つ作って、それをすべてのホストにコピーして使う、
+そういった使い方を想定しているからだ。
 もし、サイト中のすべてのホストの設定を一ヶ所にまとめて置き、
-それをすべてのホストに共有させたいのなら (すなわち、sudo の設定の
-集中管理がしたいのなら)、LDAP の採用を考えるべきである。
+それをすべてのホストに共有させたいのなら
+(すなわち、sudo の設定の集中管理がしたいのなら)、
+LDAP の採用を考えるべきである。
 .SH "セキュリティに関する注意点"
 .IX Header "SECURITY NOTES"
-一般的に言って、演算子 '!' を使用して \f(CW\*(C`ALL\*(C'\fR から
-コマンドの「引き算」をすることは、あまり効果がない。ユーザは実行したい
-コマンドを名前を変えてコピーし、それからそれを実行するするといった
-ちょっとした手段で、裏をかくことができるからだ。たとえば、
+一般的に言って、演算子 '!' を使用して \f(CW\*(C`ALL\*(C'\fR
+からコマンドの「引き算」をするのは、あまり有力な方法ではない。
+ユーザは実行したいコマンドを名前を変えてコピーし、
+それからそれを実行するといった簡単な方法で、裏をかくことができるからだ。
+たとえば、
 .PP
 .Vb 1
 \&    bill        ALL = ALL, !SU, !SHELLS
 .Ve
 .PP
-という行は、\fI\s-1SU\s0\fR や \fI\s-1SHELLS\s0\fR に列記されている
-コマンドの \fBbill\fR による実行を本当に阻止することにはならない。
-なぜなら、\fBbill\fR としては、そうしたコマンドを単に名前を変えて
-コピーすればよいし、エディタやほかのプログラムからシェル・エスケープを
-利用することもできるからだ。だから、この種の制限はやった方がまし程度に
-考えておくべきだ (そして、しっかりした運用方針によって制限の実効力を
-上げるべきである)。
+という行は、\fI\s-1SU\s0\fR や \fI\s-1SHELLS\s0\fR
+に列記されているコマンドの \fBbill\fR による実行を、
+本当に阻止することにはならない。なぜなら、
+\&\fBbill\fR としては、そうしたコマンドを単に名前を変えてコピーすればよいし、
+エディタやほかのプログラムからシェル・エスケープを利用することもできるからだ。
+だから、この種の制限はやった方がまし程度に考えておくべきである
+(そして、しっかりした運用方針によって制限の実効力を上げるべきだ)。
+.PP
+さらに言うと、\fIfast_glob\fR オプションが使われている場合、
+パス名に glob 文字 (ワイルドカードとも言う)
+が含まれるコマンドを間違いなく無効にすることは不可能である。
+その理由は、C ライブラリの
+\&\fIfnmatch\fR\|(3) 関数が相対パスを解決することができないからだ。
+このことは、権限を許可するルールにとっては、
+たいていの場合不便なだけにすぎないが、権限を減らしたり、
+取り消したりするルールにとっては、セキュリティ上の問題をもたらしかねない。
+.PP
+たとえば、\fIsudoers\fR に以下のエントリがあるとしよう。 
+.PP
+.Vb 2
+\& john   ALL = /usr/bin/passwd [a\-zA\-Z0\-9]*, /usr/bin/chsh [a\-zA\-Z0\-9]*,
+\&      /usr/bin/chfn [a\-zA\-Z0\-9]*, !/usr/bin/* root
+.Ve
+.PP
+\&\fIfast_glob\fR が有効になっていると、\fBjohn\fR はこれでも
+\&\f(CW\*(C`/usr/bin/passwd root\*(C'\fR を実行できてしまう。
+\&\fI/usr/bin\fR にカレント・ディレクトリを移動して、
+\&\f(CW\*(C`./passwd root\*(C'\fR と打ち込めばよいのだ。 
 .SH "シェル・エスケープを防止する"
 .IX Header "PREVENTING SHELL ESCAPES"
-\&\fBsudo\fR ã\81\8cã\81\82ã\82\8bã\83\97ã\83­ã\82°ã\83©ã\83 ã\82\92å®\9fè¡\8cã\81\97ã\81¦ã\81\97ã\81¾ã\81\86ã\81¨、そのプログラムは、
+\&\fBsudo\fR ã\81\8cã\81\82ã\82\8bã\83\97ã\83­ã\82°ã\83©ã\83 ã\82\92å®\9fè¡\8cã\81\97ã\81\9få ´å\90\88、そのプログラムは、
 ほかのプログラムの実行も含めて、何でも自由に好きなことができる。
-このことがセキュリティ上の問題になりかねないのは、プログラムが
-シェル・エスケープを許しているのは珍しいことではなく、そのために
-ユーザが \fBsudo\fR のアクセス制御やロギングをすり抜けることが
-可能になるからだ。よく使うプログラムでシェル・エスケープを
-許しているものには、次のようなものがある。
-(当然ながら) シェル、エディタ、ページャ、メーラ、ターミナル。
+このことがセキュリティ上の問題になりかねないのは、
+プログラムがシェル・エスケープを許しているのは珍しいことではなく、
+そのために、ユーザが \fBsudo\fR
+のアクセス制御やロギングをすり抜けることが可能になるからだ。
+よく使うプログラムでシェル・エスケープを許しているものには、
+次のようなものがある。
+(当然ながら) シェル、エディタ、ページャ、メーラ、ターミナルなど。
 .PP
 この問題に対処するには、基本的に二つの方法がある。
 .IP "制限" 10
 .IX Item "restrict"
-ユーザに任意のコマンドの実行を許すようなコマンドに対して、ユーザが
-アクセスできないようにする。エディタの場合は、制限モードと称して、
+ユーザに任意のコマンドの実行を許すようなコマンドに対して、
\83¦ã\83¼ã\82¶ã\81\8cã\82¢ã\82¯ã\82»ã\82¹ã\81§ã\81\8dã\81ªã\81\84ã\82\88ã\81\86ã\81«ã\81\99ã\82\8bã\80\82ã\82¨ã\83\87ã\82£ã\82¿ã\81®å ´å\90\88ã\81¯ã\80\81å\88¶é\99\90ã\83¢ã\83¼ã\83\89ã\81¨ç§°ã\81\97ã\81¦ã\80\81
 シェル・エスケープが使えないモードを持っているものも多い。
\82\82ã\81£ã\81¨ã\82\82、\fBsudo\fR 経由でエディタを使うのなら、
-\&\fBsudoedit\fR を使用する方がよりすぐれた対策である。
\81¨ã\81¯è¨\80ã\81\88、\fBsudo\fR 経由でエディタを使うのなら、
+\&\fBsudoedit\fR を使用する方がよりれた対策である。
 シェル・エスケープを提供するプログラムはたくさんあるので、
 それを提供しないプログラムのみを使用するようにユーザを制限するのは、
 たいてい実現不可能である。
@@ -1782,40 +2280,29 @@ sudo は BBB の sudo であり、BBB の sudo は BBB の /etc/sudoers しか
 \&\f(CW\*(C`LD_PRELOAD\*(C'\fR) で別の共有ライブラリを指定することによって、
 デフォルトのライブラリ関数を置き換える能力がある。
 そういったシステムでは、\fBsudo\fR の \fInoexec\fR 機能を使えば、
-\&\fBsudo\fR から実行されるプログラムが、何かほかのプログラムを実行するのを
-防ぐことができる。とは言え、これが当てはまるのは、動的にリンクされた
-ネイティブなプログラムだけだということに気を付けてほしい。
-静的にリンクされたプログラムや、バイナリ・エミュレーションのもとで
-動くほかの OS のプログラムには効果がない。
+\&\fBsudo\fR から実行されるプログラムが、
+何かほかのプログラムを実行するのを防ぐことができる。
+とは言え、これが当てはまるのは、
+動的にリンクされたネイティブなプログラムだけだということに留意してほしい。
+静的にリンクされたプログラムや、
+バイナリ・エミュレーションのもとで動くほかの OS のプログラムには効果がない。
 .Sp
-\&\fBsudo\fR が \fInoexec\fR に対応しているかどうかを知りたかったら、
-root ユーザになって次のように実行してみればよい。
+\&\fInoexec\fR 機能は SunOS, Solaris, *BSD, Linux, \s-1IRIX\s0, 
+Tru64 \s-1UNIX\s0, MacOS X, HP-UX 11.x、それに 5.3 以上の \s-1AIX\s0
+で使えることがわかっている。環境変数 \f(CW\*(C`LD_PRELOAD\*(C'\fR
+をサポートしているたいていのオペレーティングシステムが、
+この機能に対応しているはずだ。
+使用しているオペレーティングシステムのマニュアルページを調べて、
+ダイナミック・リンカについて (通例 ld.so, ld.so.1, dyld, dld.sl, rld,
+loader といった名前になっている) \f(CW\*(C`LD_PRELOAD\*(C'\fR
+がサポートされているかどうか確認していただきたい。
 .Sp
-.Vb 1
-\&    sudo \-V | grep "dummy exec"
-.Ve
-.Sp
-その出力にこんなふうに始まる行があれば、
-.Sp
-.Vb 1
-\&    File containing dummy exec functions:
-.Ve
-.Sp
-そのときは、たぶん \fBsudo\fR が標準ライブラリにある exec ファミリーの関数を、
-単にエラーを返すだけの自分自身の関数で置き換えられるということだ。
-残念ながら、\fInoexec\fR が有効かどうか、コンパイル時に確かめる
-絶対確実な方法はない。\fInoexec\fR は SunOS, Solaris, *BSD, Linux,
-\&\s-1IRIX\s0, Tru64 \s-1UNIX\s0, MacOS X, HP-UX 11.x で使えるはずだ。
-\&\s-1AIX\s0 と UnixWare では使えないことがわかっている。環境変数 
-\&\f(CW\*(C`LD_PRELOAD\*(C'\fR をサポートしているたいていの OS なら、
-\&\fInoexec\fR が使えると思う。使用しているオペレーティングシステムの
-マニュアルページを調べて、ダイナミック・リンカについて (通例 ld.so,
-ld.so.1, dyld, dld.sl, rld, loader といった名前になっている) 
-\&\f(CW\*(C`LD_PRELOAD\*(C'\fR がサポートされているかどうか確認してほしい。
+Solaris 10 以上の場合、\fInoexec\fR は 環境変数 \f(CW\*(C`LD_PRELOAD\*(C'\fR
+ではなく、Solaris 特権を使用している。
 .Sp
 あるコマンドに対して \fInoexec\fR を有効にするには、
-上記「ユーザの設定」セクションで述べたように、\f(CW\*(C`NOEXEC\*(C'\fR タグを
-使用する。そのときの例を再掲しよう。
+上記「ユーザ設定」セクションで述べたように、
+\&\f(CW\*(C`NOEXEC\*(C'\fR タグを使用する。そのときの例を再掲しよう。
 .Sp
 .Vb 1
 \& aaron  shanty = NOEXEC: /usr/bin/more, /usr/bin/vi
@@ -1823,34 +2310,165 @@ ld.so.1, dyld, dld.sl, rld, loader といった名前になっている)
 .Sp
 この例では、ユーザ \fBaaron\fR 対して、\fInoexec\fR を有効にした上で、
 \&\fI/usr/bin/more\fR と \fI/usr/bin/vi\fR の実行を許可している。
-このようにすれば、この二つのコマンドから (シェルのような) ほかのコマンドを
-実行することができなくなるわけだ。使用しているシステムが \fInoexec\fR に
-対応する能力があるかどうか、よくわからない場合は、取りあえず 
-\&\fInoexec\fR を試して、効果があるかどうか確かめてみればよい。それなら
-いつだってできるはずだ。
-.PP
-注意してほしいが、シェル・エスケープの禁止は万能薬ではない。ルートの権限で
-動いているプログラムには、ほかにも、危険性のあるさまざまな作業 (ファイルの
-中身を入れ替えるとか、上書きするとか) が可能であり、思いがけずに
-権限を拡大してしまうこともありえるのだ。特にエディタについて言うと、
+このようにすれば、この二つのコマンドから
+(シェルのような) ほかのコマンドを実行することができなくなるわけだ。
+使用しているシステムが \fInoexec\fR に対応する能力があるかどうか
+よくわからない場合でも、取りあえず試してみることなら、いつだってできる。
+\&\fInoexec\fR を有効にして、
+シェル・エスケープが可能かどうか確かめてみればよいのだ。
+.PP
+注意してほしいが、シェル・エスケープの禁止は万能薬ではない。
+ルートの権限で動いているプログラムには、ほかにも、危険性のあるさまざまな作業
+(ファイルの中身を変更するとか、上書きしてしまうとか) が可能であり、
+思いがけずに権限を拡大してしまうこともありえるのだ。特にエディタについて言うと、
 ユーザには \fBsudoedit\fR を実行する許可を与えるのが、より安全な方法である。
+.SH "デバッグ・フラグ (sudo-1.8.4 の新機能)"
+.IX Header "DEBUG FLAGS"
+バージョン 1.8.4 以上の \fIsudoers\fR プラグインは、
+デバッグのための枠組みに対応しており、
+問題が発生したとき、プラグインの内部で何が起きているかを突き止めるために、
+それを利用することができる。
+その設定は、\fIsudo\fR\|(8) のマニュアルでも説明したように、
+\&\fI/etc/sudo.conf\fR ファイルで行うことが可能だ。
+.PP
+\&\fIsudoers\fR プラグインは、
+\&\fBsudo\fR そのものと同じデバッグ・フラグの書式を使用する。
+すなわち、\fIsubsystem\fR@\fIpriority\fR である。
+.PP
+\&\fIsudoers\fR が使用する priority (重大度) を深刻なものから挙げると、
+\fIcrit\fR, \fIerr\fR, \fIwarn\fR, \fInotice\fR, \fIdiag\fR, \fIinfo\fR,
+\&\fItrace\fR, \fIdebug\fR である。ある priority を指定すると、
+それより深刻なすべての priority も併せて指定したことになる。
+たとえば、\fInotice\fR という priority を指定すれば、
+\&\fInotice\fR レベル以上のデバッグメッセージがログに記録されるわけである。
+.PP
+\&\fIsudoers\fR では以下のサブシステムが使用できる。
+.IP "\fIalias\fR" 10
+.IX Item "alias"
+\&\f(CW\*(C`User_Alias\*(C'\fR, \f(CW\*(C`Runas_Alias\*(C'\fR,
+\&\f(CW\*(C`Host_Alias\*(C'\fR, \f(CW\*(C`Cmnd_Alias\*(C'\fR の処理
+.IP "\fIall\fR" 10
+.IX Item "all"
+あらゆるサブシステムにマッチする
+.IP "\fIaudit\fR" 10
+.IX Item "audit"
+Solaris \s-1BSM\s0 (Basic Security Module) と Linux の監査コード
+.IP "\fIauth\fR" 10
+.IX Item "auth"
+ユーザの認証
+.IP "\fIdefaults\fR" 10
+.IX Item "defaults"
+\&\fIsudoers\fR の \fIDefaults\fR 設定
+.IP "\fIenv\fR" 10
+.IX Item "env"
+環境の取扱い
+.IP "\fIldap\fR" 10
+.IX Item "ldap"
+LDAP を使用する sudoers
+.IP "\fIlogging\fR" 10
+.IX Item "logging"
+ロギングのサポート
+.IP "\fImatch\fR" 10
+.IX Item "match"
+\&\fIsudoers\fR におけるユーザ、グループ、ホスト、
+ネットグループのマッチング
+.IP "\fInetif\fR" 10
+.IX Item "netif"
+ネットワークインターフェースの取扱い
+.IP "\fInss\fR" 10
+.IX Item "nss"
+\&\fIsudoers\fR におけるネームサービス・スイッチの取扱い
+.IP "\fIparser\fR" 10
+.IX Item "parser"
+\&\fIsudoers\fR ファイルの解析
+.IP "\fIperms\fR" 10
+.IX Item "perms"
+パーミッションの設定
+.IP "\fIplugin\fR" 10
+.IX Item "plugin"
+プラグインにとって \fImain\fR に相当する
+.IP "\fIpty\fR" 10
+.IX Item "pty"
+擬似 tty に関連したコード
+.IP "\fIrbtree\fR" 10
+.IX Item "rbtree"
+赤黒木 (redblack tree) の内部情報
+.IP "\fIutil\fR" 10
+.IX Item "util"
+ユーティリティ関数群
+.SH "セキュリティに関する注意点"
+.IX Header "SECURITY NOTES"
+\&\fIsudoers\fR はタイムスタンプ・ディレクトリ (デフォルトでは
+\&\fI/var/lib/sudo\fR) の所有者を調べて、所有者が root でなかったり、
+root 以外のユーザにも書き込み可能だったりする場合には、
+そのディレクトリの内容を無視する。root 以外のユーザでも \fIchown\fR\|(2)
+を利用して、ファイルの所有者を変えられるシステムでは、
+タイムスタンプ・ディレクトリが (たとえば、\fI/tmp\fR といった)
+誰にでも書き込めるディレクトリにあると、一般ユーザが、\fBsudo\fR
+を実行する前にタイムスタンプ・ディレクトリを作成することが可能になる。もっとも、
+\&\fIsudoers\fR はタイムスタンプ・ディレクトリとその中身の、
+所有者とモードをチェックするので、起こりえる唯一の被害は、
+ファイルを「隠匿」する目的でそのディレクトリに入れておかれることぐらいだ。
+これはあまりありそうにないことである。
+なぜなら、タイムスタンプ・ディレクトリが root の所有になり、
+ほかのユーザによるアクセスが禁じられてしまうと、
+ファイルをそこに置いたユーザは、それを回収できなくなるからだ。
+.PP
+\&\fIsudoers\fR はあまりにも未来に設定されたタイムスタンプを認めない。
+タイムスタンプが「現在時 + 2 * \f(CW\*(C`TIMEOUT\*(C'\fR」
+より新しい日時だった場合、そのタイムスタンプは無視され、
+\&\fBsudo\fR がログに記録して、警告を発する。このようになっているのは、
+一般ユーザがファイルの所有者を変えられるシステムで、
+タイムスタンプ・ディレクトリが誰にでも書き込めるディレクトリにある場合に、
+ユーザがいい加減な日付を付けて勝手に自分のタイムスタンプを作れないようにするためである。
+.PP
+ブートタイムを参照できるシステムでは、
+タイムスタンプがマシンがブートするよりも前の日時になっている場合、
+\&\fIsudoers\fR はそれを無視する。
+.PP
+タイムスタンプ・ファイルはファイルシステム中に作られるので、
+ユーザのログイン・セッションが終わっても、残っている。
+そのため、次のようなことが起こりえる。ユーザがログインし、
+認証してから \fBsudo\fR を使ってコマンドを実行して、ログアウトする。
+再びログインして、認証なしで \fBsudo\fR を実行する。
+タイムスタンプ・ファイルの内容更新日時 (modification time) が
+\&\f(CW\*(C`5\*(C'\fR 分以内であれば
+(あるいは、\fIsudoers\fR で設定されたタイムアウト時間以内であれば)、
+そういうことが可能になってしまうのだ。
+\&\fItty_tickets\fR オプションが有効になっている場合、
+タイムスタンプは tty ごとに別々に作られるが、
+それでも、ユーザセッションが終わった後まで生き残ってしまう。devpts
+ファイルシステムを使用している Linux や、devices ファイルシステムを持つ Solaris、
+それに、デバイスを作成するごとに、その inode 番号をひたすら増やしていく
+devfs ファイルシステムを利用しているシステム (たとえば、Mac \s-1OS\s0 X) では、
+tty ごとのタイムスタンプ・ファイルがいつ用済みになるかを判定することができるので、
+\&\fIsudoers\fR はそうしたタイムスタンプ・ファイルを無視することになる。
+だが、システムの管理者はこの機能を当てにしない方がよい。
+どのシステムでも利用できるとはかぎらないからだ。
+.PP
+もし ユーザに許可するコマンドが \f(CW\*(C`ALL\*(C'\fR になっているならば、
+ユーザが自分でプログラムを作って
+(あるいは、シェルを自分専用に別の名前でコピーして)、
+ルート・シェルを獲得するのを防ぐことはできない。
+ユーザ設定でどんな項目に '!'  を付けようとも防止不可能である。
 .SH "関連項目"
 .IX Header "SEE ALSO"
-\&\fIrsh\fR\|(1), \fIsu\fR\|(1), \fIfnmatch\fR\|(3), \fIglob\fR\|(3), \fIsudo\fR\|(8), \fIvisudo\fR\|(8)
+\&\fIrsh\fR\|(1), \fIsu\fR\|(1), \fIfnmatch\fR\|(3), \fIglob\fR\|(3), \fImktemp\fR\|(3), \fIstrftime\fR\|(3),
+\&\fIsudoers.ldap\fR\|(5), \fIsudo_plugin\fR\|(8), \fIsudo\fR\|(8), \fIvisudo\fR\|(8)
 .SH "警告"
 .IX Header "CAVEATS"
-\&\fIsudoers\fR ファイルの編集には、\fB必ず\fR \fBvisudo\fR コマンドを
-使うべきだ。そうすれば、\fBvisudo\fR がファイルをロックし、文法のチェッ
\82¯ã\82\92ã\82\84ã\81£ã\81¦ã\81\8fã\82\8cã\82\8bã\80\82\fIsudoers\fR ã\83\95ã\82¡ã\82¤ã\83«ã\81«æ\96\87æ³\95ç\9a\84ã\81ªé\96\93é\81\95ã\81\84ã\81\8cã\81\82ã\82\8bã\81¨ã\80\81
-\&\fBsudo\fR が動かないので、\fIsudoers\fR ファイルには文法エラーが絶
-対にあってはならないのだ。
+\&\fIsudoers\fR ファイルの編集には、\fB必ず\fR \fBvisudo\fR
+コマンドを使うべきだ。
\81\9dã\81\86ã\81\99ã\82\8cã\81°ã\80\81\fBvisudo\fR ã\81\8cã\83\95ã\82¡ã\82¤ã\83«ã\82\92ã\83­ã\83\83ã\82¯ã\81\97ã\80\81æ\96\87æ³\95ã\81®ã\83\81ã\82§ã\83\83ã\82¯ã\82\92ã\82\84ã\81£ã\81¦ã\81\8fã\82\8cã\82\8bã\80\82
+\&\fIsudoers\fR ファイルに文法的な間違いがあると、\fBsudo\fR が動かないので、
+\&\fIsudoers\fR ファイルには文法エラーが絶対にあってはならないのだ。
 .PP
 ネットグループを (ユーザについてではなく) マシンについて使用し、
-\&\fInetgroup\fR ファイルに完全修飾ホスト名を記載する場合は (たいてい
-そうするものだが)、そのマシンのホスト名を \f(CW\*(C`hostname\*(C'\fR 
-コマンドが出力する通りの完全修飾名で書くか、さもなければ 
-\&\fIsudoers\fR ファイルで \fIfqdn\fR オプションを使うかしなければなら
-ない。
+\&\fInetgroup\fR ファイルに完全修飾ホスト名を記載する場合は
+(たいていそうするものだが)、そのマシンのホスト名を
+\&\f(CW\*(C`hostname\*(C'\fR コマンドが出力する通りの完全修飾名で書くか、
+さもなければ、\fIsudoers\fR ファイルで
+\&\fIfqdn\fR オプションを使うかしなければならない。
 .SH "バグ"
 .IX Header "BUGS"
 \&\fBsudo\fR にバグを発見したと思ったら、下記のページにアクセスして、
@@ -1865,10 +2483,11 @@ http://www.sudo.ws/sudo/bugs/
 http://www.sudo.ws/mailman/listinfo/sudo\-users
 .SH "免責"
 .IX Header "DISCLAIMER"
-\&\fBsudo\fR は「現状のまま」提供される。明示的な、あるいは黙示的な
-いかなる保証も、商品性や特定目的への適合性についての黙示的な保証を含め、
+\&\fBsudo\fR は「現状のまま」提供される。
+明示的な、あるいは黙示的ないかなる保証も、
+商品性や特定目的への適合性についての黙示的な保証を含め、
 またそれのみに止まらず、これを否認する。詳細な全文については、
-\&\fBsudo\fR と一緒に配布されている \s-1LICENSE\s0 ファイルや
+\&\fBsudo\fR と一緒に配布されている \s-1LICENSE\s0 ファイルや
 下記 Web ページを御覧いただきたい。
 .br
 http://www.sudo.ws/sudo/license.html