.\" Copyright (c) 1994-1996, 1998-2005, 2007-2012 .\" Todd C. Miller .\" .\" Permission to use, copy, modify, and distribute this software for any .\" purpose with or without fee is hereby granted, provided that the above .\" copyright notice and this permission notice appear in all copies. .\" .\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES .\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF .\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR .\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES .\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. .\" 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. .\" .\" Japanese Version Copyright (c) 2000-2002 Yuichi SATO .\" and 2009 Yoichi Chonan .\" all rights reserved. .\" Translated Sat Oct 7 14:39:18 JST 2000 .\" by Yuichi SATO .\" Updated & Modified Fri Dec 6 04:40:44 JST 2002 by Yuichi SATO .\" New Translation (sudo-1.6.9p17) Fri Jan 23 10:31:17 JST 2009 .\" by Yoichi Chonan .\" Updated & Modified (sudo-1.7.2p1) Sat Nov 14 21:15:16 JST 2009 .\" by Yoichi Chonan .\" Updated & Modified (sudo-1.8.4p4) Wed May 9 12:26:33 JST 2012 .\" by Yoichi Chonan .\" .nr SL 0 .nr BA 0 .nr LC 0 .nr PT 5 .\" .\" Automatically generated by Pod::Man 2.23 (Pod::Simple 3.14) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` . ds C' 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is turned on, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .ie \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . nr % 0 . rr F .\} .el \{\ . de IX .. .\} .\" .\" Accent mark definitions (@(#)ms.acc 1.5 88/02/08 SMI; from UCB 4.2). .\" Fear. Run. Save yourself. No user-serviceable parts. . \" fudge factors for nroff and troff .if n \{\ . ds #H 0 . ds #V .8m . ds #F .3m . ds #[ \f1 . ds #] \fP .\} .if t \{\ . ds #H ((1u-(\\\\n(.fu%2u))*.13m) . ds #V .6m . ds #F 0 . ds #[ \& . ds #] \& .\} . \" simple accents for nroff and troff .if n \{\ . ds ' \& . ds ` \& . ds ^ \& . ds , \& . ds ~ ~ . ds / .\} .if t \{\ . ds ' \\k:\h'-(\\n(.wu*8/10-\*(#H)'\'\h"|\\n:u" . ds ` \\k:\h'-(\\n(.wu*8/10-\*(#H)'\`\h'|\\n:u' . ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'^\h'|\\n:u' . ds , \\k:\h'-(\\n(.wu*8/10)',\h'|\\n:u' . ds ~ \\k:\h'-(\\n(.wu-\*(#H-.1m)'~\h'|\\n:u' . ds / \\k:\h'-(\\n(.wu*8/10-\*(#H)'\z\(sl\h'|\\n:u' .\} . \" troff and (daisy-wheel) nroff accents .ds : \\k:\h'-(\\n(.wu*8/10-\*(#H+.1m+\*(#F)'\v'-\*(#V'\z.\h'.2m+\*(#F'.\h'|\\n:u'\v'\*(#V' .ds 8 \h'\*(#H'\(*b\h'-\*(#H' .ds o \\k:\h'-(\\n(.wu+\w'\(de'u-\*(#H)/2u'\v'-.3n'\*(#[\z\(de\v'.3n'\h'|\\n:u'\*(#] .ds d- \h'\*(#H'\(pd\h'-\w'~'u'\v'-.25m'\f2\(hy\fP\v'.25m'\h'-\*(#H' .ds D- D\\k:\h'-\w'D'u'\v'-.11m'\z\(hy\v'.11m'\h'|\\n:u' .ds th \*(#[\v'.3m'\s+1I\s-1\v'-.3m'\h'-(\w'I'u*2/3)'\s-1o\s+1\*(#] .ds Th \*(#[\s+2I\s-2\h'-\w'I'u*3/5'\v'-.3m'o\v'.3m'\*(#] .ds ae a\h'-(\w'a'u*4/10)'e .ds Ae A\h'-(\w'A'u*4/10)'E . \" corrections for vroff .if v .ds ~ \\k:\h'-(\\n(.wu*9/10-\*(#H)'\s-2\u~\d\s+2\h'|\\n:u' .if v .ds ^ \\k:\h'-(\\n(.wu*10/11-\*(#H)'\v'-.4m'^\v'.4m'\h'|\\n:u' . \" for low resolution devices (crt and lpr) .if \n(.H>23 .if \n(.V>19 \ \{\ . ds : e . ds 8 ss . ds o a . ds d- d\h'-1'\(ga . ds D- D\h'-1'\(hy . ds th \o'bp' . ds Th \o'LP' . ds ae ae . ds Ae AE .\} .rm #[ #] #H #V #F C .\" ======================================================================== .\" .IX Title "SUDO 8" .TH SUDO 8 "February 5, 2012" "1.8.4" "MAINTENANCE COMMANDS" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "名前" sudo, sudoedit \- コマンドを他のユーザとして実行する .SH "書式" .IX Header "SYNOPSIS" \&\fBsudo\fR \fB\-h\fR | \fB\-K\fR | \fB\-k\fR | \fB\-V\fR .PP \&\fBsudo\fR \fB\-v\fR [\fB\-AknS\fR] .if \n(BA [\fB\-a\fR\ \fIauth_type\fR] [\fB\-g\fR\ \fIgroup\ name\fR|\fI#gid\fR] [\fB\-p\fR\ \fIprompt\fR] [\fB\-u\fR\ \fIuser\ name\fR|\fI#uid\fR] .PP \&\fBsudo\fR \fB\-l[l]\fR [\fB\-AknS\fR] .if \n(BA [\fB\-a\fR\ \fIauth_type\fR] [\fB\-g\fR\ \fIgroup\ name\fR|\fI#gid\fR] [\fB\-p\fR\ \fIprompt\fR] [\fB\-U\fR\ \fIuser\ name\fR] [\fB\-u\fR\ \fIuser\ name\fR|\fI#uid\fR] [\fIcommand\fR] .PP \&\fBsudo\fR [\fB\-AbEHnPS\fR] .if \n(BA [\fB\-a\fR\ \fIauth_type\fR] [\fB\-C\fR\ \fIfd\fR] .if \n(LC [\fB\-c\fR\ \fIclass\fR|\fI\-\fR] [\fB\-g\fR\ \fIgroup\ name\fR|\fI#gid\fR] [\fB\-p\fR\ \fIprompt\fR] .if \n(SL [\fB\-r\fR\ \fIrole\fR] [\fB\-t\fR\ \fItype\fR] [\fB\-u\fR\ \fIuser\ name\fR|\fI#uid\fR] [\fB\s-1VAR\s0\fR=\fIvalue\fR] [\fB\-i\fR\ |\ \fB\-s\fR] [\fIcommand\fR] .PP \&\fBsudoedit\fR [\fB\-AnS\fR] .if \n(BA [\fB\-a\fR\ \fIauth_type\fR] [\fB\-C\fR\ \fIfd\fR] .if \n(LC [\fB\-c\fR\ \fIclass\fR|\fI\-\fR] [\fB\-g\fR\ \fIgroup\ name\fR|\fI#gid\fR] [\fB\-p\fR\ \fIprompt\fR] [\fB\-u\fR\ \fIuser\ name\fR|\fI#uid\fR] file ... .SH "説明" .IX Header "DESCRIPTION" \&\fBsudo\fR を使用すると、許可されたユーザーが、 スーパーユーザや他のユーザに変身して、コマンドを実行することが可能になる。 許可の範囲については、セキュリティ・ポリシーの指定するところに従う。 実 uid と gid、実効 uid と gid は、変身の対象になるユーザの、 パスワード・データベースに記載されているものと同一になるようにセットされる。 所属するグループについても (\fB\-P\fR オプションが指定されていないかぎり)、 グループ・データベースに基づいて初期化される。 .PP \&\fBsudo\fR はセキュリティ・ポリシーと入出力のロギングについて、 プラグイン方式をサポートしている。このため、\fBsudo\fR フロントエンドとシームレスに共動するポリシー・モジュールや I/O ロギング・モジュールを、サードパーティが独自に開発して配布することが可能である。 デフォルトのセキュリティ・ポリシーは \fIsudoers\fR であり、その設定は、 \&\fI/etc/sudoers\fR ファイル、もしくは \s-1LDAP\s0 を通して行われる。 詳細については、「プラグイン」セクションを参照してほしい。 .PP セキュリティ・ポリシーによって、あるユーザに \fBsudo\fR を使用する権限があるかどうか、 あるとすれば、どんな権限を持っているかが決定される。 セキュリティ・ポリシーは、ユーザにパスワードや他の認証方法を使って、 本人であることを証明するように要求してもよい。認証が必要な場合、 ユーザがパスワードを (設定によって変更可能な) 制限時間内に入力しないと、 \&\fBsudo\fR は時間切れで終了する。この制限時間はポリシー次第であり、 \&\fIsudoers\fR セキュリティ・ポリシーの場合、 パスワード・プロンプトがタイムアウトするまでのデフォルトの時間は、 .ie \n(PT \f(CW\*(C`5\*(C'\fR 分間である. .el 無制限である. .PP セキュリティ・ポリシーは、一定時間内ならユーザが認証なしで \fBsudo\fR を何度も実行できるように、認証情報の一時保存 (credential caching) をサポートしてもよい。\fIsudoers\fR ポリシーでは、\fIsudoers\fR\|(5) で変更されないかぎり、認証情報を \f(CW\*(C`5\*(C'\fR 分間保持する。 ユーザは \fBsudo\fR に \fB\-v\fR を付けて実行することで、 \&\fIcommand\fR を実行しないでも、保存された認証情報を更新することができる。 .PP \&\fBsudoedit\fR というコマンド名で起動するのは、\fBsudo\fR に \fB-e\fR オプション (下記参照) を付けて実行するのと同じである。 .PP セキュリティ・ポリシーは、ユーザが \fBsudo\fR を使おうとして 成功した場合も失敗した場合も、それをログに記録することができる。 I/O プラグインが設定によって組み込まれている場合は、 実行しているコマンドの入出力もログに残すことができる。 .SH "オプション" .IX Header "OPTIONS" \&\fBsudo\fR では以下のコマンドライン・オプションが使用できる。 .IP "\-A" 12 .IX Item "-A" 通常 \fBsudo\fR がパスワードを要求するとき、 パスワードはユーザが使用している端末から読み込まれる。 \&\fB\-A\fR (\fIaskpass\fR) オプションを指定すると、 ヘルパー・プログラム (グラフィカルなものでもよい) が実行され、ユーザのパスワードを読み込んで、それを標準出力に書き出す。 環境変数 \f(CW\*(C`SUDO_ASKPASS\*(C'\fR が設定されているときは、 それがヘルパー・プログラムのパスになる。それ以外の場合は、 \fI/etc/sudo.conf\fR に askpass プログラムを指定している行が存在すれば、 その値が使用される。一例を挙げよう。 .Sp .Vb 2 \& # askpass ヘルパー・プログラムのパス \& Path askpass /usr/X11R6/bin/ssh\-askpass .Ve .Sp 利用できる askpass プログラムがないと、\fBsudo\fR はエラーメッセージを出して、終了する。 .if \n(BA \{\ .IP "\-a \fItype\fR" 12 .IX Item "-a type" \&\fB\-a\fR (\fIauthentication type\fR) オプションを使うと、 \&\fBsudo\fR はユーザの認証に、指定したタイプの認証方法を使用するようになる。 ただし、その認証のタイプは \fI/etc/login.conf\fR で有効になっていなければならない。システム管理者は \fI/etc/login.conf\fR に \&\*(L"auth-sudo\*(R" 項目を追加することによって、 \&\fBsudo\fR 専用の認証方法のリストを指定することができる。 このオプションは \s-1BSD\s0 認証に対応したシステムでのみ有効である。 \} .IP "\-b" 12 .IX Item "-b" \&\fB\-b\fR (\fIbackground\fR) オプションを付けると、\fBsudo\fR は指定されたコマンドをバックグラウンドで実行する。 \&\fB-b\fR オプションを使用すると、 シェルのジョブ制御を使ってプロセスを操作できなくなるので、注意してほしい。 バックグラウンドモードでは、対話的なコマンドのほとんどがまともに動かないだろう。 .IP "\-C \fIfd\fR" 12 .IX Item "-C fd" 通常、\fBsudo\fR は、(コマンドを実行する前に) 標準入力、標準出力、 標準エラーを除いて、 開いているファイル・ディスクリプタをすべて閉じることになっている。 \&\fB\-C\fR (\fIclose from\fR) オプションを使えば、 標準エラーより番号が大きい (すなわち、ファイル・ディスクリプタ 3 以上の) どのファイル・ディスクリプタから閉じていくかを、ユーザが指定することができる。 3 未満の値は指定できない。セキュリティ・ポリシーによっては、ユーザが \&\fB\-C\fR オプションを使用するのを制限していることがある。 \&\fIsudoers\fR ポリシーが \fB\-C\fR オプションの使用を許可するのは、 管理者が \fIclosefrom_override\fR オプションを有効にしているときのみである。 .if \n(LC \{\ .IP "\-c \fIclass\fR" 12 .IX Item "-c class" \&\fB\-c\fR (\fIclass\fR) オプションを付けると、その指定した login class のリソースの制限内で、\fBsudo\fR は指定されたコマンドを実行する。 \&\fB-c\fR の引き数 \fIclass\fR に使うことができるのは、 \&\fI/etc/login.conf\fR で定義された class 名か、一個の '\-' 文字である。 \&\fIclass\fR に \f(CW\*(C`\-\*(C'\fR を指定すると、コマンドは実行されるとき、 変身対象ユーザのデフォルトのログイン権限によって制限されることになる。 引き数 \fIclass\fR が実在する user class を指している場合は、コマンドを root として実行するか、あるいはすでに root になったシェルで \&\fBsudo\fR コマンドを実行するかしなければならない。 このオプションは、\s-1BSD\s0 login class が存在するシステムでのみ有効である。 \} .IP "\-E" 12 .IX Item "-E" \&\fB\-E\fR (\fIpreserve\fR \fIenvironment\fR) オプションを指定すると、 現在の環境変数をそのまま保持するのがユーザの意向だと、 セキュリティ・ポリシーに伝えることになる。 \&\fB\-E\fR を指定しても、ユーザが環境を保持する許可を持っていない場合は、 セキュリティ・ポリシーがたぶんエラーを返すだろう。 .IP "\-e" 12 .IX Item "-e" \&\fB\-e\fR (\fIedit\fR) オプションを指定するのは、 ユーザがコマンドの実行ではなく、 一個以上のファイルを編集しようとしていることを意味する。 セキュリティ・ポリシーの参照では、 コマンド名として文字列 \*(L"sudoedit\*(R" が使用される。 セキュリティ・ポリシーによってユーザに権限があることが認められると、 次のようなことが順番に行われる。 .RS 12 .IP "1." 4 編集対象のファイルのコピーをテンポラリファイルとして作成する。 テンポラリファイルのオーナーは \fBsudo\fR を起動したユーザである。 .IP "2." 4 セキュリティ・ポリシーによって指定されたエディタを起動して、 テンポラリファイルを編集する。\fIsudoers\fR ポリシーでは、環境変数の \&\f(CW\*(C`SUDO_EDITOR\*(C'\fR, \f(CW\*(C`VISUAL\*(C'\fR, \&\f(CW\*(C`EDITOR\*(C'\fR を (この順番で) 使用する。 \&\f(CW\*(C`SUDO_EDITOR\*(C'\fR, \f(CW\*(C`VISUAL\*(C'\fR, \&\f(CW\*(C`EDITOR\*(C'\fR のどれも設定されていない場合は、\fIsudoers\fR\|(5) の \fIeditor\fR オプションにリストされたプログラムのうち、 最初のものが使われる。 .IP "3." 4 編集作業がすむと、テンポラリファイルをオリジナルのファイルに書き戻して、 テンポラリファイルを消去する。 .RE .RS 12 .Sp 指定されたファイルが存在しない場合は作成する。ここで注意すべきは、 \&\fBsudo\fR によって実行されるコマンドの大部分と違って、 \&\fB\-e\fR でエディタが実行されるときは、\fBsudo\fR を起動したユーザの環境が、変更を受けずにそのまま使われるということだ。 何らかの理由で \fBsudo\fR が編集した内容でファイルを更新できないときは、 ユーザに警告を発し、編集した内容をテンポラリファイルに保存することになる。 .RE .IP "\-g \fIgroup\fR" 12 .IX Item "-g group" 通常 \fBsudo\fR はコマンドを実行するとき、プライマリ・グループを、 パスワード・データベースで変身対象ユーザ (デフォルトでは root である) のプライマリ・グループとして指定されているグループに設定する。これに対して、 \&\fB\-g\fR (\fIgroup\fR) オプションを使用すると、 \&\fBsudo\fR はプライマリ・グループを \fIgroup\fR に設定して、 コマンドを実行することになる。グループ名の代わりに \fIgid\fR を指定するときは、 \&\fI#gid\fR という書き方をする。\fIgid\fR としてコマンドを実行する場合、 多くのシェルでは '#' をバックスラッシュ ('\e') でエスケープしなければならない。 なお、\fB\-u\fR オプションが同時に指定されていない場合、コマンドは (root としてではなく) \fBsudo\fR を起動したユーザの資格で実行される。 いづれにしろ、プライマリ・グループが \fIgroup\fR に設定されることに変わりはない。 (訳注: \fB\-g\fR オプションを使用するには、 \&\fIsudoers\fR ポリシーの場合なら、\fIsudoers\fR ファイルのユーザ設定で、 変身対象となるグループを設定しておく必要がある。詳細については、 \&\fIsudoers\fR\|(5) のマニュアルの該当個所を参照してほしい。) .IP "\-H" 12 .IX Item "-H" \&\fB\-H\fR (\fI\s-1HOME\s0\fR) オプションを指定すると、 セキュリティ・ポリシーは、環境変数 \f(CW\*(C`HOME\*(C'\fR を、パスワード・データベースで変身対象ユーザ (デフォルトでは root) のホームディレクトリとして指定されているディレクトリに設定することになる。 ポリシーによっては、それがデフォルトの動作になっていることもある。 .IP "\-h" 12 .IX Item "-h" \&\fB-h\fR (\fIhelp\fR) オプションを指定すると、 \&\fBsudo\fR は簡単なヘルプメッセージを標準出力に表示して、終了する。 .IP "\-i [command]" 12 .IX Item "-i [command]" \&\fB\-i\fR (\fIsimulate initial login\fR) オプションを指定すると、 パスワード・データベースの変身対象ユーザのエントリで指定されてているシェルが、 ログイン・シェルとして実行される。すなわち、\f(CW\*(C`.profile\*(C'\fR や \&\f(CW\*(C`.login\*(C'\fR といった、ログイン用のリソースファイルが、 シェルによって読み込まれるわけだ。コマンドを指定すると、 それがシェルに渡され、シェルの \fB\-c\fR オプションを使って実行される。 コマンドを指定しない場合は、対話的シェルが起動されることになる。\fBsudo\fR は、 シェルを実行する前に、変身対象ユーザのホームディレクトリに移動しようとする。 セキュリティ・ポリシーは、環境変数が最小限になるように、すなわち、 ユーザが普通にログインしたときの環境と同様になるように、 環境を初期化すべきである。 \&\fIsudoers\fR ポリシーを使用している場合に、 \&\fB\-i\fR オプションがコマンドの実行環境にどんな影響を与えるかについては、 \&\fIsudoers\fR\|(5) のマニュアルの「コマンド環境」セクションに説明がある。 .IP "\-K" 12 .IX Item "-K" \&\fB\-K\fR (sure \fIkill\fR) オプションは \fB\-k\fR オプションに似ているが、 ユーザの保存された認証情報を完全に消去してしまう点と、 コマンドや他のオプションと組み合わせて使用できない点で異なっている。 このオプションはパスワードを要求しない。 すべてのセキュリティ・ポリシーが 認証情報の一時保存をサポートしているわけではない。 .IP "\-k [command]" 12 .IX Item "-k [command]" \&\fB\-k\fR (\fIkill\fR) オプションを単独で使うと、 \&\fBsudo\fR はユーザの保存された認証情報を無効にする。 次回 \fBsudo\fR を実行するとき、パスワードが要求されることになるわけだ。 このオプション自体はパスワードを必要としない。 なお、このオプションが追加されたのは、ユーザが .logout ファイルで、\fBsudo\fR をパスワードなしで実行できる期間を終了させることができるようにするためである。 すべてのセキュリティ・ポリシーが認証情報の一時保存をサポートしているわけではない。 .Sp \&\fB\-k\fR オプションをコマンドや、 パスワードを必要とするような他のオプションと組み合わせて使用すると、 \&\fBsudo\fR はユーザの保存された認証情報を無視することになる。 その結果、\fBsudo\fR は (セキュリティ・ポリシーでパスワードを要求するようになっているならば) プロンプトを出してパスワードを要求する。このとき、 ユーザの保存された認証情報の更新は行わない。 .IP "\-l[l] [\fIcommand\fR]" 12 .IX Item "-l[l] [command]" \&\fIcommand\fR を指定しない場合、\fB\-l\fR (\fIlist\fR) オプションは、 \&\fBsudo\fR を実行しているユーザ (あるいは、\fB\-U\fR で指定したユーザ) が、 現在ログインしているホストで許可されている (及び、禁じられている) コマンドを列挙する。\fIcommand\fR を指定した場合は、 セキュリティ・ポリシーで許可されているコマンドならば、その絶対パスを表示する。 指定する \fIcommand\fR に引数を付けると、それも一緒に表示される (訳注: セキュリティ・ポリシーで、許可するコマンドに引数まで指定している場合は、 それにマッチする引数を \fB\-l\fR に続く \fIcommand\fR にも必ず付けなければならない)。 指定したコマンドが許可されていない場合は、 \&\fBsudo\fR がステータス 1 で終了する。\fB\-l\fR オプションに \&\fBl\fR という引数を付けた場合や (すなわち \fB\-ll\fR)、 \&\fB\-l\fR を複数回指定した場合は、長い方のリスト形式が使用される。 .IP "\-n" 12 .IX Item "-n" \&\fB\-n\fR (\fInon-interactive\fR) オプションがあると、 \&\fBsudo\fR は ユーザにパスワードを要求するプロンプトを出さない。 実行するコマンドにパスワードが必要な場合、 \&\fBsudo\fR はエラーメッセージを表示して、終了する。 .IP "\-P" 12 .IX Item "-P" \&\fB\-P\fR (\fIpreserve\fR \fIgroup vector\fR) オプションを指定すると、 \&\fBsudo\fR は、\fBsudo\fR を実行するユーザが所属するグループのリストを、 変更せずにそのまま使用する。\fIsudoers\fR ポリシーの場合、デフォルトでは、 所属グループの初期値として、 変身対象となるユーザが所属するグループのリストを設定するのである。とは言え、 実 gid や 実効 gid が変身対象ユーザと同一になるようにセットされる点には、 変わりがない。 .IP "\-p \fIprompt\fR" 12 .IX Item "-p prompt" \&\fB\-p\fR (\fIprompt\fR) オプションを使うと、 デフォルトのパスワードプロンプトを変更して、好きな文句にすることができる。 \&\fIsudoers\fR ポリシーでは以下のパーセント (`\f(CW\*(C`%\*(C'\fR') エスケープが使用できる。 .RS 12 .ie n .IP "%H" 4 .el .IP "\f(CW%H\fR" 4 .IX Item "%H" ドメイン名を含むホスト名に展開される (マシンのホスト名が完全修飾名であるか、 \&\fIsudoers\fR\|(5) で \fIfqdn\fR オプションがセットされている場合に有効) .ie n .IP "%h" 4 .el .IP "\f(CW%h\fR" 4 .IX Item "%h" ドメイン名なしのローカルホスト名に展開 .ie n .IP "%p" 4 .el .IP "\f(CW%p\fR" 4 .IX Item "%p" パスワードを要求されるユーザ名に展開 (\fIsudoers\fR\|(5) の \&\fIrootpw\fR, \fItargetpw\fR, \fIrunaspw\fR フラグを尊重する) .ie n .IP "%U" 4 .el .IP "\f(CW%U\fR" 4 .IX Item "%U" 変身対象になるユーザ (\f(CW\*(C`\-u\*(C'\fR オプションが同時に指定されていない場合は、root がデフォルト) のログイン名に展開される .ie n .IP "%u" 4 .el .IP "\f(CW%u\fR" 4 .IX Item "%u" \&\fBsudo\fR を起動するユーザのログイン名に展開される .ie n .IP "\*(C`%%\*(C'" 4 .el .IP "\f(CW\*(C`%%\*(C'\fR" 4 .IX Item "%%" 連続した二つの \f(CW\*(C`%\*(C'\fR は、一個の \f(CW\*(C`%\*(C'\fR 文字そのものを意味する .RE .RS 12 .Sp \&\fB\-p\fR で指定したプロンプトが、\s-1PAM\s0 をサポートしているシステムで、システムのパスワードプロンプトを上書きするのは、 \&\fIsudoers\fR で \fIpassprompt_override\fR が有効になっている場合である (訳注: 実際にはもうすこし複雑なので、\fIsudoers\fR\|(5) の passprompt_override の項も参照してほしい)。 .RE .if \n(SL \{\ .IP "\-r \fIrole\fR" 12 .IX Item "-r role" \&\fB\-r\fR (\fIrole\fR) オプションを使うと、(SELinux の) 新しいセキュリティ・コンテキストが \fIrole\fR で指定されたロールを持つようになる。 \} .IP "\-S" 12 .IX Item "-S" \&\fB\-S\fR (\fIstdin\fR) オプションを指定すると、 \&\fBsudo\fR はパスワードをターミナルデバイスからではなく、 標準入力から読み込む。パスワードは末尾に改行を付けなければならない。 .IP "\-s [command]" 12 .IX Item "-s [command]" \&\fB\-s\fR (\fIshell\fR) は、環境変数 \fI\s-1SHELL\s0\fR が設定されていれば、 そのシェルを、さもなければ、 パスワード・データベースで指定されているシェルを実行する。 コマンドが指定されている場合には、それをシェルに渡し、シェルの \&\fB\-c\fR オプションを通じて実行させる。 コマンドが指定されていなければ、対話的シェルを開く。 .if \n(SL \{\ .IP "\-t \fItype\fR" 12 \&\fB\-t\fR (\fItype\fR) オプションを使用すると、(SELinux の) 新しい セキュリティ・コンテキストが \fItype\fR で指定されたタイプを持つようになる。 type が指定されない場合は、デフォルトのタイプが、 指定された role から導き出される。 \} .IP "\-U \fIuser\fR" 12 .IX Item "-U user" \&\fB\-U\fR (\fIother user\fR) オプションは、\fB\-l\fR と組み合わせて使用し、 誰の権限の一覧を表示するかを指定する。自分以外のユーザの権限の表示は、 セキュリティ・ポリシーによって禁止されているかもしれない。 \&\fIsudoers\fR ポリシーでこのオプションの使用が認められているのは、 root ユーザを別にすると、現在使用中のホストで許可するコマンドに \&\f(CW\*(C`ALL\*(C'\fR が指定してあるユーザだけである。 .IP "\-u \fIuser\fR" 12 .IX Item "-u user" \&\fB\-u\fR (\fIuser\fR) オプションを指定すると、\fBsudo\fR は指定されたコマンドを \fIroot\fR 以外のユーザとして実行する。 ユーザ名の代わりに \fIuid\fR を指定するときは、\fI#uid\fR という書き方をする。 多くのシェルでは、\fIuid\fR の資格でコマンドを実行するときは、 \&'#' をバックスラッシュ ('\e') でエスケープしなければならない。 セキュリティ・ポリシーによっては、使用できる \fIuid\fR をパスワード・データベースに記載されているものに限定していることもある。 \&\fIsudoers\fR ポリシーでは、 \&\fItargetpw\fR オプションが設定されていないかぎり、 パスワード・データベースに存在しない \fIuid\fR も認めている。 他のセキュリティ・ポリシーでは、これは許されないかもしれない。 .IP "\-V" 12 .IX Item "-V" \&\fB\-V\fR (\fIversion\fR) オプションを指定すると、 \&\fBsudo\fR はそのバージョン文字列を、セキュリティ・ポリシー・プラグインや I/O プラグインのバージョン文字列とともに表示する。 \&\fBsudo \-V\fR を実行するユーザがあらかじめ root になっている場合は、 \&\fIsudo\fR がビルドされたときに configure スクリプトに渡された引数が表示される。また、プラグインについても、 デフォルト・オプションのようなより詳細な情報が表示されるかもしれない。 .IP "\-v" 12 .IX Item "-v" \&\fB\-v\fR (\fIvalidate\fR) オプションを指定すると、\fBsudo\fR は ユーザの保存された認証情報を更新する。このとき、必要ならば、 パスワードによる認証を行う。\fIsudoers\fR プラグインでは、 このオプションによって \fBsudo\fR のタイムアウト時間がもう \&\f(CW\*(C`5\*(C'\fR 分間 (あるいは、何分であれ、\fIsudoers\fR で設定されたタイムアウト時間) 伸びるが、 このオプションがコマンドを実行することはない。 すべてのセキュリティ・ポリシーが認証情報の一時保存に対応しているわけではない。 .IP "\-\-" 12 \&\fB\-\-\fR オプションがあると、 \&\fBsudo\fR はそこでコマンドライン引き数の処理をやめる。 .IP "[\fB訳注\fR]:" 8 .IX Item "footnote1" このほか、sudo-1.8.4 では使用できなくなくなったが、sudo-1.8.3 には \fB\-D\fR というオプションも存在した。ご参考のため挙げておくと、 次のようなものである。 .RS 8 .IP "\-D \fIlevel\fR" 12 .IX Item "-D level" \&\fBsudo\fR そのもの、及び \fBsudo\fR プラグインのデバッグを有効にする。 \&\fIlevel\fR には 1 から 9 までの値を指定できる。 .RE .PP さらに、コマンドのためにセットしたい環境変数も、\fB\s-1VAR\s0\fR=\fIvalue\fR、 たとえば \fB\s-1LD_LIBRARY_PATH\s0\fR=\fI/usr/local/pkg/lib\fR といった形でコマンドラインから渡すことができる。 コマンドラインから渡される変数は、通常の環境変数と同じ制限の対象になるが、 一つだけ重要な違いがある。\fIsudoers\fR で \fIsetenv\fR オプションが設定されているか、実行されるコマンドに \&\f(CW\*(C`SETENV\*(C'\fR タグがついているか、 あるいは、マッチするコマンドが \f(CW\*(C`ALL\*(C'\fR である場合は、 ユーザがほかの状況でなら禁じられているような変数をセットすることができるのだ。 詳細については \fIsudoers\fR\|(5) を参照してほしい。 .SH "プラグイン" .IX Header "PLUGINS" プラグインは \fI/etc/sudo.conf\fR の内容に基づいて、動的にロードされる。 \&\fI/etc/sudo.conf\fR が存在しない場合や、存在しても \&\f(CW\*(C`Plugin\*(C'\fR の行がない場合は、 \&\fBsudo\fR はこれまでどおり、 \&\fIsudoers\fR のセキュリティ・ポリシーと I/O ロギングを使用する。 それは、次のように \fI/etc/sudo.conf\fR ファイルに記述するのと同じことである。 .PP .Vb 10 \& # \& # Default /etc/sudo.conf file \& # \& # 書式: \& # Plugin plugin_name plugin_path \& # Path askpass /path/to/askpass \& # Path noexec /path/to/noexec.so \& # Debug sudo /var/log/sudo_debug all@warn \& # Set disable_coredump true \& # \& # The plugin_path が絶対パスでない場合は、 /usr/local/libexec からの \& # 相対パスである。、 \& # plugin_name は、プラグイン中の、プラグインのインターフェース構造を \& # 含むグローバルシンボルと同じものである。 \& # \& Plugin sudoers_policy sudoers.so \& Plugin sudoers_io sudoers.so .Ve .PP \&\f(CW\*(C`Plugin\*(C'\fR 行は、キーワード \f(CW\*(C`Plugin\*(C'\fR に始まり、 \&\fIsymbol_name\fR と \fIpath\fR が続く。 \&\fIpath\fR は、プラグインを含む共有オブジェクト・ファイルへのパスである。 \&\fIsymbol_name\fR はプラグイン共有オブジェクト中の \&\f(CW\*(C`policy_plugin\*(C'\fR 構造体や \f(CW\*(C`io_plugin\*(C'\fR 構造体の名前である。 \fIpath\fR は絶対パスでも相対パスでもよい。 相対パスの場合は、 \&\fI/usr/local/libexec\fR ディレクトリを基点にした相対パスである。 \&\fIpath\fR の後ろに他のパラメータを付けても、無視される。 \&\f(CW\*(C`Plugin\*(C'\fR や \f(CW\*(C`Path\*(C'\fR で始まらない行は、 ただ単に無視される。 .IP "[\fB訳注\fR]:" 8 .IX Item "footnote2" sudo-1.8.3 までは、上記の説明どおり、キーワードに \f(CW\*(C`Plugin\*(C'\fR と \&\f(CW\*(C`Path\*(C'\fR しか使用できなかった。 .Sp sudo-1.8.4 以上では、上記の書式にもあるように、\f(CW\*(C`Debug\*(C'\fR や \&\f(CW\*(C`Set\*(C'\fR で始まる行も有効である。「デバッグ・フラグ」や 「セキュリティに関する注意点」セクションも参照していただきたい。 .Sp また、sudo-1.8.5 以上では、\fIpath\fR の後ろにパラメータを続けて書くことで (複数個あるときは空白で区切る)、 それをオプションとしてプラグインに渡すことが可能になっている。 たとえば、以下のようにだ。 .Sp \& Plugin sudoers_policy sudoers.so sudoers_file=/etc/sudoers sudoers_uid=0 sudoers_gid=0 sudoers_mode=0440 .PP 詳細については、\fIsudo_plugin\fR\|(8) のマニュアルをご覧になること。 .SH "パス" .IX Header "PATHS" \&\f(CW\*(C`Path\*(C'\fR 行は、キーワード \f(CW\*(C`Path\*(C'\fR に始まり、 設定するパスの名前とその値が続く。一例を挙げる。 .PP .Vb 2 \& Path noexec /usr/local/libexec/sudo_noexec.so \& Path askpass /usr/X11R6/bin/ssh\-askpass .Ve .PP 次のようなプラグインではないプログラムやライブラリのパスを \&\fI/etc/sudo.conf\fR ファイルで設定することができる。 .IP "askpass" 16 .IX Item "askpass" 端末が利用できないときに、 ユーザのパスワードを読み込むのに使用するヘルパー・プログラムの絶対パス。 たとえば、 \fBsudo\fR がグラフィカルな (つまり、テキストベースではない) アプリケーションから実行される場合がこれに当たる。 \&\fIaskpass\fR で指定されたプログラムは、 自分に渡された引数をプロンプトとして表示し、 ユーザのパスワードを標準出力に書き出すべきである。 \&\fIaskpass\fR の値は、環境変数 \&\f(CW\*(C`SUDO_ASKPASS\*(C'\fR によって上書きすることができる。 .IP "noexec" 16 .IX Item "noexec" ライブラリ関数 \fIexecv()\fR, \fIexecve()\fR, \fIfexecve()\fR のダミー版 (単にエラーを返すだけの関数) が入っている共有ライブラリの絶対パス。 これは \f(CW\*(C`LD_PRELOAD\*(C'\fR やそれに相当するものをサポートしているシステムで \&\fInoexec\fR 機能を実現するために使用される。 デフォルトでは \fI/usr/local/libexec/sudo_noexec.so\fR になっている。 .SH "デバッグ・フラグ (sudo-1.8.4 の新機能)" .IX Header "DEBUG FLAGS" バージョン 1.8.4 以上の \fBsudo\fR は、 デバッグのための柔軟な枠組みに対応しており、 問題が発生したとき、\fBsudo\fR の内部で何が起きているかを突き止めるために、 それを利用することができる。 .PP \&\f(CW\*(C`Debug\*(C'\fR 行の構成は、\f(CW\*(C`Debug\*(C'\fR というキーワードに始まり、それに、デバッグ対象のプログラム名 (\fBsudo\fR, \fBvisudo\fR, \fBsudoreplay\fR) とデバッグファイル名が続き、 最後にコンマで区切ったデバッグ・フラグのリストが来るという形になっている (訳注: \f(CW\*(C`Debug\*(C'\fR 行も \fI/etc/sudo.conf\fR に記載する)。 デバッグフラグのシンタクスは、\&\fBsudo\fR と \fIsudoers\fR プラグインでは、 \&\fIsubsystem\fR@\fIpriority\fR という書式を用いるが、 「\f(CW\*(C`,\*(C'\fR」というコマンドを含まないかぎり、 プラグインが別の書式を使っても構わない。 .PP \"O For instance: 一例を挙げよう。 .PP .Vb 1 \& Debug sudo /var/log/sudo_debug all@warn,plugin@info .Ve .PP 上記のように指定すれば、\fIwarn\fR レベル以上のすべてのデバッグメッセージを ログに記録することになる。さらに、plugin サブシステムに関しては、 \&\fIinfo\fR レベルのメッセージも記録する。 .PP 現在のところ、一プログラムあたり一行の \f(CW\*(C`Debug\*(C'\fR エントリしか使用できない。 プログラム名が \f(CW\*(C`sudo\*(C'\fR の \f(CW\*(C`Debug\*(C'\fR 行は、 \&\fBsudo\fR フロントエンド、\fBsudoedit\fR、及び \fBsudo\fR のプラグインによって共有される。将来のリリースでは、プラグインごとの \&\f(CW\*(C`Debug\*(C'\fR 行をサポートするかもしれない。 また、一つのプログラムに対する複数のデバッグファイルをサポートするかもしれない。 .PP \&\fBsudo\fR フロントエンドが使用する priority (重大度) を 深刻なものから挙げると、\fIcrit\fR, \fIerr\fR, \fIwarn\fR, \fInotice\fR, \&\fIdiag\fR, \fIinfo\fR, \fItrace\fR, \fIdebug\fR である。 ある priority を指定すると、 それよりも深刻なすべての priority も同時に指定したことになる。 たとえば、\fInotice\fR という priority を指定すれば、 \fInotice\fR レベル以上のデバッグメッセージがログに記録されるわけである。 .PP \&\fBsudo\fR では以下のサブシステムが使用できる。 .IP "\fIall\fR" 10 .IX Item "all" あらゆるサブシステムにマッチする .IP "\fIargs\fR" 10 .IX Item "args" コマンドライン引数の処理 .IP "\fIconv\fR" 10 .IX Item "conv" ユーザとのやりとり .IP "\fIedit\fR" 10 .IX Item "edit" sudoedit .IP "\fIexec\fR" 10 .IX Item "exec" コマンドの実行 .IP "\fImain\fR" 10 .IX Item "main" \&\fBsudo\fR のメイン関数 .IP "\fInetif\fR" 10 .IX Item "netif" ネットワーク・インターフェースの取扱い .IP "\fIpcomm\fR" 10 .IX Item "pcomm" プラグインとのやりとり .IP "\fIplugin\fR" 10 .IX Item "plugin" プラグインの設定 .IP "\fIpty\fR" 10 .IX Item "pty" 擬似 tty に関連したコード .IP "\fIselinux\fR" 10 .IX Item "selinux" SELinux に特有の取扱い .IP "\fIutil\fR" 10 .IX Item "util" ユーティリティ関数群 .IP "\fIutmp\fR" 10 .IX Item "utmp" utmp の取扱い .SH "返り値" .IX Header "RETURN VALUES" プログラムの実行に成功した場合、\fBsudo\fR が返す終了ステータスは、 実行したプログラムの終了ステータスそのものである。 .PP そうでない場合、設定やパーミッションに問題があったり、 \&\fBsudo\fR が指定されたコマンドを実行できなかったりしたときは、 \&\fBsudo\fR は返り値 1 で終了する。 後者の場合は、エラーメッセージが標準エラーに表示される。 また、\fBsudo\fR がユーザの \f(CW\*(C`PATH\*(C'\fR にある一つ以上のエントリを \fIstat\fR\|(2) できなかったときも、 エラーが標準エラーに出力される (ただし、そのディレクトリが存在しなかったり、 実際にはディレクトリでなかったりした場合は、 そのエントリは無視され、エラーは表示されない)。そうしたことは、 正常な環境では起きないはずのことである。\fIstat\fR\|(2) が \&\*(L"permission denied\*(R" を返す理由で一番よくあるのは、 ユーザーがオートマウントを使用していて、\f(CW\*(C`PATH\*(C'\fR にあるディレクトリの一つが目下到達不可能なマシンにある場合だ。 .SH "セキュリティに関する注意点" .IX Header "SECURITY NOTES" \&\fBsudo\fR は外部のコマンドをできるだけ安全に実行しようとする。 .PP 偽コマンドの実行 (command spoofing) を防止するため、 \&\fBsudo\fR はコマンドを捜してユーザの \s-1PATH\s0 を検索する際に、 \&\*(L".\*(R" と "" (どちらもカレントディレクトリを意味する) を最後に調べる (そのどちらか、あるいは両方が \s-1PATH\s0 中に存在すればだが)。 とは言え、環境変数 \f(CW\*(C`PATH\*(C'\fR そのものは変更されずに、 そのまま \fBsudo\fR が実行するプログラムに渡されることに注意してほしい。 .PP \&\fBsudo\fR は通常、 自分が明示的に実行したコマンドしかログに記録しないことに気を付けてほしい。 ユーザが \f(CW\*(C`sudo su\*(C'\fR や \f(CW\*(C`sudo sh\*(C'\fR といったコマンドを実行した場合、そのシェルから続いて実行されるコマンドは \&\fBsudo\fR のセキュリティ・ポリシーの対象にならない。 シェル・エスケープを提供するコマンドについても (たいていのエディタが それに含まれる) 同じことが言える。 確かに、I/O ロギングが有効になっている場合は、 シェルから続いて実行されるコマンドも、その入力や出力を記録されることになるが、 従来からあるログに記録されるわけではないのである。 こうしたことから、ユーザに \fBsudo\fR 経由でコマンドの使用を許すときは、 そのコマンドが事実上ルート・シェルをうっかりユーザに与えていないかを、 念には念を入れて確認しなければならない。もっと詳しいことが知りたかったら、 \&\fIsudoers\fR\|(5) の「シェル・エスケープを防止する」 のセクションを御覧になるとよい。 .PP セキュリティ上問題になりかねない情報を漏洩しないように、 \&\fBsudo\fR はデフォルトでは、自己を実行中のコアダンプを抑止している (指定されたコマンドを実行するときには、コアダンプを有効にし直すのである)。 \&\fBsudo\fR そのもののクラッシュをデバッグするために、 コアダンプを有効に戻したいならば、 \&\fI/etc/sudo.conf\fR ファイルで \*(L"disable_coredump\*(R" を false にすればよい。(訳注: キーワード Set は sudo-1.8.4 以上でなければ、 使用できない。) .PP .Vb 1 \& Set disable_coredump false .Ve .PP 注意してほしいのは、たいていのオペレーティングシステムが、 デフォルトでは setuid プログラムのコアダンプを抑止していることだ。 \&\fBsudo\fR もそうしたプログラムの一つである。 そこで、実際に \fBsudo\fR のコアダンプ・ファイルを取得するには、 setuid プロセスに対するコアダンプを有効にする必要があるかもしれない。 \&\s-1BSD\s0 や Linux のシステムでは、これは sysctl コマンドによって行われる。 Solaris では coreadm コマンドが使用できる。 .SH "環境変数" .IX Header "ENVIRONMENT" \&\fBsudo\fR は以下の環境変数を利用する。実行するコマンドの環境の内容は、 セキュリティ・ポリシーによる制御の対象になる。 .ie n .IP "\*(C`EDITOR\*(C'" 16 .el .IP "\f(CW\*(C`EDITOR\*(C'\fR" 16 .IX Item "EDITOR" 環境変数 \f(CW\*(C`SUDO_EDITOR\*(C'\fR や \f(CW\*(C`VISUAL\*(C'\fR が設定されていないとき、 \&\fB\-e\fR (sudoedit) モードで使用するデフォルトのエディタ .ie n .IP "\*(C`MAIL\*(C'" 16 .el .IP "\f(CW\*(C`MAIL\*(C'\fR" 16 .IX Item "MAIL" \&\fB\-i\fR オプションが指定された場合や、 \&\fIsudoers\fR で \fIenv_reset\fR が有効になっている場合に、 変身対象ユーザのメールスプールにセットされる .ie n .IP "\*(C`HOME\*(C'" 16 .el .IP "\f(CW\*(C`HOME\*(C'\fR" 16 .IX Item "HOME" \&\fB\-i\fR や \fB\-H\fR オプションが指定された場合や、 \&\fIsudoers\fR で \fIenv_reset\fR や \fIalways_set_home\fR が設定されている場合、あるいは \fIsudoers\fR で \fIset_home\fR が設定され、 かつ \fB\-s\fR オプションが指定された場合に、 変身対象ユーザのホームディレクトリにセットされる .ie n .IP "\*(C`PATH\*(C'" 16 .el .IP "\f(CW\*(C`PATH\*(C'\fR" 16 .IX Item "PATH" セキュリティ・ポリシーによって上書きされるかもしれない .ie n .IP "\*(C`SHELL\*(C'" 16 .el .IP "\f(CW\*(C`SHELL\*(C'\fR" 16 .IX Item "SHELL" \&\fB\-s\fR オプションで起動するシェルを決めるのに使用する .ie n .IP "\*(C`SUDO_ASKPASS\*(C'" 16 .el .IP "\f(CW\*(C`SUDO_ASKPASS\*(C'\fR" 16 .IX Item "SUDO_ASKPASS" ターミナルが利用できない場合や、 \&\f(CW\*(C`\-A\*(C'\fR オプションが指定されている場合に、 パスワードを読み込むのに使用するヘルパープログラムのパスを指定する .ie n .IP "\*(C`SUDO_COMMAND\*(C'" 16 .el .IP "\f(CW\*(C`SUDO_COMMAND\*(C'\fR" 16 .IX Item "SUDO_COMMAND" sudo が実行するコマンドにセットされる .ie n .IP "\*(C`SUDO_EDITOR\*(C'" 16 .el .IP "\f(CW\*(C`SUDO_EDITOR\*(C'\fR" 16 .IX Item "SUDO_EDITOR" \&\fB\-e\fR (sudoedit) モードで使用するデフォルトのエディタ .ie n .IP "\*(C`SUDO_GID\*(C'" 16 .el .IP "\f(CW\*(C`SUDO_GID\*(C'\fR" 16 .IX Item "SUDO_GID" sudo を起動したユーザのグループ \s-1ID\s0 にセットされる .ie n .IP "\*(C`SUDO_PROMPT\*(C'" 16 .el .IP "\f(CW\*(C`SUDO_PROMPT\*(C'\fR" 16 .IX Item "SUDO_PROMPT" デフォルトのパスワード・プロンプトとして使用する .ie n .IP "\*(C`SUDO_PS1\*(C'" 16 .el .IP "\f(CW\*(C`SUDO_PS1\*(C'\fR" 16 .IX Item "SUDO_PS1" 設定すると、 実行されるプログラムの \f(CW\*(C`PS1\*(C'\fR がこの変数の値にセットされる .ie n .IP "\*(C`SUDO_UID\*(C'" 16 .el .IP "\f(CW\*(C`SUDO_UID\*(C'\fR" 16 .IX Item "SUDO_UID" sudo を起動したユーザのユーザ \s-1ID\s0 にセットされる .ie n .IP "\*(C`SUDO_USER\*(C'" 16 .el .IP "\f(CW\*(C`SUDO_USER\*(C'\fR" 16 .IX Item "SUDO_USER" sudo を起動したユーザのログイン名にセットされる .ie n .IP "\*(C`USER\*(C'" 16 .el .IP "\f(CW\*(C`USER\*(C'\fR" 16 .IX Item "USER" 変身対象ユーザにセットされる (オプション \fB\-u\fR が指定されていなければ、 root になる) .ie n .IP "\*(C`VISUAL\*(C'" 16 .el .IP "\f(CW\*(C`VISUAL\*(C'\fR" 16 .IX Item "VISUAL" 変数 \f(CW\*(C`SUDO_EDITOR\*(C'\fR が設定されていない場合に、 \&\fB\-e\fR (sudoedit) モードで使用するデフォルトのエディタ .SH "ファイル" .IX Header "FILES" .ie n .IP "\fI/etc/sudo.conf\fR" 24 .el .IP "\fI/etc/sudo.conf\fR" 24 .IX Item "/etc/sudo.conf" \&\fBsudo\fR フロントエンドの設定ファイル .IP "[\fB訳注\fR]:" 8 .IX Item "footnote3" 念のため、次の二つを追加しておく。詳細については \fIsudoers\fR\|(5) をご覧いただきたい。 .RS 4 .IP "\fI/etc/sudoers\fR" 20 .IX Item "/etc/sudoers" 誰が何を実行できるかを設定するファイル .IP "\fI/var/lib/sudo\fR" 20 .IX Item "/var/lib/sudo" \&\fBsudo\fR が認証情報の保存に使用するタイムスタンプを置く、 デフォルトのディレクトリ .RE .SH "用例" .IX Header "EXAMPLES" 注意: 以下の例は、 セキュリティ・ポリシーが適切に設定されていることを前提にしている。 .PP 読み取り不可のディレクトリのファイル一覧を取得する。 .PP .Vb 1 \& $ sudo ls /usr/local/protected .Ve .PP ユーザ yaz のホームディレクトリのファイル一覧を取得したいのだが、 ~yaz を含むファイルシステムが別のマシンにあって、 root でアクセスできるようにエクスポートされていない場合。 .PP .Vb 1 \& $ sudo \-u yaz ls ~yaz .Ve .PP ユーザ www として \fIindex.html\fR ファイルを編集する。 .PP .Vb 1 \& $ sudo \-u www vi ~www/htdocs/index.html .Ve .PP root と adm グループのユーザだけがアクセスできるシステムログを閲覧する。 .PP .Vb 1 \& $ sudo \-g adm view /var/log/syslog .Ve .PP jim に変身してエディタを実行する。 プライマリグループには別のグループを指定する。 .PP .Vb 1 \& $ sudo \-u jim \-g audio vi ~jim/sound.txt .Ve .PP マシンをリブートする。 .PP .Vb 1 \& $ sudo shutdown \-r +15 "quick reboot" .Ve .PP /home パーティションに存在するディレクトリのディスク使用量リストを作成する。 \&\f(CW\*(C`cd\*(C'\fR やファイル・リダイレクションがきちんと動作するように、 コマンドをサブシェルで実行していることに注目してほしい。 .PP .Vb 1 \& $ sudo sh \-c "cd /home ; du \-s * | sort \-rn > USAGE" .Ve .SH "関連項目" .IX Header "SEE ALSO" \&\fIgrep\fR\|(1), \fIsu\fR\|(1), \fIstat\fR\|(2), .if \n(LC \&\fIlogin_cap\fR\|(3), \&\fIpasswd\fR\|(5), \fIsudoers\fR\|(5), \fIsudo_plugin\fR\|(8), \fIsudoreplay\fR\|(8), \fIvisudo\fR\|(8) .SH "作者" .IX Header "AUTHORS" 多数の人々が長年に渡って \fBsudo\fR の開発に取り組んできた。当バージョ ンは主として次の者が書いたコードからできている。 .PP .Vb 1 \& Todd C. Miller .Ve .PP \&\fBsudo\fR の開発に貢献してくださった方々のリストについては、 \&\fBsudo\fR の配布に含まれる \s-1CONTRIBUTORS\s0 ファイルをご覧いただきたい (http://www.sudo.ws/sudo/contributors.html)。 .SH "履歴" .IX Header "HISTORY" \&\fBsudo\fR の簡単な履歴については、 配布物中の \s-1HISTORY\s0 ファイルをご覧いただきたい (http://www.sudo.ws/sudo/history.html)。 .SH "警告" .IX Header "CAVEATS" ユーザが \fBsudo\fR 経由で任意のコマンドを実行することを許可されているならば、 そのユーザがルート・シェルを獲得するのを防止する簡単な方法はない。 また、(エディタを含む) 多くのプログラムが、 シェル・エスケープを通してユーザがコマンドを実行できるようにしており、 この方法でユーザは \fBsudo\fR のチェックを回避することができる。 とは言え、たいていのシステムでは、 \&\fIsudoers\fR\|(5) モジュールの \fInoexec\fR 機能を用いて、 シェル・エスケープを抑止することが可能である。 .PP 下記のように sudo の中で直に \f(CW\*(C`cd\*(C'\fR コマンドを実行しても意味がない。 .PP .Vb 1 \& $ sudo cd /usr/local/protected .Ve .PP なぜなら、このコマンドが終了したとき、その親プロセス (つまり、 \&\fBsudo\fR を実行したシェル) は相変わらず元の状態のままだからだ。 より詳しく知りたかったら、「用例」セクションを御覧になってほしい。 .PP \&\fBsudo\fR を介してシェルスクリプトを実行すると、 ある種のオペレーティングシステムで setuid シェルスクリプトを危険なものにしているのと同一の、 カーネルのバグが表面化するおそれがある (使用している \s-1OS\s0 に /dev/fd/ ディレクトリがあれば、setuid シェルスクリプトはたいてい安全である)。 .SH "バグ" .IX Header "BUGS" \&\fBsudo\fR にバクを発見したと思ったら、下記のページにアクセスして、 バグレポートを提出していただきたい。 .br http://www.sudo.ws/sudo/bugs/ .SH "サポート" .IX Header "SUPPORT" ある程度の無料サポートが sudo-users メーリングリストを通して利用できる。 購読やアーカイブの検索には下記 URL を御覧になること。 .br http://www.sudo.ws/mailman/listinfo/sudo\-users .SH "免責" .IX Header "DISCLAIMER" \&\fBsudo\fR は「現状のまま」提供される。 明示的な、あるいは黙示的ないかなる保証も、 商品性や特定目的への適合性についての黙示的な保証を含め、 またそれのみに止まらず、これを否認する。詳細な全文については、 \&\fBsudo\fR と一緒に配布されている \s-1LICENSE\s0 ファイルや、 下記 Web ページを御覧いただきたい。 .br http://www.sudo.ws/sudo/license.html