=cut
Copyright (c) 1994-1996,1998-2003 Todd C. Miller <Todd.Miller@courtesan.com>
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:

1. Redistributions of source code must retain the above copyright
   notice, this list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright
   notice, this list of conditions and the following disclaimer in the
   documentation and/or other materials provided with the distribution.

3. The name of the author may not be used to endorse or promote products
   derived from this software without specific prior written permission
   from the author.

4. Products derived from this software may not be called "Sudo" nor
   may "Sudo" appear in their names without specific prior written
   permission from the author.

THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL
THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

Sponsored in part by the Defense Advanced Research Projects
Agency (DARPA) and Air Force Research Laboratory, Air Force
Materiel Command, USAF, under agreement number F39502-99-1-0512.

$Sudo: sudoers.pod,v 1.68 2003/03/15 20:31:02 millert Exp $
=pod

=begin JM-copyright

Japanese Version Copyright (c) 2000-2004 Yuichi SATO
        all rights reserved.
Translated Sat Oct 14 19:24:27 JST 2000
        by Yuichi SATO <ysato444@yahoo.co.jp>
Updated & Modified Tue Nov 19 02:21:57 JST 2002 by Yuichi SATO
Updated & Modified Fri Apr 16 07:45:02 JST 2004 by Yuichi SATO

=end JM-copyright

=begin JM-word

WORD:	Backus Naur Form	バッカス・ナウア記法
WORD:	definition		定義
WORD:	production rule		生成規則
WORD:	symbol			シンボル
WORD:	alias			エイリアス
WORD:	parentheses		括弧
WORD:	boolean			真偽値
WORD:	pound sign		シャープ記号
WORD:	reserved word		予約語
WORD:	exclamation point	感嘆符
WORD:	priority		優先度
WORD:	facility		機能分類

=end JM-word

=head1 NAME

=begin JM-comment

sudoers - list of which users may execute what

=end JM-comment

sudoers - どのユーザが何を実行できるかのリスト

=head1 DESCRIPTION

=begin JM-comment

The I<sudoers> file is composed of two types of entries:
aliases (basically variables) and user specifications
(which specify who may run what).  The grammar of I<sudoers>
will be described below in Extended Backus-Naur Form (EBNF).
Don't despair if you don't know what EBNF is; it is fairly
simple, and the definitions below are annotated.

=end JM-comment

I<sudoers> ファイルは、2 つのタイプのエントリから構成される。
(基本的には変数である) エイリアスと
(誰が何を実行できるかを指定する) ユーザ指定である。
I<sudoers> の文法を、 Extended Backus-Naur Form (EBNF)
(拡張バッカス・ナウア記法) を用いて以下に記述する。
EBNF を知らなくても諦めないでほしい。
EBNF は割に簡潔であるし、以下の定義には注釈をつけてある。

=head2 Quick guide to EBNF

=begin JM-comment

EBNF is a concise and exact way of describing the grammar of a language.
Each EBNF definition is made up of I<production rules>.  E.g.,

=end JM-comment

EBNF は言語の文法を記述する簡単で厳密な方法である。
EBNF の各定義は、I<生成規則>からなっている。

 symbol ::= definition | alternate1 | alternate2 ...

=begin JM-comment

Each I<production rule> references others and thus makes up a
grammar for the language.  EBNF also contains the following
operators, which many readers will recognize from regular
expressions.  Do not, however, confuse them with "wildcard"
characters, which have different meanings.

=end JM-comment

各I<生成規則>は他の生成規則を参照する。
このようにして言語の文法ができあがる。
EBNF は以下のようなオペレータを含む。
これは多くの人が正規表現でお馴染みだろう。
しかし、これとは異なる意味を持った、
「ワイルドカード」文字と混同してはならない
(訳注: 後者はシェルのワイルドカードパターンのことだろう。
B<regex>(7) と B<glob>(7)
を参照のこと)。

=over 8

=item C<?>

=begin JM-comment

Means that the preceding symbol (or group of symbols) is optional.
That is, it may appear once or not at all.

=end JM-comment

前に置かれたシンボル (または、シンボルのグループ) が
省略可能であることを意味する。
つまり、シンボルが 1 個登場するか、あるいは全然登場しないかである。

=item C<*>

=begin JM-comment

Means that the preceding symbol (or group of symbols) may appear
zero or more times.

=end JM-comment

前に置かれたシンボル (または、シンボルのグループ) が 0 個以上登場する。

=item C<+>

=begin JM-comment

Means that the preceding symbol (or group of symbols) may appear
one or more times.

=end JM-comment

前に置かれたシンボル (または、シンボルのグループ) が 1 個以上登場する。

=back

=begin JM-comment

Parentheses may be used to group symbols together.  For clarity,
we will use single quotes ('') to designate what is a verbatim character
string (as opposed to a symbol name).

=end JM-comment

括弧を使うとシンボルをグループにまとめることができる。
以降の例では、(シンボル名ではない) 文字通りの文字列は
シングルクオート ('') を使用して明示する。

=head2 Aliases

=begin JM-comment

There are four kinds of aliases: C<User_Alias>, C<Runas_Alias>,
C<Host_Alias> and C<Cmnd_Alias>.

=end JM-comment

C<User_Alias>, C<Runas_Alias>,
C<Host_Alias>, C<Cmnd_Alias>
という 4 種類のエイリアスがある。

 Alias ::= 'User_Alias'  User_Alias (':' User_Alias)* |
	   'Runas_Alias' Runas_Alias (':' Runas_Alias)* |
	   'Host_Alias'  Host_Alias (':' Host_Alias)* |
	   'Cmnd_Alias'  Cmnd_Alias (':' Cmnd_Alias)*

 User_Alias ::= NAME '=' User_List

 Runas_Alias ::= NAME '=' Runas_List

 Host_Alias ::= NAME '=' Host_List

 Cmnd_Alias ::= NAME '=' Cmnd_List

 NAME ::= [A-Z]([A-Z][0-9]_)*

=begin JM-comment

Each I<alias> definition is of the form

=end JM-comment

各I<エイリアス>定義は、次の形式をとる。

 Alias_Type NAME = item1, item2, ...

=begin JM-comment

where I<Alias_Type> is one of C<User_Alias>, C<Runas_Alias>, C<Host_Alias>,
or C<Cmnd_Alias>.  A C<NAME> is a string of uppercase letters, numbers,
and underscore characters ('_').  A C<NAME> B<must> start with an
uppercase letter.  It is possible to put several alias definitions
of the same type on a single line, joined by a colon (':').  E.g.,

=end JM-comment

ここで I<Alias_Type> は、 C<User_Alias>, 
C<Runas_Alias>, C<Host_Alias>,
C<Cmnd_Alias> のうちの 1 つである。
C<NAME> は、大文字・数字・
アンダースコア文字 ('_') から構成される文字列である。
C<NAME> は大文字から始まっていなければB<ならない>。
コロン (':') でつなげれば、
同一タイプの複数のエイリアス定義を 1 行に置くことができる。
例を挙げる。

 Alias_Type NAME = item1, item2, item3 : NAME = item4, item5

=begin JM-comment

The definitions of what constitutes a valid I<alias> member follow.

=end JM-comment

続けて、有効なI<エイリアス>メンバを構成する要素の定義を記述する。

 User_List ::= User |
	       User ',' User_List

 User ::= '!'* username |
	  '!'* '%'group |
	  '!'* '+'netgroup |
	  '!'* User_Alias

=begin JM-comment

A C<User_List> is made up of one or more usernames, uids
(prefixed with '#'), System groups (prefixed with '%'),
netgroups (prefixed with '+') and other aliases.  Each list
item may be prefixed with one or more '!' operators.  An odd number
of '!' operators negate the value of the item; an even number
just cancel each other out.

=end JM-comment

C<User_List> には、ユーザ名・ユーザ ID ('#' を前に付ける)・
システムグループ ('%' を前に付ける) ・
ネットグループ ('+' を前に付ける)・
別のエイリアス、が 1 個以上含まれる。
リストの各アイテムの前には、1 個以上の '!' オペレータを置いてもよい。
奇数個の '!' オペレータはアイテムの値を無効にする。
偶数個のオペレータは、互いに相殺されるだけである。

 Runas_List ::= Runas_User |
		Runas_User ',' Runas_List

 Runas_User ::= '!'* username |
	        '!'* '#'uid |
	        '!'* '%'group |
	        '!'* +netgroup |
	        '!'* Runas_Alias

=begin JM-comment

A C<Runas_List> is similar to a C<User_List> except that it can
also contain uids (prefixed with '#') and instead of C<User_Alias>es
it can contain C<Runas_Alias>es.

=end JM-comment

C<Runas_List> は C<User_List> と似ているが、
('#' を前に付けた) uid を含めることもできる。
また C<User_Alias> ではなく、
C<Runas_Alias> を含めることができる。

 Host_List ::= Host |
	       Host ',' Host_List

 Host ::= '!'* hostname |
	  '!'* ip_addr |
	  '!'* network(/netmask)? |
	  '!'* '+'netgroup |
	  '!'* Host_Alias

=begin JM-comment

A C<Host_List> is made up of one or more hostnames, IP addresses,
network numbers, netgroups (prefixed with '+') and other aliases.
Again, the value of an item may be negated with the '!' operator.
If you do not specify a netmask with a network number, the netmask
of the host's ethernet interface(s) will be used when matching.
The netmask may be specified either in dotted quad notation (e.g.
255.255.255.0) or CIDR notation (number of bits, e.g. 24).  A hostname
may include shell-style wildcards (see `Wildcards' section below),
but unless the C<hostname> command on your machine returns the fully
qualified hostname, you'll need to use the I<fqdn> option for wildcards
to be useful.

=end JM-comment

C<Host_List> には、ホスト名・IP アドレス・
ネットワーク番号・ネットグループ ('+' を前に付ける)・
その他のエイリアス、が 1 個以上含まれる。
ここでも、アイテムの値は '!' オペレータによって無効にされる。
ネットワーク番号にネットマスクを指定しない場合、
ホストのイーサネットインターフェースのネットマスクが
マッチングの際に使われる。
ネットマスクは、ドットで 4 つに区切った表記 (例えば 255.255.255.0) と
CIDR 表記 (ビットの数、例えば 24) のどちらで指定してもよい。
ホスト名には、シェル形式のワイルドカード
(以下の「ワイルドカード」のセクションを参照) を使ってもよい。
ただし、計算機の C<hostname> コマンドが
完全なドメイン名付きのホスト名を返さない場合に
ワイルドカードを使えるようにするには、
I<fqdn> オプションを指定する必要があるだろう。

 Cmnd_List ::= Cmnd |
	       Cmnd ',' Cmnd_List

 commandname ::= filename |
	         filename args |
	         filename '""'

 Cmnd ::= '!'* commandname |
	  '!'* directory |
	  '!'* Cmnd_Alias

=begin JM-comment

A C<Cmnd_List> is a list of one or more commandnames, directories, and other
aliases.  A commandname is a fully qualified filename which may include
shell-style wildcards (see `Wildcards' section below).  A simple
filename allows the user to run the command with any arguments he/she
wishes.  However, you may also specify command line arguments (including
wildcards).  Alternately, you can specify C<""> to indicate that the command
may only be run B<without> command line arguments.  A directory is a
fully qualified pathname ending in a '/'.  When you specify a directory
in a C<Cmnd_List>, the user will be able to run any file within that directory
(but not in any subdirectories therein).

=end JM-comment

C<Cmnd_List> は、コマンド名・ディレクトリ・別のエイリアス、が
1 個以上含まれるリストである。
コマンド名は完全なファイル名で、シェル形式のワイルドカード
(以下の「ワイルドカード」セクションを参照) を使うことができる。
単なるファイル名にすると、望みの引き数とともにコマンドを実行することができる。
しかし、さらに (ワイルドカードをも含む)
コマンドライン引き数を指定することもできる。
反対に、コマンドライン引き数B<なし>でコマンドを実行させるには、
C<""> を指定すれば良い。
ディレクトリは '/' で終わる完全なパス名である。
C<Cmnd_List> でディレクトリを指定すると、
ユーザはそのディレクトリにある全てのファイルを実行できる
(しかし、そのサブディレクトリにあるファイルは実行できない)。

=begin JM-comment

If a C<Cmnd> has associated command line arguments, then the arguments
in the C<Cmnd> must match exactly those given by the user on the command line
(or match the wildcards if there are any).  Note that the following
characters must be escaped with a '\' if they are used in command
arguments: ',', ':', '=', '\'.

=end JM-comment

C<Cmnd> がコマンドライン引き数と関連づけられている場合、
C<Cmnd> の中の引き数は、
ユーザがコマンドラインで指定した引き数と完全にマッチしなければならない
(ワイルドカードがあった場合は、それと完全にマッチしなければならない)。
',', ':', '=', '\' という文字を
コマンドライン引き数として使う場合、
'\' でエスケープしなければならない点に注意すること。

=head2 Defaults

=begin JM-comment

Certain configuration options may be changed from their default
values at runtime via one or more C<Default_Entry> lines.  These
may affect all users on any host, all users on a specific host, a
specific user, or commands being run as a specific user.  When
multiple entries match, they are applied in order.  Where there are
conflicting values, the last value on a matching line takes effect.

=end JM-comment

ある設定オプションの値を、
1 行以上の C<Default_Entry> 行を使って、
デフォルトの値から変更することができる。
この行が効果を持つ範囲は、全てのホスト上の全てのユーザにすることも、
指定したホスト上の全てのユーザにすることも、
指定したユーザにすることも、
指定したユーザとして実行されるコマンドにすることもできる。
複数のエントリがマッチする場合は、順番に適用される。
矛盾する値がある場合は、マッチする行の最後の値が効果を持つ。

 Default_Type ::= 'Defaults' ||
		  'Defaults' '@' Host ||
		  'Defaults' ':' User ||
		  'Defaults' '>' RunasUser

 Default_Entry ::= Default_Type Parameter_List

 Parameter ::= Parameter '=' Value ||
	       Parameter '+=' Value ||
	       Parameter '-=' Value ||
	       '!'* Parameter ||

=begin JM-comment

Parameters may be B<flags>, B<integer> values, B<strings>, or B<lists>.
Flags are implicitly boolean and can be turned off via the '!'
operator.  Some integer, string and list parameters may also be
used in a boolean context to disable them.  Values may be enclosed
in double quotes (C<">) when they contain multiple words.  Special
characters may be escaped with a backslash (C<\>).

=end JM-comment

Parameter は B<フラグ>・B<整数>・
B<文字列>・B<リスト>のいずれかである。
フラグは実は真偽値であり、'!' オペレータで off にできる。
整数・文字列・リストのパラメータのなかにも真偽値の意味で使えるものがあり、
それらは無効にできる。
値に複数のワードが含まれる場合は、
ダブルクオート (C<">) で囲まなければならない。
特殊文字はバックスラッシュ (C<\>) で
エスケープしなければならない。

=begin JM-comment

Lists have two additional assignment operators, C<+=> and C<-=>.
These operators are used to add to and delete from a list respectively.
It is not an error to use the C<-=> operator to remove an element
that does not exist in a list.

=end JM-comment

リストにはその他に 2 つの代入オペレータ
C<+=> と C<-=> がある。
これらのオペレータはそれぞれリストの追加と削除を行う。
C<-=> オペレータを使って
リストに存在しない要素を削除するとエラーになる。

=begin JM-comment

Note that since the I<sudoers> file is parsed in order the best place
to put the Defaults section is after the Host, User, and Cmnd aliases
but before the user specifications.

=end JM-comment

I<sudoers> ファイルは順番に解釈されるため、
デフォルトセクションの配置場所は Host, User, Cmnd エイリアスより後で、
かつユーザ指定より前にする点に注意すること。

=begin JM-comment

B<Flags>:

=end JM-comment

B<フラグ>:

=over 12

=item long_otp_prompt

=begin JM-comment

When validating with a One Time Password scheme (B<S/Key> or B<OPIE>),
a two-line prompt is used to make it easier to cut and paste the
challenge to a local window.  It's not as pretty as the default but
some people find it more convenient.  This flag is I<@long_otp_prompt@>
by default.

=end JM-comment

(B<S/Key> や B<OPIE> などの)
ワンタイムパスワードを使用している場合にこのオプションが有効になっていると、
ローカルなウインドウに入力したパスワードを
簡単にカット＆ペーストできるように、2 行のプロンプトが使われる。
これをデフォルトにするのは良くないが、便利だと言う人もいる。
このフラグはデフォルトでは I<@long_otp_prompt@> である。

=item ignore_dot

=begin JM-comment

If set, B<sudo> will ignore '.' or '' (current dir) in the C<PATH>
environment variable; the C<PATH> itself is not modified.  This
flag is I<@ignore_dot@> by default.

=end JM-comment

このフラグを設定すると、環境変数 C<PATH> にある 
(カレントディレクトリを表す) '.' と '' が無視される。
C<PATH> そのものは変更されない。
このフラグはデフォルトでは I<@ignore_dot@> である。

=item mail_always

=begin JM-comment

Send mail to the I<mailto> user every time a users runs B<sudo>.
This flag is I<off> by default.

=end JM-comment

ユーザが B<sudo> を実行する度に、I<mailto> ユーザにメールが送られる。
このフラグはデフォルトでは I<off> である。

=item mail_badpass

=begin JM-comment

Send mail to the I<mailto> user if the user running sudo does not
enter the correct password.  This flag is I<off> by default.

=end JM-comment

sudo を実行したユーザが正しいパスワードを入力しなかった場合、
I<mailto> ユーザにメールが送られる。
このフラグはデフォルトでは I<off> である。

=item mail_no_user

=begin JM-comment

If set, mail will be sent to the I<mailto> user if the invoking
user is not in the I<sudoers> file.  This flag is I<@mail_no_user@>
by default.

=end JM-comment

このフラグを設定すると、
sudo を起動したユーザが I<sudoers> ファイルにない場合、
I<mailto> ユーザにメールが送られる。
このフラグはデフォルトでは I<@mail_no_user@> である。

=item mail_no_host

=begin JM-comment

If set, mail will be sent to the I<mailto> user if the invoking
user exists in the I<sudoers> file, but is not allowed to run
commands on the current host.  This flag is I<@mail_no_host@> by default.

=end JM-comment

このフラグを設定すると、
sudo を起動したユーザが I<sudoers> ファイルに存在するが、
現在のホストでコマンドを実行することが許可されていない場合、
I<mailto> ユーザにメールが送られる。
このフラグはデフォルトでは I<@mail_no_host@> である。

=item mail_no_perms

=begin JM-comment

If set, mail will be sent to the I<mailto> user if the invoking
user is allowed to use B<sudo> but the command they are trying is not
listed in their I<sudoers> file entry.  This flag is I<@mail_no_perms@>
by default.

=end JM-comment

このフラグを設定すると、
ユーザが B<sudo> を使うことは許可されているが、
実行しようとしたコマンドが I<sudoers> ファイルのエントリにない場合、
I<mailto> ユーザにメールが送られる。
このフラグはデフォルトでは I<@mail_no_perms@> である。

=item tty_tickets

=begin JM-comment

If set, users must authenticate on a per-tty basis.  Normally,
B<sudo> uses a directory in the ticket dir with the same name as
the user running it.  With this flag enabled, B<sudo> will use a
file named for the tty the user is logged in on in that directory.
This flag is I<@tty_tickets@> by default.

=end JM-comment

このフラグを設定すると、
ユーザは tty 毎に認証しなければならない。
通常、B<sudo> はチケットディレクトリの中にある
実行しているユーザと同じ名前のディレクトリを使う。
このフラグが on になっていると、B<sudo> は
チケットディレクトリの中にある
ユーザがログインしている tty に対応したファイル名を使う。
このフラグはデフォルトでは I<@tty_tickets@> である。

=item lecture

=begin JM-comment

If set, a user will receive a short lecture the first time he/she
runs B<sudo>.  This flag is I<@lecture@> by default.

=end JM-comment

このフラグを設定すると、
初めて B<sudo> を実行したとき、ユーザは短いレクチャーを受け取る。
このフラグはデフォルトでは I<@lecture@> である。

=item authenticate

=begin JM-comment

If set, users must authenticate themselves via a password (or other
means of authentication) before they may run commands.  This default
may be overridden via the C<PASSWD> and C<NOPASSWD> tags.
This flag is I<on> by default.

=end JM-comment

このフラグを設定すると、
ユーザはパスワード (もしくは、別の認証方法) で自分自身に対して
認証をしなければならない。
このデフォルトの値は C<PASSWD> タグと
C<NOPASSWD> タグを使って変更できる。
このフラグはデフォルトでは I<on> である。

=item root_sudo

=begin JM-comment

If set, root is allowed to run B<sudo> too.  Disabling this prevents users
from "chaining" B<sudo> commands to get a root shell by doing something
like C<"sudo sudo /bin/sh">.
This flag is I<on> by default.

=end JM-comment

このフラグを設定すると、root も B<sudo> が実行できる。
このフラグを off にすると、
ユーザが C<"sudo sudo /bin/sh"> のような
「連鎖した」B<sudo> コマンドによって、
root のシェルを入手しようとすることが防止できる。
このフラグはデフォルトでは I<on> である。

=item log_host

=begin JM-comment

If set, the hostname will be logged in the (non-syslog) B<sudo> log file.
This flag is I<off> by default.

=end JM-comment

このフラグを設定すると、
ホスト名が (syslog ではない) B<sudo> ログファイルに記録される。
このフラグはデフォルトでは I<off> である。

=item log_year

=begin JM-comment

If set, the four-digit year will be logged in the (non-syslog) B<sudo> log file.
This flag is I<off> by default.

=end JM-comment

このフラグを設定すると、
4 桁の年が (syslog ではない) B<sudo> ログファイルに記録される。
このフラグはデフォルトでは I<off> である。

=item shell_noargs

=begin JM-comment

If set and B<sudo> is invoked with no arguments it acts as if the
B<-s> flag had been given.  That is, it runs a shell as root (the
shell is determined by the C<SHELL> environment variable if it is
set, falling back on the shell listed in the invoking user's
/etc/passwd entry if not).  This flag is I<off> by default.

=end JM-comment

このフラグが設定されている場合に B<sudo> が引き数なしで起動されると、
B<-s> フラグが与えられた場合と同様に動作する。
つまり、sudo はシェルを root として実行する
(環境変数 C<SHELL> が設定されている場合、
シェルはその環境変数で決定される。
設定されていない場合、
起動したユーザの /etc/passwd のエントリにあるシェルを使う)。
このフラグはデフォルトでは I<off> である。

=item set_home

=begin JM-comment

If set and B<sudo> is invoked with the B<-s> flag the C<HOME>
environment variable will be set to the home directory of the target
user (which is root unless the B<-u> option is used).  This effectively
makes the B<-s> flag imply B<-H>.  This flag is I<off> by default.

=end JM-comment

このフラグが設定されている場合に
B<sudo> が B<-s> フラグで起動されると、
環境変数 C<HOME> が対象ユーザのホームディレクトリに設定される
(この場合の対象ユーザは、B<-u> オプションで指定されない限り root である)。
このフラグは、B<-s> フラグが使われた場合に
B<-H> を暗黙のうちに有効にする。
このフラグはデフォルトでは I<off> である。

=item always_set_home

=begin JM-comment

If set, B<sudo> will set the C<HOME> environment variable to the home
directory of the target user (which is root unless the B<-u> option is used).
This effectively means that the B<-H> flag is always implied.
This flag is I<off> by default.

=end JM-comment

このフラグを設定すると、B<sudo> は環境変数 C<HOME> を
対象ユーザ (B<-u> オプションを使わない限りは root) の
ホームディレクトリに設定する。
このフラグは B<-H> を暗黙のうちに有効にする。
このフラグはデフォルトでは I<off> である。

=item path_info

=begin JM-comment

Normally, B<sudo> will tell the user when a command could not be
found in their C<PATH> environment variable.  Some sites may wish
to disable this as it could be used to gather information on the
location of executables that the normal user does not have access
to.  The disadvantage is that if the executable is simply not in
the user's C<PATH>, B<sudo> will tell the user that they are not
allowed to run it, which can be confusing.  This flag is I<off> by
default.

=end JM-comment

通常 B<sudo> はコマンドが C<PATH> 
環境変数に見つからない場合ユーザに告知する。
通常のユーザが、アクセスできない実行ファイルの場所に関する
情報を収集できないように、
サイトによってはこの告知をユーザに行わないようにしたいことがあるかもしれない。
しかし告知を行わないと、
単に実行ファイルがユーザの C<PATH> にないだけの場合でも、
B<sudo> はユーザに「実行許可がない」と伝えてしまい、
紛らわしくなる。
このフラグはデフォルトでは I<off> である。

=item preserve_groups

=begin JM-comment

By default B<sudo> will initialize the group vector to the list of
groups the target user is in.  When I<preserve_groups> is set, the
user's existing group vector is left unaltered.  The real and
effective group IDs, however, are still set to match the target
user.  This flag is I<off> by default.

=end JM-comment

デフォルトでは、B<sudo> はグループベクトルを
対象ユーザが所属するグループのリストで初期化する。
I<preserve_groups> が設定された場合、
ユーザが既に持っているグループベクトルは変更されない。
だだし実グループ ID と実効グループ ID は、
対象ユーザにマッチするように設定される。
このフラグはデフォルトでは I<off> である。

=item fqdn

=begin JM-comment

Set this flag if you want to put fully qualified hostnames in the
I<sudoers> file.  I.e., instead of myhost you would use myhost.mydomain.edu.
You may still use the short form if you wish (and even mix the two).
Beware that turning on I<fqdn> requires B<sudo> to make DNS lookups
which may make B<sudo> unusable if DNS stops working (for example
if the machine is not plugged into the network).  Also note that
you must use the host's official name as DNS knows it.  That is,
you may not use a host alias (C<CNAME> entry) due to performance
issues and the fact that there is no way to get all aliases from
DNS.  If your machine's hostname (as returned by the C<hostname>
command) is already fully qualified you shouldn't need to set
I<fqdn>.  This flag is I<@fqdn@> by default.

=end JM-comment

I<sudoers> ファイルに完全なドメイン名付きのホスト名を入れたい場合は、
このフラグを設定する。
すなわち myhost ではなく myhost.mydomain.edu を使いたい場合である。
このフラグを設定しても、使いたければ短い形式を使うことができる
(短い形式と完全な形式を混ぜて使うこともできる)。
I<fqdn> を on にすると、B<sudo> は
DNS のルックアップが必要になる点に注意すること。
DNS のルックアップをすると、
DNS が稼働していない場合
(計算機がネットワークに接続されていない場合などに)
B<sudo> が使用できなくなる。
DNS にあるホストの正式な名前を使わなければならない点にも注意すること。
つまり、パフォーマンスの問題と
DNS から全てのエイリアスを取得できないという問題から、
ホスト名のエイリアス (C<CNAME> エントリ) を使うことはできない。
(C<hostname> コマンドで返される) 計算機のホスト名が
既にドメイン名付きの完全なものである場合、
I<fqdn> を設定するべきではない。
このフラグはデフォルトでは I<@fqdn@> である。

=item insults

=begin JM-comment

If set, B<sudo> will insult users when they enter an incorrect
password.  This flag is I<@insults@> by default.

=end JM-comment

このフラグを設定すると、B<sudo> は
不正なパスワードを入力したユーザを侮辱する。
このフラグはデフォルトでは I<@insults@> である。

=item requiretty

=begin JM-comment

If set, B<sudo> will only run when the user is logged in to a real
tty.  This will disallow things like C<"rsh somehost sudo ls"> since
rsh(1) does not allocate a tty.  Because it is not possible to turn
off echo when there is no tty present, some sites may with to set
this flag to prevent a user from entering a visible password.  This
flag is I<off> by default.

=end JM-comment

このフラグを設定すると、
ユーザが real tty からログインしているときのみ B<sudo> が実行できる。
rsh(1) は tty を確保しないので、
C<"rsh somehost sudo ls">  といったことが許可されなくなる。
tty がないとエコーが消せないので、
入力時にパスワードが現れてしまうのを防止するために、
このフラグを設定したいと思うサイトもあるだろう。
このフラグはデフォルトでは I<off> である。

=item env_editor

=begin JM-comment

If set, B<visudo> will use the value of the EDITOR or VISUAL
environment variables before falling back on the default editor list.
Note that this may create a security hole as it allows the user to
run any arbitrary command as root without logging.  A safer alternative
is to place a colon-separated list of editors in the C<editor>
variable.  B<visudo> will then only use the EDITOR or VISUAL if
they match a value specified in C<editor>.  This flag is C<@env_editor@> by
default.

=end JM-comment

このフラグを設定すると、B<visudo> は
デフォルトのエディタリストを使う前に、
環境変数 EDITOR と VISUAL の値を使う。
ユーザはログに記録されることなく
任意のコマンドを root として実行できてしまうので、
セキュリティホールを作ってしまう点に注意すること。
安全な代替案としては、
コロンで区切ったエディタのリストを
C<editor> 変数に設定することである。
そうするとB<visudo> は、
C<editor> に指定された値に
EDITOR または VISUAL がマッチするときにのみ、
その環境変数を使う。
このフラグはデフォルトでは I<@env_editor@> である。

=item rootpw

=begin JM-comment

If set, B<sudo> will prompt for the root password instead of the password
of the invoking user.  This flag is I<off> by default.

=end JM-comment

このフラグを設定すると、B<sudo> は
起動したユーザのパスワードではなく、
root のパスワードを要求する。
このフラグはデフォルトでは I<off> である。

=item runaspw

=begin JM-comment

If set, B<sudo> will prompt for the password of the user defined by the
I<runas_default> option (defaults to C<root>) instead of the password
of the invoking user.  This flag is I<off> by default.

=end JM-comment

このフラグを設定すると、B<sudo> は
起動したユーザのパスワードではなく、
I<runas_default> オプションで定義されたユーザ
(デフォルトでは C<root>) のパスワードを要求する。
このフラグはデフォルトでは I<off> である。

=item targetpw

=begin JM-comment

If set, B<sudo> will prompt for the password of the user specified by
the B<-u> flag (defaults to C<root>) instead of the password of the
invoking user.  This flag is I<off> by default.

=end JM-comment

このフラグを設定すると、B<sudo> は
起動したユーザのパスワードではなく、
B<-u> フラグで指定されたユーザ
(デフォルトでは C<root>) のパスワードを要求する。
このフラグはデフォルトでは I<off> である。

=item set_logname

=begin JM-comment

Normally, B<sudo> will set the C<LOGNAME> and C<USER> environment variables
to the name of the target user (usually root unless the B<-u> flag is given).
However, since some programs (including the RCS revision control system)
use C<LOGNAME> to determine the real identity of the user, it may be desirable
to change this behavior.  This can be done by negating the set_logname option.

=end JM-comment

通常 B<sudo> は環境変数 C<LOGNAME> と
C<USER> を対象ユーザ
(B<-u> フラグで指定されないければふつうは root) の名前に設定する。
しかし、実際のユーザの識別に
C<LOGNAME> を使うプログラム 
(RCS revision control system などが含まれる) があるので、
この挙動を変更したいこともある。
これには set_logname オプションを I<off> にすればよい。

=item stay_setuid

=begin JM-comment

Normally, when B<sudo> executes a command the real and effective
UIDs are set to the target user (root by default).  This option
changes that behavior such that the real UID is left as the invoking
user's UID.  In other words, this makes B<sudo> act as a setuid
wrapper.  This can be useful on systems that disable some potentially
dangerous functionality when a program is run setuid.  Note, however,
that this means that sudo will run with the real uid of the invoking
user which may allow that user to kill B<sudo> before it can log a
failure, depending on how your OS defines the interaction between
signals and setuid processes.

=end JM-comment

通常 B<sudo> がコマンドを実行する場合、
実 UID と実行 UID は対象ユーザ (デフォルトは root) に設定される。
このオプションは実 UID を
起動したユーザの UID のままにするように動作を変更する。
言い換えると、このオプションは B<sudo> を setuid ラッパーとして
動作させるということである。
これはプログラムが setuid されて実行されるときの
潜在的に危険な機能を無効にしているシステムで役立つ。
ただし B<sudo> は起動したユーザの実 UID で実行されるので、
OS におけるシグナルと setuid プロセスの相互作用の定義によっては、
B<sudo> が失敗をログに記録する前にユーザが kill できる点に注意すること。

=item env_reset

=begin JM-comment

If set, B<sudo> will reset the environment to only contain the
following variables: C<HOME>, C<LOGNAME>, C<PATH>, C<SHELL>, C<TERM>,
and C<USER> (in addition to the C<SUDO_*> variables).
Of these, only C<TERM> is copied unaltered from the old environment.
The other variables are set to default values (possibly modified
by the value of the I<set_logname> option).  If B<sudo> was compiled
with the C<SECURE_PATH> option, its value will be used for the C<PATH>
environment variable.
Other variables may be preserved with the I<env_keep> option.

=end JM-comment

このフラグを設定すると、B<sudo> は以下の変数のみを含むように
環境をリセットする: C<HOME>, C<LOGNAME>, 
C<PATH>, C<SHELL>, C<TERM>,
C<USER> (C<SUDO_*> 以外に)。
これらのうちで C<TERM> だけが
以前の環境からコピーされる。
他の変数はデフォルトの値に設定される
(I<set_logname> オプションの値で変更可能)。
B<sudo> が C<SECURE_PATH> オプションを付けて
コンパイルされている場合、
その値は環境変数 C<PATH> に使われる。
他の変数は I<env_keep> オプションで保存することもできる。

=item use_loginclass

=begin JM-comment

If set, B<sudo> will apply the defaults specified for the target user's
login class if one exists.  Only available if B<sudo> is configured with
the --with-logincap option.  This flag is I<off> by default.

=end JM-comment

このフラグを設定すると、B<sudo> は、
対象ユーザのログインクラスがあれば、それに指定されたデフォルトの値を適用する。
B<sudo> の (コンパイル時に) --with-logincap オプションが
設定されている場合にのみ、有効である。
このフラグはデフォルトでは I<off> である。

=back

=begin JM-comment

B<Integers>:

=end JM-comment

B<整数>:

=over 12

=item passwd_tries

=begin JM-comment

The number of tries a user gets to enter his/her password before
B<sudo> logs the failure and exits.  The default is C<@passwd_tries@>.

=end JM-comment

B<sudo> が失敗をログに記録して終了するまでに、
ユーザがパスワードを入力できる回数。
デフォルトは C<@passwd_tries@>。

=back

=begin JM-comment

B<Integers that can be used in a boolean context>:

=end JM-comment

B<真偽値としても使用される整数>:

=over 12

=item loglinelen

=begin JM-comment

Number of characters per line for the file log.  This value is used
to decide when to wrap lines for nicer log files.  This has no
effect on the syslog log file, only the file log.  The default is
C<@loglen@> (use 0 or negate the option to disable word wrap).

=end JM-comment

ファイルログの 1 行当たりの文字数。
この値は、ログファイルを見やすくするために、
行を何桁で折り返すかを決定するために使われる。
syslog ファイルには何も影響せず、ファイルログだけに影響する。
デフォルトは C<@loglen@> 
(折り返しをしない場合は 0 を指定するか、
このオプションを無効にする)。

=item timestamp_timeout

=begin JM-comment

Number of minutes that can elapse before B<sudo> will ask for a
passwd again.  The default is C<@timeout@>.  Set this to C<0> to always
prompt for a password.
If set to a value less than C<0> the user's timestamp will never
expire.  This can be used to allow users to create or delete their
own timestamps via C<sudo -v> and C<sudo -k> respectively.

=end JM-comment

B<sudo> が再度パスワードを尋ねるまでに経過する分数。
デフォルトは C<@timeout@>。
常にパスワードを要求させるには C<0> に設定する。
C<0> より小さい値に設定すると、
ユーザのタイムスタンプは失効しない。
これはユーザが自身のタイムスタンプの作成・削除を
C<sudo -v> や
C<sudo -k> で可能にするために使う。

=item passwd_timeout

=begin JM-comment

Number of minutes before the B<sudo> password prompt times out.
The default is C<@password_timeout@>, set this to C<0> for no password timeout.

=end JM-comment

B<sudo> のパスワード要求が時間切れになるまでの分数。
デフォルトは C<@password_timeout@>。
パスワード要求の時間切れをなくすには C<0> に設定する。

=item umask

=begin JM-comment

Umask to use when running the command.  Negate this option or set
it to 0777 to preserve the user's umask.  The default is C<@sudo_umask@>.

=end JM-comment

コマンドを実行する場合の umask。
ユーザの umask を上書きしないためには、
このオプションを無効にするか 0777 に設定すること。
デフォルトは C<@sudo_umask@>。

=back

=begin JM-comment

B<Strings>:

=end JM-comment

B<文字列>:

=over 12

=item mailsub

=begin JM-comment

Subject of the mail sent to the I<mailto> user. The escape C<%h>
will expand to the hostname of the machine.
Default is C<@mailsub@>.

=end JM-comment

I<mailto> ユーザに送られるメールの Subject (題名)。
エスケープ C<%h> は計算機のホスト名に展開される。
デフォルトは C<@mailsub@>。

=item badpass_message

=begin JM-comment

Message that is displayed if a user enters an incorrect password.
The default is C<@badpass_message@> unless insults are enabled.

=end JM-comment

ユーザが不正なパスワードを入力した場合に表示されるメッセージ。
insults が設定されていない限り、
デフォルトは C<@badpass_message@>。

=item timestampdir

=begin JM-comment

The directory in which B<sudo> stores its timestamp files.
The default is F<@timedir@>.

=end JM-comment

B<sudo> がタイムスタンプファイルを置くディレクトリ。
デフォルトは F<@timedir@>。

=item timestampowner

=begin JM-comment

The owner of the timestamp directory and the timestamps stored therein.
The default is C<root>.

=end JM-comment

タイムスタンプディレクトリと、
そこに格納されるタイムスタンプファイルの所有者。
デフォルトは C<root>。

=item passprompt

=begin JM-comment

The default prompt to use when asking for a password; can be overridden
via the B<-p> option or the C<SUDO_PROMPT> environment variable.
The following percent (`C<%>') escapes are supported:

=end JM-comment

パスワードを尋ねるときに使われるデフォルトのプロンプト。
B<-p> オプションや環境変数
C<SUDO_PROMPT> を使って変更できる。
以下のようなパーセント (`C<%>') エスケープがサポートされている。

=over 8

=item C<%u>

=begin JM-comment

expanded to the invoking user's login name

=end JM-comment

起動したユーザのログイン名に展開される。

=item C<%U>

=begin JM-comment

expanded to the login name of the user the command will
be run as (defaults to root)

=end JM-comment

コマンドを実行するユーザのログイン名に展開される
(デフォルトは root である)。

=item C<%h>

=begin JM-comment

expanded to the local hostname without the domain name

=end JM-comment

ドメイン名を含まないローカルホスト名に展開される。

=item C<%H>

=begin JM-comment

expanded to the local hostname including the domain name
(on if the machine's hostname is fully qualified or the I<fqdn>
option is set)

=end JM-comment

(マシンのホスト名が完全名である場合、
または I<fqdn> sudoers オプションが設定されている場合)
ドメイン名を含むローカルホスト名に展開される。

=item C<%%>

=begin JM-comment

two consecutive C<%> characters are collaped into a single C<%> character

=end JM-comment

2 つ連続した C<%> 文字は 1 つの C<%> 文字にされる。

=back 8

=begin JM-comment

The default value is C<@passprompt@>.

=end JM-comment

デフォルト値は C<@passprompt@>。

=item runas_default

=begin JM-comment

The default user to run commands as if the B<-u> flag is not specified
on the command line.  This defaults to C<@runas_default@>.

=end JM-comment

B<-u> フラグがコマンドラインで指定されていない場合に、
コマンドを実行するデフォルトのユーザ。
デフォルトは C<@runas_default@>。

=item syslog_goodpri

=begin JM-comment

Syslog priority to use when user authenticates successfully.
Defaults to C<@goodpri@>.

=end JM-comment

ユーザが認証に成功した場合に使われる syslog の優先度 (priority)。
デフォルトは C<@goodpri@>。

=item syslog_badpri

=begin JM-comment

Syslog priority to use when user authenticates unsuccessfully.
Defaults to C<@badpri@>.

=end JM-comment

ユーザが認証に失敗した場合に使われる syslog の優先度。
デフォルトは C<@badpri@>。

=item editor

=begin JM-comment

A colon (':') separated list of editors allowed to be used with
B<visudo>.  B<visudo> will choose the editor that matches the user's
USER environment variable if possible, or the first editor in the
list that exists and is executable.  The default is the path to vi
on your system.

=end JM-comment

B<visudo> で使用可能なエディタのリスト。
リストはコロン (':') で区切る。
B<visudo> はユーザの USER 環境変数が設定されている場合には、
それにマッチするエディタを選択する。
設定されていない場合は、
リスト中に存在する実行可能な最初のエディタを選択する。
デフォルトはシステム上の vi のパス。

=back

=begin JM-comment

B<Strings that can be used in a boolean context>:

=end JM-comment

B<真偽値としても使用される文字列>:

=over 12

=item logfile

=begin JM-comment

Path to the B<sudo> log file (not the syslog log file).  Setting a path
turns on logging to a file; negating this option turns it off.

=end JM-comment

(syslog ログファイルではなく) B<sudo> ログファイルへのパス。
パスを設定すると、そのファイルへログが記録される。
このオプションを無効にすれば、記録されない。

=item syslog

=begin JM-comment

Syslog facility if syslog is being used for logging (negate to
disable syslog logging).  Defaults to C<@logfac@>.

=end JM-comment

ログの記録に syslog が使われている場合の syslog の機能分類 (facility)
(syslog によるログの記録をしない場合は、設定しないこと)。
デフォルトは C<@logfac@>。

=item mailerpath

=begin JM-comment

Path to mail program used to send warning mail.
Defaults to the path to sendmail found at configure time.

=end JM-comment

警告メールを送るのに使われるメールプログラムのパス。
デフォルトは、(コンパイルの) 設定時に見つかった sendmail のパス。

=item mailerflags

=begin JM-comment

Flags to use when invoking mailer. Defaults to B<-t>.

=end JM-comment

メーラーを起動するときに使われるフラグ。
デフォルトは B<-t>。

=item mailto

=begin JM-comment

Address to send warning and error mail to.  The address should
be enclosed in double quotes (C<">) to protect against sudo
interpreting the C<@> sign.  Defaults to C<@mailto@>.

=end JM-comment

警告メールとエラーメールを送るアドレス。
アドレスは、sudo が C<@> 記号を解釈しないように、
ダブルクォート (C<">) で括らなければならない。
デフォルトは C<@mailto@>。

=item exempt_group

=begin JM-comment

Users in this group are exempt from password and PATH requirements.
This is not set by default.

=end JM-comment

このグループに属するユーザは、パスワードと PATH が必要ない。
デフォルトでは設定されていない。

=item verifypw

=begin JM-comment

This option controls when a password will be required when a user runs
B<sudo> with the B<-v> flag.  It has the following possible values:

=end JM-comment

このオプションは、ユーザが B<sudo> を B<-v> オプションで実行したときに、
いつパスワードが必要とされるかを制御する。
このオプションには以下の値のいずれかを設定できる。

=over 8

=item all

=begin JM-comment

All the user's I<sudoers> entries for the current host must have
the C<NOPASSWD> flag set to avoid entering a password.

=end JM-comment

パスワードの入力をなしですませるためには、
現在のホストのすべてのユーザの I<sudoers> エントリに
C<NOPASSWD> フラグが設定されていなければならない。

=item any

=begin JM-comment

At least one of the user's I<sudoers> entries for the current host
must have the C<NOPASSWD> flag set to avoid entering a password.

=end JM-comment

パスワードの入力をなしですませるためには、
現在のホストの少なくとも一人のユーザの
I<sudoers> エントリに C<NOPASSWD> フラグが
設定されていなければならない。

=item never

=begin JM-comment

The user need never enter a password to use the B<-v> flag.

=end JM-comment

ユーザは、B<-v> フラグを使う際にパスワードを必要としない。

=item always

=begin JM-comment

The user must always enter a password to use the B<-v> flag.

=end JM-comment

ユーザは、B<-v> フラグを使う際に常にパスワードを入力しなければならない。

=back

=begin JM-comment

The default value is `all'.

=end JM-comment

デフォルトの値は `all' である。

=item listpw

=begin JM-comment

This option controls when a password will be required when a
user runs B<sudo> with the B<-l> flag.  It has the following possible values:

=end JM-comment

このオプションは、ユーザが B<sudo> を B<-l> フラグで実行したときに、
いつパスワードが必要とされるかを制御する。
このオプションには以下の値のいずれかを設定できる。

=over 8

=item all

=begin JM-comment

All the user's I<sudoers> entries for the current host must have
the C<NOPASSWD> flag set to avoid entering a password.

=end JM-comment

パスワードの入力をなしですませるためには、
現在のホストのすべてのユーザの I<sudoers> エントリに
C<NOPASSWD> フラグが設定されていなければならない。

=item any

=begin JM-comment

At least one of the user's I<sudoers> entries for the current host
must have the C<NOPASSWD> flag set to avoid entering a password.

=end JM-comment

パスワードの入力をなしですませるためには、
現在のホストの少なくとも一人のユーザの I<sudoers> エントリに
C<NOPASSWD> フラグが設定されていなければならない。

=item never

=begin JM-comment

The user need never enter a password to use the B<-l> flag.

=end JM-comment

ユーザは、B<-l> フラグを使う際にパスワードを必要としない。

=item always

=begin JM-comment

The user must always enter a password to use the B<-l> flag.

=end JM-comment

ユーザは、B<-l> フラグを使う際に常にパスワードを入力しなければならない。

=back

=begin JM-comment

The default value is `any'.

=end JM-comment

デフォルトの値は `any' である。

=back

=begin JM-comment

B<Lists that can be used in a boolean context>:

=end JM-comment

B<真偽値としても使用されるリスト>:

=over 12

=item env_check

=begin JM-comment

Environment variables to be removed from the user's environment if
the variable's value contains C<%> or C</> characters.  This can
be used to guard against printf-style format vulnerabilities in
poorly-written programs.  The argument may be a double-quoted,
space-separated list or a single value without double-quotes.  The
list can be replaced, added to, deleted from, or disabled by using
the C<=>, C<+=>, C<-=>, and C<!> operators respectively.  The default
list of environment variables to check is printed when B<sudo> is
run by root with the I<-V> option.

=end JM-comment

変数の値に C<%> 文字または C</> 文字を
含んでいる場合に、ユーザの環境から削除される環境変数。
これは良く考えずに書かれたプログラムにおける
printf 形式の脆弱性を防ぐためにある。
引き数はダブルクォーテーションで囲んだスペース区切りのリスト、
またはクォートしない 1 個の値である。
リストの置換・追加・削除・無効化は、それぞれ
C<=>, C<+=>, 
C<-=>, C<!> オペレータでできる。
チェックされる環境変数のデフォルトのリストは、
B<sudo> に I<-V> をつけて実行すると表示される。

=item env_delete

=begin JM-comment

Environment variables to be removed from the user's environment.
The argument may be a double-quoted, space-separated list or a
single value without double-quotes.  The list can be replaced, added
to, deleted from, or disabled by using the C<=>, C<+=>, C<-=>, and
C<!> operators respectively.  The default list of environment
variables to remove is printed when B<sudo> is run by root with the
I<-V> option.  Note that many operating systems will remove potentially
dangerous variables from the environment of any setuid process (such
as B<sudo>).

=end JM-comment

ユーザの環境から削除される環境変数。
引き数はダブルクォーテーションで囲んだスペース区切りのリスト、
またはクォートしない 1 個の値である。
リストの置換・追加・削除・無効化は、それぞれ
C<=>, C<+=>, 
C<-=>, C<!> オペレータでできる。
チェックされる環境変数のデフォルトのリストは、
B<sudo> に I<-V> をつけて実行すると表示される。
多くの OS では (B<sudo> のような) setuid プロセスの環境変数から
危険性が存在する可能性のあるものを取り除く。

=item env_keep

=begin JM-comment

Environment variables to be preserved in the user's environment
when the I<env_reset> option is in effect.  This allows fine-grained
control over the environment B<sudo>-spawned processes will receive.
The argument may be a double-quoted, space-separated list or a
single value without double-quotes.  The list can be replaced, added
to, deleted from, or disabled by using the C<=>, C<+=>, C<-=>, and
C<!> operators respectively.  This list has no default members.

=end JM-comment

I<env_reset> オプションが実行されるときに、
ユーザの環境で保存される環境変数。
これにより B<sudo> が起動したプロセスが受け取る環境を細かく制御できる。
引き数はダブルクォーテーションで囲んだスペース区切りのリスト、
またはクォートしない 1 個の値である。
リストの置換・追加・削除・無効化は、それぞれ
C<=>, C<+=>, 
C<-=>, C<!> オペレータでできる。
このリストはデフォルトでは何も含まない。

=back

=begin JM-comment

When logging via syslog(3), B<sudo> accepts the following values for the syslog
facility (the value of the B<syslog> Parameter): B<authpriv> (if your OS
supports it), B<auth>, B<daemon>, B<user>, B<local0>, B<local1>, B<local2>,
B<local3>, B<local4>, B<local5>, B<local6>, and B<local7>.  The following
syslog priorities are supported: B<alert>, B<crit>, B<debug>, B<emerg>,
B<err>, B<info>, B<notice>, and B<warning>.

=end JM-comment

syslog(3) でログを記録している場合、
B<sudo> は syslog の機能分類 (B<syslog> パラメータの値) として、
B<authpriv> (OS がサポートしている場合),
B<auth>, B<daemon>, B<user>, B<local0>, B<local1>, B<local2>,
B<local3>, B<local4>, B<local5>, B<local6>, B<local7>
を受け付ける。
syslog の優先度としては、
B<alert>, B<crit>, B<debug>, B<emerg>,
B<err>, B<info>, B<notice>, B<warning>
がサポートされている。

=head2 User Specification

 User_Spec ::= User_List Host_List '=' Cmnd_Spec_List \
	       (':' User_Spec)*

 Cmnd_Spec_List ::= Cmnd_Spec |
		    Cmnd_Spec ',' Cmnd_Spec_List

 Cmnd_Spec ::= Runas_Spec? ('NOPASSWD:' | 'PASSWD:')? Cmnd

 Runas_Spec ::= '(' Runas_List ')'

=begin JM-comment

A B<user specification> determines which commands a user may run
(and as what user) on specified hosts.  By default, commands are
run as B<root>, but this can be changed on a per-command basis.

=end JM-comment

B<ユーザ設定>は、指定したホスト上でユーザが (どのユーザとして)
どのコマンドを実行できるかを決定する。
デフォルトではコマンドは B<root> として実行されるが、
これはコマンド毎に変更可能である。

=begin JM-comment

Let's break that down into its constituent parts:

=end JM-comment

ユーザ設定を構成要素ごとに分けてみる。

=head2 Runas_Spec

=begin JM-comment

A C<Runas_Spec> is simply a C<Runas_List> (as defined above)
enclosed in a set of parentheses.  If you do not specify a
C<Runas_Spec> in the user specification, a default C<Runas_Spec>
of B<root> will be used.  A C<Runas_Spec> sets the default for
commands that follow it.  What this means is that for the entry:

=end JM-comment

C<Runas_Spec> は単に
(上で定義した) C<Runas_List> を括弧で括ったものである。
ユーザ設定で C<Runas_Spec> を指定しないと、
B<root> のデフォルトの C<Runas_Spec> が使われる。
C<Runas_Spec> は、その後に続くコマンドのデフォルトを設定する。
つまり:

 dgb	boulder = (operator) /bin/ls, /bin/kill, /usr/bin/lprm

=begin JM-comment

The user B<dgb> may run F</bin/ls>, F</bin/kill>, and
F</usr/bin/lprm> -- but only as B<operator>.  E.g.,

=end JM-comment

のようなエントリがある場合、
ユーザ B<dgb> は、I</bin/ls>, I</bin/kill>, I</usr/bin/lprm> を
実行できる -- ただし B<operator> としてのみ。例えば:

    sudo -u operator /bin/ls

=begin JM-comment

It is also possible to override a C<Runas_Spec> later on in an
entry.  If we modify the entry like so:

=end JM-comment

C<Runas_Spec> を後からエントリの中で上書きすることも可能である。

 dgb	boulder = (operator) /bin/ls, (root) /bin/kill, /usr/bin/lprm

=begin JM-comment

Then user B<dgb> is now allowed to run F</bin/ls> as B<operator>,
but  F</bin/kill> and F</usr/bin/lprm> as B<root>.

=end JM-comment

のように修正すると、
ユーザ B<dgb> は I</bin/ls> を B<operator> として、
また I</bin/kill> と I</usr/bin/lprm> を B<root> として
実行することが許可される。

=head2 NOPASSWD and PASSWD

=begin JM-comment

By default, B<sudo> requires that a user authenticate him or herself
before running a command.  This behavior can be modified via the
C<NOPASSWD> tag.  Like a C<Runas_Spec>, the C<NOPASSWD> tag sets
a default for the commands that follow it in the C<Cmnd_Spec_List>.
Conversely, the C<PASSWD> tag can be used to reverse things.
For example:

=end JM-comment

デフォルトでは、B<sudo> は
コマンドを実行する前にユーザ自身の認証を必要とする。
この動作は C<NOPASSWD> タグで変更することができる。
C<Runas_Spec> と同様に、C<NOPASSWD> タグは
コマンドのデフォルトをその後に続く
C<Cmnd_Spec_List> に設定する。
逆に C<PASSWD> はこれを元に戻すために使われる。
例えば:

 ray	rushmore = NOPASSWD: /bin/kill, /bin/ls, /usr/bin/lprm

=begin JM-comment

would allow the user B<ray> to run F</bin/kill>, F</bin/ls>, and
F</usr/bin/lprm> as root on the machine rushmore as B<root> without
authenticating himself.  If we only want B<ray> to be able to
run F</bin/kill> without a password the entry would be:

=end JM-comment

とすると、ユーザ B<ray> は彼自身への認証なしで
計算機 rushmore の B<root> として
I</bin/kill>, I</bin/ls>, I</usr/bin/lprm> 
を実行することができる。
B<ray> に I</bin/kill> だけを
パスワードなしで実行させるようにしたい場合、エントリは次のようになる。

 ray	rushmore = NOPASSWD: /bin/kill, PASSWD: /bin/ls, /usr/bin/lprm

=begin JM-comment

Note, however, that the C<PASSWD> tag has no effect on users who are
in the group specified by the exempt_group option.

=end JM-comment

ただし、C<PASSWD> タグは exempt_group オプションで
指定されたグループに属しているユーザには効果がない点に注意すること。

=begin JM-comment

By default, if the C<NOPASSWD> tag is applied to any of the entries
for a user on the current host, he or she will be able to run
C<sudo -l> without a password.  Additionally, a user may only run
C<sudo -v> without a password if the C<NOPASSWD> tag is present
for all a user's entries that pertain to the current host.
This behavior may be overridden via the verifypw and listpw options.

=end JM-comment

デフォルトでは、現在のホスト上のあるユーザのどれかのエントリに
C<NOPASSWD> タグが適用されていれば、
そのユーザは C<sudo -l> を
パスワードなしに実行できるようになる。
さらに、あるユーザの現在のホストに関連する全てのエントリに
C<NOPASSWD> タグがある場合に限り、
そのユーザは C<sudo -v> を
パスワードなしに実行できるようになる。
この動作は verifypw と listpw オプションを使って変更できる。

=head2 Wildcards (aka meta characters):

=begin JM-comment

B<sudo> allows shell-style I<wildcards> to be used in pathnames
as well as command line arguments in the I<sudoers> file.  Wildcard
matching is done via the B<POSIX> C<fnmatch(3)> routine.  Note that
these are I<not> regular expressions.

=end JM-comment

B<sudo> は I<sudoers> ファイルにおいて、
コマンドライン引き数やパス名に対して
シェル形式のI<ワイルドカード>を使うことができる。
ワイルドカードのマッチングは、
B<POSIX> の C<fnmatch(3)> ルーチンを使って行われる。
正規表現I<ではない>点に注意すること。

=over 8

=item C<*>

=begin JM-comment

Matches any set of zero or more characters.

=end JM-comment

任意の 0 個以上の文字にマッチする。

=item C<?>

=begin JM-comment

Matches any single character.

=end JM-comment

任意の 1 個の文字にマッチする。

=item C<[...]>

=begin JM-comment

Matches any character in the specified range.

=end JM-comment

指定した範囲にある任意の文字にマッチする。

=item C<[!...]>

=begin JM-comment

Matches any character B<not> in the specified range.

=end JM-comment

指定した範囲にB<ない>任意の文字にマッチする。

=item C<\x>

=begin JM-comment

For any character "x", evaluates to "x".  This is used to
escape special characters such as: "*", "?", "[", and "}".

=end JM-comment

"x" で評価される任意の文字 "x"。
これは、"*", "?", "[", "}" のような
エスケープ文字に対して使われる。

=back

=begin JM-comment

Note that a forward slash ('/') will B<not> be matched by
wildcards used in the pathname.  When matching the command
line arguments, however, a slash B<does> get matched by
wildcards.  This is to make a path like:

=end JM-comment

フォワードスラッシュ ('/') は、パス名で使われるワイルドカードに対しては
マッチB<しない>点に注意すること。
コマンドライン引き数に対してマッチングをする場合、
スラッシュはワイルドカードにマッチB<する>。
これは

    /usr/bin/*

=begin JM-comment

match C</usr/bin/who> but not C</usr/bin/X11/xterm>.

=end JM-comment

のようなパスを、
C</usr/bin/who> にはマッチさせ、
C</usr/bin/X11/xterm> にはマッチさせないようにするためである。

=head2 Exceptions to wildcard rules:

=begin JM-comment

The following exceptions apply to the above rules:

=end JM-comment

上の規則に対して、次の例外が適用される。

=over 8

=item C<"">

=begin JM-comment

If the empty string C<""> is the only command line argument in the
I<sudoers> entry it means that command is not allowed to be run
with B<any> arguments.

=end JM-comment

空の文字列 C<""> が I<sudoers> エントリの
唯一のコマンドライン引き数である場合、
「コマンドに引き数をB<つけた>ときは、実行することが許可されない」
ということを意味する。

=back

=head2 Other special characters and reserved words:

=begin JM-comment

The pound sign ('#') is used to indicate a comment (unless it
occurs in the context of a user name and is followed by one or
more digits, in which case it is treated as a uid).  Both the
comment character and any text after it, up to the end of the line,
are ignored.

=end JM-comment

シャープ記号 ('#') はコメントを表すために使われる。
(ユーザ名で使われている場合は除く。
また、1 個以上の数字が続いていて、ユーザ ID として扱われる場合も除く。)
コメント文字とそれ以降のテキストは、行末まで無視される。

=begin JM-comment

The reserved word B<ALL> is a built in I<alias> that always causes
a match to succeed.  It can be used wherever one might otherwise
use a C<Cmnd_Alias>, C<User_Alias>, C<Runas_Alias>, or C<Host_Alias>.
You should not try to define your own I<alias> called B<ALL> as the
built in alias will be used in preference to your own.  Please note
that using B<ALL> can be dangerous since in a command context, it
allows the user to run B<any> command on the system.

=end JM-comment

予約語 B<ALL> は組込みのI<エイリアス>で、
常にマッチを成功させる。
この予約語はどこでも使える。
これを使いたくない場合は、
C<Cmnd_Alias>, C<User_Alias>, 
C<Runas_Alias>, C<Host_Alias>
を使うこと。
B<ALL> という I<エイリアス> を自分で定義しようとしてはならない。
組込みのエイリアスが優先されるからである。
B<ALL> を使うと危険になる可能性がある点に注意すること。
なぜなら、これをコマンドの指定で使うと、
ユーザはシステム上のB<全ての>コマンドを実行できるからである。

=begin JM-comment

An exclamation point ('!') can be used as a logical I<not> operator
both in an I<alias> and in front of a C<Cmnd>.  This allows one to
exclude certain values.  Note, however, that using a C<!> in
conjunction with the built in C<ALL> alias to allow a user to
run "all but a few" commands rarely works as intended (see SECURITY
NOTES below).

=end JM-comment

感嘆符 ('!') は、I<エイリアス>の中と C<Cmnd> の前で、
論理学の I<not> オペレータとして使うことができる。
これにより、ある値を排除できる。
しかし C<!> を
組込みの C<ALL> エイリアスと組み合わせて、
ユーザが "全てではなく一部の" コマンドを実行できるように
しようとしても、意図したように動作することは稀である点に注意すること
(以下の「セキュリティ上の注意」を参照)。

=begin JM-comment

Long lines can be continued with a backslash ('\') as the last
character on the line.

=end JM-comment

長い行は、バックスラッシュ ('\') を行の最後の文字にすれば
続けることができる。

=begin JM-comment

Whitespace between elements in a list as well as special syntactic
characters in a I<User Specification> ('=', ':', '(', ')') is optional.

=end JM-comment

リストにおける構成要素間の空白や、
I<ユーザ設定>における特殊な構文文字
('=', ':', '(', ')') は、なくてもよい。

=begin JM-comment

The following characters must be escaped with a backslash ('\') when
used as part of a word (e.g. a username or hostname):
'@', '!', '=', ':', ',', '(', ')', '\'.

=end JM-comment

'@', '!', '=', ':', ',', '(', ')', '\'
という文字をワード (例えば、ユーザ名やホスト名) の一部として使う場合は、
バックスラッシュ ('\') でエスケープしなければならない。

=head1 EXAMPLES

=begin JM-comment

Below are example I<sudoers> entries.  Admittedly, some of
these are a bit contrived.  First, we define our I<aliases>:

=end JM-comment

以下は I<sudoers> エントリの例である。
正直なところ、いくつかは少しわざとらしい。
始めにI<エイリアス>を定義する。

 # User alias specification
 User_Alias	FULLTIMERS = millert, mikef, dowdy
 User_Alias	PARTTIMERS = bostley, jwfox, crawl
 User_Alias	WEBMASTERS = will, wendy, wim

 # Runas alias specification
 Runas_Alias	OP = root, operator
 Runas_Alias	DB = oracle, sybase

 # Host alias specification
 Host_Alias	SPARC = bigtime, eclipse, moet, anchor :\
		SGI = grolsch, dandelion, black :\
		ALPHA = widget, thalamus, foobar :\
		HPPA = boa, nag, python
 Host_Alias	CUNETS = 128.138.0.0/255.255.0.0
 Host_Alias	CSNETS = 128.138.243.0, 128.138.204.0/24, 128.138.242.0
 Host_Alias	SERVERS = master, mail, www, ns
 Host_Alias	CDROM = orion, perseus, hercules

 # Cmnd alias specification
 Cmnd_Alias	DUMPS = /usr/bin/mt, /usr/sbin/dump, /usr/sbin/rdump,\
			/usr/sbin/restore, /usr/sbin/rrestore
 Cmnd_Alias	KILL = /usr/bin/kill
 Cmnd_Alias	PRINTING = /usr/sbin/lpc, /usr/bin/lprm
 Cmnd_Alias	SHUTDOWN = /usr/sbin/shutdown
 Cmnd_Alias	HALT = /usr/sbin/halt, /usr/sbin/fasthalt
 Cmnd_Alias	REBOOT = /usr/sbin/reboot, /usr/sbin/fastboot
 Cmnd_Alias	SHELLS = /usr/bin/sh, /usr/bin/csh, /usr/bin/ksh, \
			 /usr/local/bin/tcsh, /usr/bin/rsh, \
			 /usr/local/bin/zsh
 Cmnd_Alias	SU = /usr/bin/su

=begin JM-comment

Here we override some of the compiled in default values.  We want
B<sudo> to log via syslog(3) using the I<auth> facility in all
cases.  We don't want to subject the full time staff to the B<sudo>
lecture, user B<millert> need not give a password, and we don't
want to set the C<LOGNAME> or C<USER> environment variables when
running commands as root.  Additionally, on the machines in the
I<SERVERS> C<Host_Alias>, we keep an additional local log file and
make sure we log the year in each log line since the log entries
will be kept around for several years.

=end JM-comment

以下の設定では、コンパイル時のデフォルト値のいくつかを上書きする。
B<sudo> に syslog(3) を使って
全ての場合について I<auth> 機能分類でログを記録させる。
フルタイムのスタッフには、B<sudo> のレクチャーを受ける必要をなくす。
またユーザ B<millert> はパスワードを入力しなくてよいようにする。
そしてコマンドが root として実行されるときに
環境変数 C<LOGNAME> と C<USER> を設定しないようにする。
さらに C<Host_Alias> の I<SERVERS> にある計算機に
(syslog とは別に) ローカルのログファイルを保存し、
長いログエントリを数年に渡り保存するためにログの各行に年を記録する。

 # Override built in defaults
 Defaults		syslog=auth
 Defaults>root		!set_logname
 Defaults:FULLTIMERS	!lecture
 Defaults:millert	!authenticate
 Defaults@SERVERS	log_year, logfile=/var/log/sudo.log

=begin JM-comment

The I<User specification> is the part that actually determines who may
run what.

=end JM-comment

I<ユーザ設定>は、誰が何を実行できるかを実際に決定している部分である。

 root		ALL = (ALL) ALL
 %wheel		ALL = (ALL) ALL

=begin JM-comment

We let B<root> and any user in group B<wheel> run any command on any
host as any user.

=end JM-comment

B<root> と B<wheel> グループのユーザに、
全てのユーザとして、全てのホスト上のコマンドを実行できるようにしている。

 FULLTIMERS	ALL = NOPASSWD: ALL

=begin JM-comment

Full time sysadmins (B<millert>, B<mikef>, and B<dowdy>) may run any
command on any host without authenticating themselves.

=end JM-comment

フルタイムのシステム管理者 (B<millert>, B<mikef>, B<dowdy>) は、
自分自身の認証をすることなく、全てのホスト上で全てのコマンドが実行できる。

 PARTTIMERS	ALL = ALL

=begin JM-comment

Part time sysadmins (B<bostley>, B<jwfox>, and B<crawl>) may run any
command on any host but they must authenticate themselves first
(since the entry lacks the C<NOPASSWD> tag).

=end JM-comment

パートタイムのシステム管理者 (B<bostley>, B<jwfox>, B<crawl>) は、
全てのホスト上で全てのコマンドが実行できるが、
(エントリに C<NOPASSWD> タグがないので)
最初に自分自身の認証が必要である。

 jack		CSNETS = ALL

=begin JM-comment

The user B<jack> may run any command on the machines in the I<CSNETS> alias
(the networks C<128.138.243.0>, C<128.138.204.0>, and C<128.138.242.0>).
Of those networks, only C<128.138.204.0> has an explicit netmask (in
CIDR notation) indicating it is a class C network.  For the other
networks in I<CSNETS>, the local machine's netmask will be used
during matching.

=end JM-comment

ユーザ B<jack> は、I<CSNETS> エイリアス 
(ネットワーク C<128.138.243.0>, 
C<128.138.204.0>, C<128.138.242.0>)
にある計算機上で、全てのコマンドを実行できる。
これらのネットワークのうち、
ネットワーク C<128.138.204.0> だけに
クラス C ネットワークを示す明示的な (CIDR 表記の) ネットマスクがある。
I<CSNETS> にある他のネットワークについては、
マッチングの際にローカルの計算機のネットマスクが使われる。

 lisa		CUNETS = ALL

=begin JM-comment

The user B<lisa> may run any command on any host in the I<CUNETS> alias
(the class B network C<128.138.0.0>).

=end JM-comment

ユーザ B<lisa> は、I<CUNETS> エイリアス
(クラス B ネットワーク C<128.138.0.0>) にある
全てのホストで、全てのコマンドを実行できる。

 operator	ALL = DUMPS, KILL, PRINTING, SHUTDOWN, HALT, REBOOT,\
		/usr/oper/bin/

=begin JM-comment

The B<operator> user may run commands limited to simple maintenance.
Here, those are commands related to backups, killing processes, the
printing system, shutting down the system, and any commands in the
directory F</usr/oper/bin/>.

=end JM-comment

ユーザ B<operator> は、
簡単なメンテナンス用のコマンドに限って実行することができる。
これらはディレクトリ I</usr/oper/bin/> にあるコマンド全てで、
バックアップ・プロセスの kill・印刷システム・システムのシャットダウン、
といったことに関連したものである。

 joe		ALL = /usr/bin/su operator

=begin JM-comment

The user B<joe> may only su(1) to operator.

=end JM-comment

ユーザ B<joe> は、operator になるための su(1) しか実行できない。

 pete		HPPA = /usr/bin/passwd [A-z]*, !/usr/bin/passwd root

=begin JM-comment

The user B<pete> is allowed to change anyone's password except for
root on the I<HPPA> machines.  Note that this assumes passwd(1)
does not take multiple usernames on the command line.

=end JM-comment

ユーザ B<pete> は、I<HPPA> 計算機上で
root 以外の全てのユーザのパスワードを変更することが許可されている。
ここでは、passwd(1) がコマンドラインから
複数のユーザ名を受け付けないことを仮定している点に注意すること。

 bob		SPARC = (OP) ALL : SGI = (OP) ALL

=begin JM-comment

The user B<bob> may run anything on the I<SPARC> and I<SGI> machines
as any user listed in the I<OP> C<Runas_Alias> (B<root> and B<operator>).

=end JM-comment

ユーザ B<bob> は、I<SPARC> と I<SGI> 計算機上で、
C<Runas_Alias> の I<OP> にリストされたユーザ
(B<root> と B<operator>) として、全てのコマンドを実行できる。

 jim		+biglab = ALL

=begin JM-comment

The user B<jim> may run any command on machines in the I<biglab> netgroup.
B<Sudo> knows that "biglab" is a netgroup due to the '+' prefix.

=end JM-comment

ユーザ B<jim> は、I<biglab> ネットグループにある全ての計算機で、
全てのコマンドを実行できる。
B<sudo> は、"biglab" がネットグループであることを
プレフィックス '+' によって知る。

 +secretaries	ALL = PRINTING, /usr/bin/adduser, /usr/bin/rmuser

=begin JM-comment

Users in the B<secretaries> netgroup need to help manage the printers
as well as add and remove users, so they are allowed to run those
commands on all machines.

=end JM-comment

B<secretaries> ネットグループに属するユーザは、
ユーザの追加・削除だけでなくプリンタ管理の補助をする必要があるので、
これらのコマンドを全ての計算機上で実行することが許可されている。

 fred		ALL = (DB) NOPASSWD: ALL

=begin JM-comment

The user B<fred> can run commands as any user in the I<DB> C<Runas_Alias>
(B<oracle> or B<sybase>) without giving a password.

=end JM-comment

ユーザ B<fred> は、C<Runas_Alias> の
I<DB> にあるユーザ
(B<oracle> と B<sybase>) として、パスワードなしでコマンドを実行できる。

 john		ALPHA = /usr/bin/su [!-]*, !/usr/bin/su *root*

=begin JM-comment

On the I<ALPHA> machines, user B<john> may su to anyone except root
but he is not allowed to give su(1) any flags.

=end JM-comment

I<ALPHA> 計算機上で、ユーザ B<john> は、
su で root 以外の全てのユーザになれる。
しかし su(1) にフラグを指定することはできない。

 jen		ALL, !SERVERS = ALL

=begin JM-comment

The user B<jen> may run any command on any machine except for those
in the I<SERVERS> C<Host_Alias> (master, mail, www and ns).

=end JM-comment

ユーザ B<jen> は、C<Host_Alias> の
I<SERVERS> にある計算機
(master, mail, www, ns) 以外で、全てのコマンドを実行できる。

 jill		SERVERS = /usr/bin/, !SU, !SHELLS

=begin JM-comment

For any machine in the I<SERVERS> C<Host_Alias>, B<jill> may run
any commands in the directory /usr/bin/ except for those commands
belonging to the I<SU> and I<SHELLS> C<Cmnd_Aliases>.

=end JM-comment

C<Host_Alias> の I<SERVERS> にある計算機で、
B<jill> は /usr/bin ディレクトリにある全てのコマンドを実行できる。
ただし、C<Cmnd_Aliases> の
I<SU> と I<SHELLS> に属しているコマンドは除く。

 steve		CSNETS = (operator) /usr/local/op_commands/

=begin JM-comment

The user B<steve> may run any command in the directory /usr/local/op_commands/
but only as user operator.

=end JM-comment

ユーザ B<steve> は、ディレクトリ /usr/local/op_commands/ にある
全てのコマンドを実行できる。ただし、ユーザ operator としてのみ実行できる。

 matt		valkyrie = KILL

=begin JM-comment

On his personal workstation, valkyrie, B<matt> needs to be able to
kill hung processes.

=end JM-comment

B<matt> は、彼の個人のワークステーション valkyrie で、
ハングしたプロセスを kill できる必要がある。

 WEBMASTERS	www = (www) ALL, (root) /usr/bin/su www

=begin JM-comment

On the host www, any user in the I<WEBMASTERS> C<User_Alias> (will,
wendy, and wim), may run any command as user www (which owns the
web pages) or simply su(1) to www.

=end JM-comment

ホスト www で、C<User_Alias> の
I<WEBMASTERS> にあるユーザ
(will, wendy, wim) は、(web ページを所有している) ユーザ www として
全てのコマンドを実行できる。
また、単に su(1) で www になれる。

 ALL		CDROM = NOPASSWD: /sbin/umount /CDROM,\
		/sbin/mount -o nosuid\,nodev /dev/cd0a /CDROM

=begin JM-comment

Any user may mount or unmount a CD-ROM on the machines in the CDROM
C<Host_Alias> (orion, perseus, hercules) without entering a password.
This is a bit tedious for users to type, so it is a prime candidate
for encapsulating in a shell script.

=end JM-comment

全てのユーザは、C<Host_Alias> の
CD-ROM にある計算機 (orion, perseus, hercules) で
パスワードなしで CD-ROM のマウントとアンマウントができる。
このコマンドをユーザが入力するのは長くて大変なので、
シェルスクリプトに書いてカプセル化してしまう方がよい。

=head1 SECURITY NOTES

=begin JM-comment

It is generally not effective to "subtract" commands from C<ALL>
using the '!' operator.  A user can trivially circumvent this
by copying the desired command to a different name and then
executing that.  For example:

=end JM-comment

'!' オペレータを使って C<ALL> から
コマンドを「差し引く」ことは、一般に効果的ではない。
ユーザは、欲しいコマンドを別な名前でコピーして実行すれば、
これを簡単に回避できてしまう。
例を挙げる。

    bill	ALL = ALL, !SU, !SHELLS

=begin JM-comment

Doesn't really prevent B<bill> from running the commands listed in
I<SU> or I<SHELLS> since he can simply copy those commands to a
different name, or use a shell escape from an editor or other
program.  Therefore, these kind of restrictions should be considered
advisory at best (and reinforced by policy).

=end JM-comment

上の例では、実際には I<SU> と
I<SHELLS> にリストされているコマンドを
B<bill> に実行させないようにすることができない。
なぜなら、bill は、これらのコマンドを別な名前にコピーしたり、
エディタや他のコマンドのシェルエスケープから使えるからである。
よって、このような制限は、せいぜい補助的なものと考えるべきである
(さらにポリシーで強化すべきである)。

=head1 CAVEATS

=begin JM-comment

The I<sudoers> file should B<always> be edited by the B<visudo>
command which locks the file and does grammatical checking. It is
imperative that I<sudoers> be free of syntax errors since B<sudo>
will not run with a syntactically incorrect I<sudoers> file.

=end JM-comment

I<sudoers> ファイルは、B<常に> B<visudo> コマンドで編集すべきである。
このコマンドは、ファイルをロックし、文法チェックをする。
B<sudo> は
I<sudoers> ファイルが文法的に間違っていると実行できないので、
I<sudoers> にはエラーがひとつも無いようにしなければならない。

=begin JM-comment

When using netgroups of machines (as opposed to users), if you
store fully qualified hostnames in the netgroup (as is usually the
case), you either need to have the machine's hostname be fully qualified
as returned by the C<hostname> command or use the I<fqdn> option in
I<sudoers>.

=end JM-comment

(ユーザのではなく) 計算機のネットグループを使う場合、
(よくあるように) ネットグループに
完全なドメイン名付きのホスト名を入れる場合、
ホスト名は C<hostname> コマンドで返される
完全なドメイン名付きのものである必要がある。
また I<sudoers> に I<fqdn> オプションを指定する必要がある。

=head1 FILES

=begin JM-comment

 @sysconfdir@/sudoers		List of who can run what
 /etc/group		Local groups file
 /etc/netgroup		List of network groups

=end JM-comment

 @sysconfdir@/sudoers		誰が何を実行できるかのリスト
 /etc/group		ローカルのグループファイル
 /etc/netgroup		ネットワークグループのリスト

=head1 SEE ALSO

rsh(1), su(1), fnmatch(3), sudo(8), visudo(8)
