Provided by: manpages-ja_0.5.0.0.20100315-1_all bug

SUDOERSン
       すでに説明したように、sudo の動作は Default_Entry
       行によって変更することがでい襦 Defaults に与えることので-
       るパラメータについて、サポートされているも
       ののすべてを、タイプ別にまとめて以下に列挙する。

      :

       always_set_home これをセットすると、sudo は環曲竸 HOME を
                       変身対象ユーザのホームディレクトリに設定する (-u
                       オプションが 使用されないかぎり、それは root
                       である)。事実上、暗黙のうちに sudo-H
                       オプションが常に指定されることになるわけだ。このフラグは
                       デフォルトでは off である。

       authenticate    これをセットすると、ユーザはコマンドの実行を許可される前に、パスワードで
                       (あるいは、ほかの認証方法で)
                       認証をしなければならない。このデフォルト値は PASSWD や
                       NOPASSWD タグで変更でい襦 このフラグはデフォルトでは
                       on である。

       closefrom_override
                       これをセットすると、ユーザが sudo-C オプションを
                       使用でい襪茲Δ砲覆襦-C オプションというのは、sudo が
                       開いたファイルを閉じていくと-
                       、どのファイル・ディスクリプタから
                       クローズしていくかというデフォルトの始点を変更するものだ。このフラグは
                       デフォルトでは off である。

       env_editor      これをセットすると、visudo
                       はデフォルトのエディタ・リストを 利用する前に、環曲竸
                       EDITOR や VISUAL の値を 使用するようになる。これがセ-
                       ュリティホールになりかねないことに
                       注意してほしい。ユーザが root
                       として任意のコマンドをログに杵燭気譴襪海箸覆 実行で-
                       るようになるからだ。こうした環曲竸瑤鰺用するとい痢
                       env_editor を邑にするよりも安全な方法は、 sudoers
                       ファイルの editor オプションに
                       コロンで区切ったエディタのリストを書いておくことだ。そうすれば、
                       visudo が EDITOR や VISUAL を使うのは、 それが editor
                       オプションに指定した値とマッチしたとい世韻
                       なる。このフラグはデフォルトでは off である。

       env_reset       これをセットすると、sudo は環-
                       を以下の変数のみを含むように
                       設定し直す。すなわち、LOGNAME, SHELL, USER, USERNAME
                       それに SUDO_* である。その後で さらに、sudo
                       を起動するユーザの環兇砲△詈竸瑤里Δ繊 env_keep や
                       env_check のリストに マッチするものが追加される。
                       env_keep や env_check
                       のリストにデフォルトでどんな変数が
                       含まれているかは、root ユーザが sudo-V
                       オプション付い 実行すれば、見ることがで-
                       る。なお、sudoers ファイルの secure_path
                       オプションが設定されているとい蓮△修涼佑 環曲竸 PATH
                       として使用されることになる。 このフラグはデフォルトでは
                       on である。

       fqdn            sudoers ファイルで完全修飾ホスト名を使用したかったら、
                       このフラグをセットするとよい。すなわち、myhost
                       ではなく、 myhost.mydomain.edu
                       を使いたい場合だ。そのとい任癲△修Δ靴燭韻譴弌
                       短縮形も使える (両方を混ぜて使うことだってで-
                       る)。気を付けて ほしいのは、fqdn を 邑にすると、sudo
                       は DNS へ 問い合わせをしなければならないので、DNS
                       サービスが 稼働していない場合、sudo
                       が使えなくなるかもしれないということだ
                       (たとえば、マシンがネットワークに接続していない場合)。
                       もう一つ気を付けるべい海箸ある。 DNS
                       が知っているホストの正式名を使わなければならないということだ。
                       言い換えれば、ホストのエイリアス (CNAME のエントリ) を
                       使ってはいけない。パフォーマンスの問題もあるし、DNS
                       からエイリアスを
                       すべて取得する方法はないからでもある。マシンのホスト名が
                       (hostname コマンドで返ってくるものが) すでに
                       完全修飾名になっているならば、fqdn
                       をセットする必要はないだろう。
                       このフラグはデフォルトでは off である。

       ignore_dot      これをセットすると、環曲竸 PATH 中に '.' や ''
                       (カレントディレクトリ) があっても、sudo
                       はそれを無視する。 PATH
                       そのものは変更されない。このフラグは デフォルトでは off
                       である。

       ignore_local_sudoers
                       LDAP の方でこのフラグをセットすると、/etc/sudoers の
                       解析がスゥ奪廚気譴襦このフラグは、ローカルにある
                       sudoers ファイルの 使用を禁じて、LDAP
                       のみを使うようにしたい企業のためにある。 たちの-
                       いオペレータが /etc/sudoers に手を加えて自分の権限を
                       増やそうとしても、そうした-
                       だくみは阻止されるわけだ。このオプションが
                       設定されているとい蓮/etc/sudoers
                       ファイルは存在する必要すらない。
                       このオプションは、マッチする LDAP の具体的なエントリが
                       一つもなかったとい法△匹振舞うべいを sudo
                       に指示するものだから、 これを指定した sudoOption は
                       cn=defaults のセクションに
                       なければ意味がない。このフラグはデフォルトでは off
                       である。

       insults         これをセットすると、不正なパスワードが入力されたとぁ
                       sudo がユーザに安屬鬚弔。このフラグはデフォルトでは
                       off である。

       log_host        これをセットすると、ホスト名が (syslog 経由ではない)
                       sudo の ログファイルに-
                       録されることになる。このフラグはデフォルトでは off
                       である。

       log_year        これをセットすると、四桁の年が (syslog 経由ではない)
                       sudo の ログファイルに-
                       入されることになる。このフラグはデフォルトでは off
                       である。

       long_otp_prompt S/KeyOPIE のような One Time Password (OTP) ス-
                       ームを採用しているとい砲海譴鰺効にすると、チャレンジを
                       ローカルウィンドウにカット・アンド・ペーストしやすいように、
                       二行のプロンプトが使用される。デフォルトのプロンプトほど見栄えはよくないが、
                       こちらの方が便利だと思う人もいる。デフォルトではこのフラグは
                       off である。

       mail_always     ユーザが sudo を実行するたびに、mailto
                       ユーザにメールを送る。 このフラグはデフォルトでは off
                       である。

       mail_badpass    sudo を実行するユーザが正しいパスワードを入力しないと、
                       mailto ユーザにメールを送る。このフラグはデフォルトでは
                       off である。

       mail_no_host    これをセットすると、sudo を起動したユーザが sudoers
                       ファイルに
                       存在するものの、使用中のホストでコマンドの実行を許可されていない場合、
                       mailto
                       ユーザにメールを送付する。このフラグはデフォルトでは
                       off である。

       mail_no_perms   これをセットすると、sudo を起動したユーザが sudo
                       の使用を
                       許可されているが、実行しようとしているコマンドが
                       sudoers ファイルの
                       そのユーザのエントリに登録されていないか、明示的に禁止されている場合、
                       mailto
                       ユーザにメールを送付する。このフラグはデフォルトでは
                       off である。

       mail_no_user    これをセットすると、sudo を起動したユーザが sudoers
                       ファイルに 戯椶気譴討い覆ぞ豺隋mailto
                       ユーザにメールを送付する。 このフラグはデフォルトでは
                       on である。

       noexec          これをセットすると、sudo
                       を通して実行されるすべてのコマンドが、 EXEC
                       タグで無効にされないかぎり、あたかも NOEXEC
                       タグが設定されているかのごとく振舞うようになる。
                       上述の「NOEXEC _
                       EXEC」の説明、および、このマニュアルの
                       終わりの方にある「シェル・エスケープを防止する」というセクションを
                       参照してほしい。このフラグはデフォルトでは off である。

       path_info       通常 sudo は、環曲竸 PATH 中にコマンドが
                       見付からないと、ユーザにそのことを知らせる。これを利用すれば、
                       一般ユーザにアクセス権のない実行ファイルのありかについて情報を
                       収集で-
                       るという理由から、この動作を無効にしたいサイトもあるかもしれない。
                       その場合の欠点は、実行ファイルが単にユーザの PATH 中に
                       なかっただけの場合でも、実行の許可がないと sudo
                       がユーザに告げる
                       ことになって、実情がわかりにくいかもしれないことである。このフラグは
                       デフォルトでは on である。

       passprompt_override
                       通常、passprompt
                       オプションによって指定されたパスワードプロンプトが
                       使用されるのは、PAM のようなシステムが用意している
                       パスワードプロンプトが "Password:"
                       という文字列にマッチしている と-
                       だけである。passprompt_override をセットすると、
                       passprompt が無条件で使われることになる。このフラグは
                       デフォルトでは off である。

       preserve_groups デフォルトでは、sudo
                       は所属グループの初期値として、変身対象ユーザが
                       所属しているグループのリストを設定する。
                       preserve_groups を セットすると、sudo
                       を実行するユーザの所属グループのリストが、
                       変更されずにそのまま維持される。とは言え、実グループ ID
                       や 実効グループ ID
                       が変身対象ユーザのそれに設定されることに変わりはない。
                       このフラグはデフォルトでは off である。

       pwfeedback      ほかのたいていの Unix プログラムと同様、sudo
                       はパスワードを 読み込むとぁ▲妊侫ルトでは、ユーザが
                       Return (または Enter) ァ爾 押すまで、エコーを off
                       にする。この動作にとまどうユーザが存在する。 彼らには
                       sudo が急に反応しなくなったように見えるのだ。
                       pwfeedback をセットすると、ユーザが-
                       ーを押すたびに、sudo が
                       目に見える反応を返すようになる。これには、セ-
                       ュリティ上の問題が
                       あることに注意してほしい。横で見ている人が、打ち込まれたパスワードの
                       文字数を特定することがで-
                       るかもしれないのだ。このフラグはデフォルトでは off
                       である。

       requiretty      これをセットすると、sudo
                       が実行されるのは、ユーザが実際の tty に
                       ログインしたとい世韻砲覆襦すなわち、sudo を実行で-
                       るのは、 ログイン・セッションからだけであって、 cron(8)
                       や cgi-bin
                       スクリプトといった、ほかの方法を介して実行する
                       ことはでい覆い箸いΔ海箸澄このフラグは、デフォルトでは
                       off である。

       root_sudo       これをセットすると、root も sudo を実行で-
                       るようになる。
                       このフラグを無効にすると、ユーザがたとえば "sudo sudo
                       /bin/sh" と いったように sudo
                       コマンド忙箸辰董▲襦璽肇轡Д襪
                       獲得することがでい覆なる。ところで、 root_sudo が off
                       だと、root が sudoedit まで実行でい覆なる
                       ことに注意してほしい。 root_sudo を無効にしても、セ-
                       ュリティが実際に向上するわけではない。
                       このフラグが存在しているのは、もっぱら歴史的な理由からなのだ。
                       このフラグはデフォルトでは on である。

       rootpw          これをセットすると、sudo
                       はプロンプトで、起動したユーザの
                       パスワードではなく、root
                       のパスワードを要求するようになる。
                       このフラグはデフォルトでは off である。

       runaspw         これをセットすると、sudo
                       はプロンプトで、起動したユーザの
                       パスワードではなく、sudoers ファイルの runas_default
                       オプションが 定義しているユーザーの (デフォルトでは
                       root である)
                       パスワードを要求する。このフラグはデフォルトでは off
                       である。

       set_home        これがセットされているとぁsudo-s オプション付い
                       起動すると、環曲竸 HOME が変身対象ユーザの (-u
                       オプションが使用されないかぎり、それは root である)
                       ホームディレクトリに設定される。すなわち、 -s
                       オプションが -H
                       オプションを事実上兼ねることになるわけだ。このフラグは
                       デフォルトでは off である。

       set_logname     通常 sudo は環曲竸 LOGNAME, USER, USERNAME を
                       変身対象ユーザの名前 (-u
                       オプションが指定されていない場合、 普通は root)
                       にセットする。しかし、プログラムによっては (たとえば、
                       RCS リビジョンコントロールシステムがその一つだが)
                       ユーザが 実際には誰であるかを判定するのに LOGNAME を
                       使用していることがあるので、この振舞いを変更することが望ましい場合もある。
                       set_logname オプションに '!'
                       を付けて否定することで、それがでい襦 なお env_reset
                       オプションを無効にしていない場合、 env_keep
                       リストの項目が set_logname による値を 上書-
                       することになるので、注意してほしい。このフラグはデフォルトでは
                       on である。

       setenv          これをセットすると、ユーザがコマンドラインから
                       env_reset オプションを 無効にで-
                       るようになる。さらに、コマンドラインから設定する環-
                       変数が env_check, env_delete, env_keep による制限を
                       受けなくなる。それ故、そのようなやり方で変数を設定することを
                       許可するのは、信用でい襯罅璽兇里澆妨造襪戮-
                       だ。このフラグは デフォルトでは off である。

       shell_noargs    これがセットされているとぁsudo を引-
                       数なしで起動すると、 sudo-s
                       オプションが指定されたかのように振舞う。 すなわち、root
                       ユーザとしてシェルを実行するわけだ (シェルは、 環曲竸
                       SHELL がセットされていれば、それによって決まるし、
                       セットされていなければ、sudo を起動したユーザの
                       /etc/passwd エントリに
                       登録されたものになる)。このフラグはデフォルトでは off
                       である。

       fast_glob       通常 sudo はパス名のマッチングをするとぁglob(3) 関数を
                       使用して、シェル・スタイルのワイルドカード展開 (glob)
                       を行う。しかし、 glob(3)
                       はファイルシステムにアクセスするので、指定パターンに
                       よっては、作業を完了するまでに時間がかかることがある。
                       必要な時にマウントするようになっている
                       (つまりオートマウントの)
                       ネットワーク・ファイル・システムを参照すると-
                       は、とりわけ時間がかかる。 fast_glob
                       オプションを指定すると、sudofnmatch(3)
                       関数を使うようになるが、こちらの関数はマッチングの際に
                       ファイルシステムにアクセスしない。fast_glob の欠点は、
                       ./ls../bin/ls のような相対パスに対するマッチが で-
                       ないことである。このフラグはデフォルトでは off である。

       stay_setuid     通常 sudo がコマンドを実行するとぁ⊆ UID と実効 UID は
                       変身対象ユーザ (デフォルトでは root)
                       のものにセットされる。このオプションは
                       その振舞いを変更して、sudo を起動したユーザの UID が、
                       そのまま実 UID として残るようにする。言い換えると、sudo
                       が setuid
                       ラッパーとして動作するようになるわけだ。プログラムを
                       setuid で
                       動かすと、危険をもたらしかねないという理由から、ある種の機能を
                       使えないようにしているシステムでは、このオプションが役に立つかもしれない。
                       このオプションは、 setreuid() 関数なり setresuid()
                       関数なりを 持っているシステムでのみ邑である。
                       このフラグはデフォルトでは off である。

       targetpw        これをセットすると、sudo
                       はプロンプトで、起動したユーザのパスワード ではなく、-u
                       オプションで指定されたユーザ (デフォルトでは root) の
                       パスワードを要求する。この設定をすると、-u
                       オプションの引た瑤箸靴董 passwd
                       データベースに登録されていない uid
                       が使えなくなることに注意してほしい。
                       このフラグはデフォルトでは off である。

       tty_tickets     これをセットすると、ユーザは tty
                       ごとに認証をしなければならなくなる。 sudo
                       は通常、チケットディレクトリ (訳注:たとえば
                       /var/run/sudo) にある、sudo
                       を実行しているユーザと同じ名前のディ
                       レクトリを認証に使用する。しかし、このフラグが-
                       効になっている場合は、
                       そのディレクトリにある、ユーザがログインしている tty
                       に対応する名前の
                       ファイルを使用することになるのだ。このフラグはデフォルトでは
                       off である。

       umask_override  これをセットすると、sudo は umask を sudoers の umask
                       オプションで指定されたとおりの値に、変更を加えることなく設定する。
                       このことによって、ユーザ自身の umask
                       値よりもっと緩やかな umask 値を sudoers
                       で指定することが可能になる。sudo の昔の動作と
                       同じになるわけだ。 umask_override
                       をセットしない場合、現在の sudo は umask を、 ユーザの
                       umask 値と sudoers で指定した umask 値とのビット和に
                       設定することになっている。このフラグはデフォルトでは
                       off である。

       visiblepw       デフォルトでは、ユーザがパスワードを入力しなければならないと-
                       に、 使用しているターミナルでエコーの抑制がで-
                       なかったら、 sudo
                       は実行を拒否するようになっている。これに対し、
                       visiblepw
                       フラグが設定されていると、パスワードがスクリーンに
                       表示されてしまう場合でも、sudo
                       はプロンプトを出して、パスワードを
                       求める。この動作によって、 rsh(1) は tty
                       を割り当てないにもかかわらず、 "rsh somehost sudo ls"
                       といった操作の実行が可能になるわけだ。
                       このフラグはデフォルトでは off である。

      :

       closefrom       sudo
                       はコマンドを実行する前に、標準入力、標準出力、標準エラー
                       (すなわち、ファイルディスクリプタ 0-2 である)
                       を除いて、
                       オープンしたすべてのファイル・ディスクリプタをクローズする。
                       closefrom オプションを使用すると、0-2 以外の
                       どのファイル・ディスクリプタからクローズして行くかを指定することがで-
                       る。 デフォルトは 3 である。

       passwd_tries    sudo が「失敗」をログに-
                       録して終了する前に、ユーザがパスワードを 入力で-
                       る回数。デフォルトは 3。

      :

       loglinelen      sudo
                       用ログファイルの一行あたりの文字数。この値は、ログファイルを
                       見やすくするために改行する位置を決めるのに使用される。この値は、
                       syslog
                       経由のログファイルには影響せず、直接ファイルにログを書-
                       出すとい里 効果がある。デフォルトは 80 である
                       (改行をしないように するには、値を 0 にするか、頭に '!'
                       を付けて、このオプションを否定する)。

       passwd_timeout  sudo
                       のパスワードプロンプトが時間切れになるまでの分単位の時間。
                       デフォルトは 5 である。これを 0 にセットする
                       と、パスワードプロンプトが時間切れなしになる。

       timestamp_timeout
                       sudo
                       がパスワードを再び要求するようになるまでの時間を分単位で
                       指定する。デフォルトでは 5 である。これを 0 に
                       セットすると、毎回パスワードを要求するようになる。0
                       より小さい値に
                       セットした場合は、ユーザのタイムスタンプが期限切れになることがない。
                       ユーザが sudo -v と sudo -k を
                       実行することによって、タイムスタンプを自分で作ったり、消したりで-
                       るように したかったら、この手を使えばよい。

       umask           コマンドを実行しているとい忙藩僂垢 umask 値。ユーザの
                       umask 値をそのまま 使いたかったら、'!'
                       を頭に付けて、このオプションを否定するか、0777 に
                       セットする。このオプションの値が 0777
                       以外の場合、実際に使用される umask 値は、ユーザの umask
                       値と umask オプションで指定する umask 値との
                       ビット和になる。そのことによって、sudo
                       がコマンドを実行するとい umask 値が、ユーザの umask
                       値より低くならないようになっているわけだ。 なお、umask
                       オプションのデフォルトの値は、0022 である。 PAM
                       を使用しているシステムでは、 PAM のデフォルト設定で
                       umask 値を指定することがでい襪、その場合は、それが
                       sudoers で 指定した値を上書い垢襪海箸肪躇佞靴討曚靴ぁ

      :

       badpass_message ユーザが不正なパスワードを入力したと-
                       に表示するメッセージ。 insults フラグが-
                       効になっていないかぎり、デフォルトは 「Sorry, try
                       again.」である。

       editor          visudo で使用でい襯┘妊タをコロン (':')
                       で区切ったリスト。 visudo は、可能ならば、ユーザの
                       EDITOR 環曲竸瑤醗戝廚 たエディタを選択する。それがで-
                       ないとい蓮△海離螢好箸砲△襯┘妊タで、
                       実際に存在し、かつ実行可能な最初のエディタを使用する。デフォルトは使用
                       システムにおける vi のパスである。

       mailsub         mailto ユーザに送付するメールの件名。エスケープ文字 %h
                       はマシンのホスト名に展開される。デフォルトは「***
                       SECURITY information for %h ***」。

       noexec_file     ライブラリ関数 execv(), execve(), fexecve() の ダミー版
                       (エラーを返すだけの関数) が入っている共-
                       ライブラリのパス。 これは、LD_PRELOAD
                       やそれに相当するものを サポートしているシステムで
                       noexec 機能を実現するために使用される。 デフォルトでは
                       /usr/local/libexec/sudo_noexec.so になっている。

       passprompt      パスワードを要求すると-
                       に使用するデフォルトのプロンプト。-p オ プションや環-
                       変数 SUDO_PROMPT によって変更すること がで-
                       る。以下のパーセント (`%') エスケープが使用で い襦

                       %H  ドメイン名付い離蹇璽ルホスト名に展開
                           (マシンのホスト名が完全修飾名か、 fqdn
                           オプションがセットされている場合に邑)

                       %h  ドメイン名なしのローカルホスト名に展開

                       %p  パスワードを要求されているユーザ名に展開 (sudoers
                           ファイルの rootpw, targetpw, runaspw
                           フラグを尊重する)

                       %U  変身対象ユーザの (デフォルトでは root)
                           ログイン名に展開

                       %u  sudo を起動するユーザのログイン名に展開

                       %%  連続した二個の % は、一個の % 文字
                           そのものを意味する

                       デフォルトの値は「Password:」である。

       runas_default   コマンドラインで -u オプションが指定されていないと-
                       の、デフォルトの 変身対象ユーザ。デフォルトでは root
                       になっている。 runas_default
                       をセットするなら、Runas_Alias を
                       指定するよりも前にやらなければならないことに注意すること。

       syslog_badpri   ユーザが認証に失敗したとい忙藩僂垢 syslog の優先順位
                       (priority)。デ フォルトでは alert になっている。

       syslog_goodpri  ユーザが認証に成功したとい忙藩僂垢 syslog の優先順位
                       (priority)。デ フォルトでは notice になっている。

       sudoers_locale  sudoers ファイルを解析すると-
                       に使用するロケール。ロケールの変更は、 sudoers
                       の解釈に影響があるかもしれないので、注意してほしい。
                       デフォルトでは "C" になっている。

       timestampdir    sudo
                       がタイムスタンプ・ファイルを置くディレクトリ。デフォルト
                       は /var/run/sudo である。

       timestampowner  タイムスタンプ・ディレクトリとそこに置かれるタイムスタンプの所-
                       者。デ フォルトは root である。

      :

       askpass     askpass
                   で指定するのは、ヘルパー・プログラムの絶対パスである。
                   このヘルパー・プログラムは、ターミナルを利用でい覆い箸に、
                   ユーザのパスワードを読み込むために使用する。たとえば、sudo
                   が (テゥ好肇戞璽垢任呂覆)
                   グラフィカルなアプリケーションから実行される
                   といった場合だ。askpass
                   で指定されたヘルパー・プログラムは、 渡された引-
                   数をプロンプトとして表示し、ユーザのパスワードを標準出力に
                   書そ个垢戮である。 askpass の値は、環曲竸 SUDO_ASKPASS で
                   上書い垢襪海箸でい襦

       env_file    env_file オプションでファイルの絶対パスを指定すると、
                   実行するプログラムの環-
                   として設定する変数をそのファイルに格納して おくことがで-
                   る。このファイルのエントリは VARIABLE=value か export
                   VARIABLE=value の形でなければならない。
                   変数の値をシングルクォートやダブルクォートで囲んでもよい。
                   このファイルに含まれる変数は、env_keepenv_check
                   のような sudo のほかの環鏡瀋蠅留洞舛鮗ける。

       exempt_group
                   このグループのユーザはパスワードの入力や secure_path による
                   PATH の限定を免除されている。このオプションはデフォルトでは
                   セットされていない。

       lecture     sudo
                   はパスワードプロンプトに添えて簡単な訓戒を表示することが
                   で-
                   る。このオプションはその訓戒をいつ表示するかを決定する。以下の値が
                   可能である。

                   always  いつでも必ず訓戒を表示する

                   never   訓戒を一切表示しない。

                   once    ユーザがはじめて sudo を実行したとい世栄充┐垢襦

                   値を指定しないと、once を指定したことになる。頭に '!'
                   を付けて、 このオプションを否定すると、値に never
                   が使用される。 デフォルトの値は once である。

       lecture_file
                   標準の訓戒の代わりに使用する sudo の訓戒を書-
                   込んだファイルがあるなら、 lecture_file
                   でそのパスを指定する。sudo はデフォルトでは、
                   プログラムに埋め込まれた訓戒を使用する。

       listpw      このオプションは、sudo -l オプション付い納孫圓靴燭箸、
                   ユーザがパスワードを要求されるのは、どんな場合かを決定する。
                   以下のような値が可能である。

                   all     パスワードを入力しないですむためには、sudoers
                           ファイルの使用中の
                           ホストに対する当該ユーザのエントリのすべてに
                           NOPASSWD タグが設定されていなければならない。

                   always  ユーザは -l
                           オプションを使用する際に必ずパスワードを入力しなければ
                           ならない。

                   any     パスワードを入力しないですむためには、sudoers
                           ファイルの使用中の
                           ホストに対する当該ユーザのエントリの少なくとも一つに
                           NOPASSWD タグが設定されていなければならない。

                   never   ユーザは -l
                           オプションを使用する際にパスワードを入力する必要が
                           まったくない。

                   値を指定しないと、値は any だと見なされる。'!'
                   を頭に付けて、 このオプションを否定すると、値に never
                   が使われることになる。 デフォルトは any である。

       logfile     sudo のログファイルのパス (syslog
                   経由のログファイルではない)。
                   パスを指定すると、ファイルへのロギングが on になり、 '!'
                   を頭に付けて、 このオプションを否定すると、off
                   になる。デフォルトでは、sudo は syslog 経由でログを取る。

       mailerflags メーラを起動するとい忙藩僂垢襯侫薀亜デフォルトは -t に
                   なっている。

       mailerpath  警告メールの送信に使うメール・プログラムのパス。デフォルトは
                   configure したとい妨つかった sendmail のパス。

       mailfrom    警告メールやエラー・メールを送ると-
                   、差出人として使用するアドレス。 sudo が @ -
                   号を解釈しないようにするため、 アドレスはダブルクォート (")
                   で囲むべい任△襦 デフォルトは、sudo
                   を実行するユーザの名前。

       mailto      警告メールやエラー・メールを送付する宛先のアドレス。sudo が
                   @ 宜罎魏鮗瓩靴覆い茲Δ砲垢襪燭瓠▲▲疋譽垢 ダブルクォート
                   (") で囲むべい任△襦デフォルトは root に なっている。

       secure_path sudo から実行されるあらゆるコマンドが使用するパス。 sudo
                   を実行するユーザが、無難な環曲竸 PATH を
                   使っているかどうか確信が持てないなら、このオプションを使用するとよいだろう。
                   もう一つの使用法は、「root
                   のパス」と「一般ユーザのパス」を別のものに してお-
                   たい場合だ。ユーザが exempt_group オプションで指定した
                   グループに属していると、そのユーザは secure_path
                   の影響を受けない。
                   このオプションは、デフォルトではセットされていない。

       syslog      syslog を使ってログを取っている場合の syslog のファシリティ
                   (syslog 経由で ログを取らない場合は、'!'
                   を頭に付けて、このオプションを否定する)。 デフォルトは
                   local2 になっている。

       verifypw    このオプションは、sudo-v オプション付い納孫圓靴燭箸、
                   ユーザがパスワードを要求されるのは、どんな場合かを決定する。次のような
                   値が可能である。

                   all     パスワードを入力しないですむためには、sudoers
                           ファイルの使用中の
                           ホストに対する当該ユーザのエントリのすべてに
                           NOPASSWD タグが設定されていなければならない。

                   always  ユーザは -v
                           オプションを使用する際に必ずパスワードを入力しなければ
                           ならない。

                   any     パスワードを入力しないですむためには、sudoers
                           ファイルの使用中の
                           ホストに対する当該ユーザのエントリの少なくとも一つに
                           NOPASSWD タグが設定されていなければならない。

                   never   ユーザは -v
                           オプションを使用する際にパスワードを入力する必要が
                           まったくない。

                   値を指定しないと、値は all だと見なされる。'!'
                   を頭に付けて、 このオプションを否定すると、値に never
                   が使われることになる。 デフォルトは all である。

      :

       env_check       変数の値に % や / が含まれる場合に、 ユーザの環-
                       から取り除かれる環曲竸堯
                       この機能は、出来のよくないプログラムに見られる printf
                       形式のフォーマットの 脆弱世紡仆茲垢襪燭瓩僕用で-
                       る。このオプションの引た瑤蓮
                       ダブルクォートで囲まれ、スペースで区切られたリストでもよく、
                       ダブルクォートなしの単一の値でもよい。リストは、=, +=,
                       -=, ! 演算子を 使って、それぞれ置-
                       換えたり、追加したり、削除したり、無効にしたり
                       することがでい襦env_check で指定された変数は、
                       env_reset オプショの邑・無効にかかわらず、上-
                       のチェックに パスすれば、環-
                       に保存されることになる。チェックされる環曲竸瑤
                       デフォルトのリストは、root ユーザが sudo-V
                       オプションを 付けて実行したとい防充┐気譴襦

       env_delete      env_reset オプションが無効になっていると-
                       に、ユーザの環兇ら 取り除かれる環-
                       変数。このオプションの引た瑤蓮▲瀬屮襯ォートで囲まれ、
                       スペースで区切られたリストでもよく、ダブルクォートなしの単一の値でもよい。
                       リストは、=, +=, -=, ! 演算子を使って、それぞれ置-
                       換えたり、追加したり、
                       削除したり、無効にしたりすることがで-
                       る。取り除かれる環曲竸瑤 デフォルトのリストは、root
                       ユーザが sudo-V オプションを 付けて実行したと-
                       に表示される。留意すべ-
                       は、オペレーティングシステムには、
                       危険をもたらしかねない変数をいかなる setuid プロセス
                       (sudo も その一つ) の環-
                       からも取り除くことにしているものが多いということである。

       env_keep        env_reset オプションが邑になっていると-
                       でも、ユーザの環兇 そのまま保存される環-
                       変数。このオプションによって、sudo から
                       生み出されるプロセスが受け取る環兇髻△-
                       め細かく制御することが可能になる。 このオプションの引-
                       数は、ダブルクォートで囲まれ、スペースで区切られたリ
                       ストでもよく、ダブルクォートなしの単一の値でもよい。リストは、
                       =, +=, -=, ! 演算子を使って、それぞれ置ご垢┐燭蝓
                       追加したり、削除したり、無効にしたりすることがで-
                       る。保存される変数の デフォルトのリストは、root
                       ユーザが sudo-V オプションを 付けて実行したと-
                       に表示される。

       syslog(3) 経由でログを杵燭垢訃豺隋sudo は syslog のファ シリティ
       (facility: syslog パラメータの値) として次の値を受け付 ける。authpriv
       (ただし、OS がサポートしているならばだが)、 auth, daemon, user, local0,
       local1, local2, local3, local4, local5, local6, local7。syslog
       の優先順位 (priority) については、 次のものに対応している。alert, crit,
       debug, emerg, err, info, notice, warning。

ル
       /etc/sudoers            誰が何を実行でい襪のリスト

       /etc/group              ローカルのグループファイル

       /etc/netgroup           ネットワークグループのリスト

例
       以下は sudoers エントリの見本である。正直なところ、いささか
       凝りすぎの部分もある。まず最初にエイリアスを定義する。

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

        # Runas alias の指定
        Runas_Alias    OP = root, operator
        Runas_Alias    DB = oracle, sybase
        Runas_Alias    ADMINGRP = adm, oper

        # Host alias の指定
        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 の指定
        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
        Cmnd_Alias     REBOOT = /usr/sbin/reboot
        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
        Cmnd_Alias     PAGERS = /usr/bin/more, /usr/bin/pg, /usr/bin/less

       以下では、コンパイル時に埋め込まれたデフォルト値のいくつかを変更している。
       sudo には syslog(3) 経由でログを杵燭掘▲侫.轡螢謄には すべての場合に
       auth を使用させたい。フルタイムのスタッフには sudo
       の訓戒を出さないようにしたい。ユーザ millert は
       パスワードを入力しないでよい。コマンドを root として実行するとい蓮
       環曲竸 LOGNAME, USER, USERNAME を変更したくない。さらに、 SERVERS
       という Host_Alias に属する
       マシンでは、ローカルなログファイルを副本として作り、ログの菊事項は
       数年に渡って保存されるので、ログの各行に間違いなく年度が入るようにする。
       最後に PAGERS という Cmnd_Alias に属する コマンド (/usr/bin/more,
       /usr/bin/pg, /usr/bin/less)
       については、シェル・エスケープを無効にする。

        # 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
        Defaults!PAGERS        noexec

       ユーザ設定が、誰が何を実行でい襪を実際に決めている部分だ。

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

       rootwheel グループのすべてのユーザには、どのホストでも
       任意のユーザとしていかなるコマンドでも実行することを認める。

        FULLTIMERS     ALL = NOPASSWD: ALL

       フルタイムのシステム管理者 (millert, mikef, dowdy)
       は、どのホストでも任意のコマンドを認証なしで実行でい襦

        PARTTIMERS     ALL = ALL

       パートタイムのシステム管理者 ((bostley, jwfox, crawl)
       は、どのホストでも任意のコマンドを実行でい襪、
       その際に認証をしなければならない (このエントリには NOPASSWD
       タグが指定されていないので)。

        jack           CSNETS = ALL

       ユーザ jack は、CSNETS というエイリアスに属するマシンで
       任意のコマンドを実行でい (すなわち、ネットワークが 128.138.243.0,
       128.138.204.0, 128.138.242.0 のマシンだ)。この内、 128.138.204.0 にのみ
       class C のネットワークであることを示す 明示的な (CIDR 表気) netmask
       がある。CSNETS の ほかのネットワークについては、ローカルマシンの
       netmask がマッチングの際に 使われることになる。

        lisa           CUNETS = ALL

       ユーザ lisa はエイリアスが CUNETS のいかなるホストでも
       任意のコマンドを実行することがでい (すなわち、 128.138.0.0 という
       class B ネットワークのマシンだ)。

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

       ユーザ operator は、用途が簡単な保守管理に限定されたコマンドを 実行で-
       る。この場合それは、バックアップしたり、プロセスを kill したり、
       印刷システムを操作したり、システムをシャットダウンしたりするのに
       関係するコマンドと、/usr/oper/bin/ ディレクトリにある任意のコマンド
       である。

        joe            ALL = /usr/bin/su operator

       ユーザ joesu(1) を使って operator になることしか でい覆ぁ

        %opers         ALL = (: ADMINGRP) /usr/sbin/

       opers グループのユーザは、/usr/sbin/ にあるコマンドを
       自分自身の資格で、 Runas_Alias ADMINGRP に属する 任意のグループ
       (すなわち、admoper グループ) として 実行でい襦(訳注:
       実のところ、sudo-1.7.2p1 では、 /etc/sudoers で変身可能グループに
       Runas_Alias を まだ指定で-
       ないようだ。今のところ、この例で言うなら、ADMINGRP ではなく、admoper を直接指定しなければならない。)

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

       ユーザ peteHPPA に属するマシンで root 以外なら
       誰のパスワードでも変更することを許されている。上気了慊蠅蓮 passwd(1)
       がコマンドラインで複数のユーザ名を受け付けないことを
       前提としている点に注意してほしい。

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

       ユーザ bobSPARCSGI に属する マシンで Runas_Alias OP
       に登録されている 任意のユーザとして (rootoperator である)
       どんなコマンドでも 実行でい襦

        jim            +biglab = ALL

       ユーザ jimbiglab ネットグループに属するマシンで
       どんなコマンドでも実行でい襦sudo は、"biglab" に '+' の 接頭-
       が付いているので、それをネットグループだと認識する。

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

       secretaries ネットグループのユーザは、ユーザの追加や削除は
       もちろん、プリンタの管理にも協力する必要がある。そこで、すべてのマシンで
       その種のコマンドの実行を認められている。

        fred           ALL = (DB) NOPASSWD: ALL

       ユーザ fred は Runas_Alias DB の 任意のユーザとして (oraclesybase
       だ) パスワードを 入力しないでもコマンドを実行することがでい襦

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

       ユーザ johnALPHA に属するマシンで su(1) を 使って root
       以外の誰にでもなることがでい襪、su にオプションを
       指定することは許されていない。

        jen            ALL, !SERVERS = ALL

       ユーザ jen は Host_Alias SERVERS に 属するマシン (master, mail, www,
       ns) を除くいかなるマシンでも 任意のコマンドを実行でい襦

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

       jill は Host_Alias SERVERS の いかなるマシンでも /usr/bin/
       ディレクトリにある任意のコマンドを 実行でい襪、SUSHELLS という
       Cmnd_Aliases に属するコマンドは実行でい覆ぁ

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

       ユーザ steve はディレクトリ /usr/local/op_commands/ にある
       任意のコマンドを実行でい襪、operator というユーザとして実行で-
       るだけだ。

        matt           valkyrie = KILL

       matt も自分用のワークステーション valkyrie で ハングしたプロセスの kill
       ぐらいはでい詆要がある。

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

       ホスト www で User_Alias WEBMASTERS に 属するいかなるユーザも (will,
       wendy, wim だ)、ユーザ www (web ページの 所夕)
       として任意のコマンドを実行することがでい襦 単に su(1) で www
       になってもよい。

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

       いかなるユーザも Host_Alias が CDROM の マシンで (orion, perseus,
       hercules)、パスワードを入力することなく CD-ROM
       をマウント、アンマウントでい襦上気離灰泪鵐匹鯊任噌むのは
       ユーザにとっていささか面倒なので、シェルスクリプトとして
       カプセル化してしまうのがよいだろう。

       ]: 当然と言えば当然だが、sudo は自ホストの /etc/sudoers
               しか読まない。 そこで、こういうことになる。AAA というホストに
               aaa というユーザが いるとしよう。ホスト AAA の /etc/sudoers
               に「ホスト BBB でユーザ aaa は sudo を介して /bin/ls を実行で-
               る」という欺劼あったとしても、 ユーザ aaa がホスト AAA から
               telnet や ssh を使ったとぁ▲曠好 BBB 上で sudo 経由で ls
               を実行でい襪錣韻任呂覆ぁそれがでい襪燭瓩砲蓮 ホスト BBB の
               /etc/sudoers に「BBB でユーザ aaa は sudo を介して /bin/ls を
               実行でい襦廚箸いΦ述がなければならないのだ。ホスト BBB
               で実行する sudo は BBB の sudo であり、BBB の sudo は BBB の
               /etc/sudoers しか 読まないのだから。

               それでは、何故、上気痢嵳冦磧廚納ホスト以外の設定が行われて
               いるのか? そもそも、sudoers の書式で自ホスト以外のホストを
               指定でい襪里蓮何故なのか? それは、管理しているサイトの
               すべてのホストの設定を気靴 sudoers
               ファイルを一つ作って、それを
               すべてのホストにコピーして使う、そういった使い方を想定しているからだ。
               もし、サイト中のすべてのホストの設定を一ヶ所にまとめて置ぁ
               それをすべてのホストに共佑気擦燭い里覆 (すなわち、sudo
               の設定の 集中管理がしたいのなら)、LDAP の採用を考えるべ-
               である。

点
       一般的に言って、演算子 '!' を使用して ALL から コマンドの「引-
       算」をすることは、あまり効果がない。ユーザは実行したい
       コマンドを名前を変えてコピーし、それからそれを実行するするといった
       ちょっとした手段で、裏をかくことがでい襪らだ。たとえば、

           bill        ALL = ALL, !SU, !SHELLS

       という行は、SUSHELLS に列気気譴討い コマンドの bill
       による実行を本当に阻止することにはならない。 なぜなら、bill
       としては、そうしたコマンドを単に名前を変えて
       コピーすればよいし、エディタやほかのプログラムからシェル・エスケープを
       利用することもでい襪らだ。だから、この種の制限はやった方がまし程度に
       考えておくべい (そして、しっかりした運用方針によって制限の実効力を
       上げるべい任△)。

る
       sudo があるプログラムを実行してしまうと、そのプログラムは、
       ほかのプログラムの実行も含めて、何でも自由に好い覆海箸でい襦
       このことがセゥ絅螢謄上の問題になりかねないのは、プログラムが
       シェル・エスケープを許しているのは珍しいことではなく、そのために
       ユーザが sudo のアクセス制御やロギングをすり抜けることが
       可能になるからだ。よく使うプログラムでシェル・エスケープを
       許しているものには、次のようなものがある。 (当然ながら)
       シェル、エディタ、ページャ、メーラ、ターミナル。

       この問題に対処するには、基本的に二つの方法がある。

       制限      ユーザに任意のコマンドの実行を許すようなコマンドに対して、ユーザが
                 アクセスで-
                 ないようにする。エディタの場合は、制限モードと称して、
                 シェル・エスケープが使えないモードを持っているものも多い。
                 もっとも、sudo 経由でエディタを使うのなら、 sudoedit
                 を使用する方がよりすぐれた対策である。
                 シェル・エスケープを提供するプログラムはたくさんあるので、
                 それを提供しないプログラムのみを使用するようにユーザを制限するのは、
                 たいてい実現不可能である。

       noexec    共優薀ぅ屮薀蠅鬟汽檗璽箸靴討い訛燭のシステムには、環曲竸
                 (たいていは LD_PRELOAD) で別の共-
                 ライブラリを指定することによって、
                 デフォルトのライブラリ関数を置ご垢┐詛塾呂ある。
                 そういったシステムでは、sudonoexec 機能を使えば、 sudo
                 から実行されるプログラムが、何かほかのプログラムを実行するのを
                 防ぐことがで-
                 る。とは言え、これが当てはまるのは、動的にリンクされた
                 ネイティブなプログラムだけだということに気を付けてほしい。
                 静的にリンクされたプログラムや、バイナリ・エミュレーションのもとで
                 動くほかの OS のプログラムには効果がない。

                 sudonoexec に対応しているかどうかを知りたかったら、 root
                 ユーザになって次のように実行してみればよい。

                     sudo -V | grep "dummy exec"

                 その出力にこんなふうに始まる行があれば、

                     File containing dummy exec functions:

                 そのとい蓮△燭屬 sudo が標準ライブラリにある exec
                 ファミリーの関数を、
                 単にエラーを返すだけの自分自身の関数で置-
                 換えられるということだ。 残念ながら、noexec が-
                 効かどうか、コンパイル時に確かめる
                 絶対確実な方法はない。noexec は SunOS, Solaris, *BSD, Linux,
                 IRIX, Tru64 UNIX, MacOS X, HP-UX 11.x で使えるはずだ。 AIX と
                 UnixWare では使えないことがわかっている。環曲竸 LD_PRELOAD
                 をサポートしているたいていの OS なら、 noexec
                 が使えると思う。使用しているオペレーティングシステムの
                 マニュアルページを調べて、ダイナミック・リンカについて (通例
                 ld.so, ld.so.1, dyld, dld.sl, rld, loader
                 といった名前になっている) LD_PRELOAD
                 がサポートされているかどうか確認してほしい。

                 あるコマンドに対して noexec を邑にするには、 上-
                 「ユーザの設定」セクションで述べたように、NOEXEC タグを
                 使用する。そのとい領磴鮑瞳任靴茲Α

                  aaron  shanty = NOEXEC: /usr/bin/more, /usr/bin/vi

                 この例では、ユーザ aaron 対して、noexec を邑にした上で、
                 /usr/bin/more/usr/bin/vi の実行を許可している。
                 このようにすれば、この二つのコマンドから (シェルのような)
                 ほかのコマンドを 実行することがで-
                 なくなるわけだ。使用しているシステムが noexec に
                 対応する能力があるかどうか、よくわからない場合は、取りあえず
                 noexec
                 を試して、効果があるかどうか確かめてみればよい。それなら
                 いつだってでい襪呂困澄

       注意してほしいが、シェル・エスケープの禁止は万能薬ではない。ルートの権限で
       動いているプログラムには、ほかにも、危険世里△襪気泙兇泙丙邏
       (ファイルの 中身を入れ替えるとか、上書い垢襪箸)
       が可能であり、思いがけずに
       権限を拡大してしまうこともありえるのだ。特にエディタについて言うと、
       ユーザには sudoedit を実行する許可を与えるのが、より安全な方法である。

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

告
       sudoers ファイルの編集には visudo コマンドを 使うべ-
       だ。そうすれば、visudo がファイルをロックし、文法のチェッ
       クをやってくれる。sudoers ファイルに文法的な間違いがあると、 sudo
       が動かないので、sudoers ファイルには文法エラーが絶
       対にあってはならないのだ。

       ネットグループを (ユーザについてではなく) マシンについて使用し、
       netgroup ファイルに完全修飾ホスト名を戯椶垢訃豺腓 (たいてい
       そうするものだが)、そのマシンのホスト名を hostname
       コマンドが出力する通りの完全修飾名で書くか、さもなければ sudoers
       ファイルで fqdn オプションを使うかしなければなら ない。

グ
       sudo にバグを発見したと思ったら、下気離據璽犬縫▲セスして、
       バグレポートを提出していただい燭ぁ
       http://www.sudo.ws/sudo/bugs/

ト
       ある程度の無料サポートが sudo-users メーリングリストを通して利用でい襦
       購読やアーカイブの検索には下 URL を御覧になること。
       http://www.sudo.ws/mailman/listinfo/sudo-users

責
       sudo は「現状のまま」提供される。明示的な、あるいは黙示的な
       いかなる保証も、商品世籠団衞榲への適合世砲弔い討量杣的な保証を含め、
       またそれのみに止まらず、これを否認する。詳細な全文については、 sudo
       と一緒に配布されている LICENSE ファイルや 下 Web ページを御覧いただ-
       たい。
       http://www.sudo.ws/sudo/license.html