OSDN Git Service

sudo: update to version 1.8.17
[linuxjm/jm.git] / manual / sudo / release / man5 / sudoers.ldap.5
1 .\" DO NOT EDIT THIS FILE, IT IS NOT THE MASTER!
2 .\" IT IS GENERATED AUTOMATICALLY FROM sudoers.ldap.mdoc.in
3 .\"
4 .\" Copyright (c) 2003-2016 Todd C. Miller <Todd.Miller@courtesan.com>
5 .\"
6 .\" Permission to use, copy, modify, and distribute this software for any
7 .\" purpose with or without fee is hereby granted, provided that the above
8 .\" copyright notice and this permission notice appear in all copies.
9 .\"
10 .\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
11 .\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
12 .\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
13 .\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
14 .\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
15 .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
16 .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17 .\" ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
18 .\"
19 .\"*******************************************************************
20 .\"
21 .\" This file was generated with po4a. Translate the source file.
22 .\"
23 .\"*******************************************************************
24 .\"
25 .\" Japanese Version Copyright (c) 2009 Yoichi Chonan
26 .\"         all rights reserved.
27 .\" Translated (sudo-1.7.2p1) Sat Nov 14 21:15:16 JST 2009
28 .\"         by Yoichi Chonan <cyoichi@maple.con.ne.jp>
29 .\" Updated & Modified (sudo-1.8.4p4) Wed May  9 12:26:33 JST 2012
30 .\"         by Yoichi Chonan
31 .\" Updated & Modified (sudo-1.8.17) Sat Sep 10 10:39:07 JST 2016
32 .\"         By Yoichi Chonan
33 .\"
34 .TH SUDOERS.LDAP 5 "June 15, 2016" "Sudo 1.8.17" "File Formats Manual"
35 .nh
36 .if  n .ad l
37 .SH 名前
38 \fBsudoers.ldap\fP \- LDAP を使用した sudoers ポリシーの設定
39 .SH 説明
40 \fBsudoers\fP セキュリティポリシーは \fIsudoers\fP ファイルによって設定するのが標準だが、
41 LDAP を通して設定することもできる。この方法は、大規模な分散環境で
42 sudoers セキュリティポリシーの設定を同期させたい場合に、
43 とりわけ便利かもしれない。
44 .PP
45 sudoers セキュリティポリシーの設定に LDAP を使用すると、有利な点がいくつかある。
46 .TP  4n
47 \fB\(bu\fP
48 \fBsudo\fP はもはや sudoers セキュリティポリシーの設定をまるまる全部読み込む必要がない。
49 LDAP を使用する場合は、\fBsudo\fP の実行ごとに、たった二、三回
50 LDAP に問い合わせを行うだけですむ。
51 そのため、LDAP 環境は実行速度が非常に早く、たいへん使い勝手がよい。
52 .TP  4n
53 \fB\(bu\fP
54 sudoers セキュリティポリシーの設定にタイプミスがあっても、
55 もうそのために \fBsudo\fP が終了してしまうことがない。
56 LDAP のデータは、sudo 用のスキーマに従っていなければ、
57 サーバーにロードできない。結果として、
58 正しいシンタクスが保証されることになる。
59 ユーザ名やホスト名をタイプミスすることなら相変わらずあるだろうが、
60 そのために \fBsudo\fP が動かなくなることはない。
61 .TP  4n
62 \fB\(bu\fP
63 エントリごとにオプションを指定して、
64 グローバルなデフォルト・オプションを上書きすることができる。
65 \fI/etc/sudoers\fP はグローバルなデフォルト・オプションと、ユーザ、ホスト、
66 コマンド、変身対象に結びついた限定されたオプションしかサポートしていない。
67 また、\fI/etc/sudoers\fP の書式は複雑で、ユーザには理解しにくいかもしれない。
68 オプションをエントリ内で直接指定する方が、ずっと自然である。
69 .TP  4n
70 \fB\(bu\fP
71 \fBvisudo\fP プログラムはもう必要がない。\fBvisudo\fP の役割は、
72 \fI/etc/sudoers\fP ファイルのロッキングとシンタクス・チェックである。
73 LDAP のデータ更新はアトミック操作なので
74 (訳注: それ故、データは更新されていないか、
75 すでに更新されたかのどちらかであって、中間状態がないので)、
76 ロッキングはもはや必要ではない。シンタクスは、
77 データが LDAP にインサートされるときチェックされるから、
78 シンタクス・チェック用の特別なツールも不要になっている。
79 .PP
80 LDAP による設定と \fIsudoers\fP ファイルによる設定との、もう一つの大きな違いは、
81 LDAP では \fBsudo\fP 専用のエイリアスがサポートされていないことである。
82 .PP
83 たいていの場合、\fBsudo\fP 専用のエイリアスは実のところ必要がない。
84 User_Aliases や Runas_Aliases の代わりに、
85 Unix のグループ、non\-Unix グループ (\fIgroup_plugin\fP を介して)、
86 ユーザのネットグループが使用できる。
87 また、Host_Aliases の代わりには、ホストのネットグループが使える。
88 LDAP には グループやネットグループも格納できるので、
89 \fBsudo\fP 専用のエイリアスがどうしても必要というわけではないのだ。
90 .PP
91 Cmnd_Aliases もまったく必要がない。
92 一つの sudoRole エントリに複数のユーザを登録できるからだ。
93 複数のユーザが参照する Cmnd_Alias を定義する代わりに、
94 複数のコマンドを含む sudoRole エントリを一つ作成して、
95 そこに複数のユーザを割り当てればよい。
96 .IP "[\fB訳注\fP]:" 8
97 原文の著者は、sudoers セキュリティポリシーの設定の単位となる 
98 objectClass 属性が sudoRole の LDAP エントリのうち、
99 \fI/etc/sudoers\fP の各ユーザ設定に相当するものを「a sudoRole」と呼んでいる。
100 「sudoRole エントリ」という訳語を当てた。
101 .SS "LDAP の SUDOers コンテナ"
102 LDAP では、sudoers セキュリティポリシーの設定は
103 ou=SUDOers コンテナの下に配置されている。
104 .IP "[\fB訳注\fP]:" 8
105 ここで言うコンテナ (容器、入れもの) とは、データを格納するためではなく、
106 データを含む下位のエントリをまとめておくために存在する上位エントリのことである。
107 たとえば、OpenLDAP 用の ou=SUDOers コンテナなら、
108 その設定ファイルの記述はこんなふうになる (sudo 同梱の README.LDAP から引用)。
109 .nf
110 .sp
111 .RS 12n
112 dn: ou=SUDOers,dc=example,dc=com
113 objectClass: top
114 objectClass: organizationalUnit
115 ou: SUDOers
116 .RE
117 .fi
118 .PP
119 .PP
120 sudo はまず最初に SUDOers コンテナ配下に cn=defaults のエントリを捜す。
121 見つかった場合は、複数回指定可能な sudoOption 属性が、\fI/etc/sudoers\fP
122 のグローバルな Defaults 行と同じやり方で解析される。以下の例では、
123 環境変数 SSH_AUTH_SOCK がすべてのユーザの環境に保存されることになる。
124 .nf
125 .sp
126 .RS 4n
127 dn: cn=defaults,ou=SUDOers,dc=example,dc=com
128 objectClass: top
129 objectClass: sudoRole
130 cn: defaults
131 description: Default sudoOption's go here
132 sudoOption: env_keep+=SSH_AUTH_SOCK
133 .RE
134 .fi
135 .PP
136 LDAP において \fI/etc/sudoers\fP の個々の「ユーザ設定」に相当するのは、
137 sudoRole エントリである。それは以下の属性からなっている。
138 .TP  6n
139 \fBsudoUser\fP
140 次のうちのいづれか。ユーザ名、ユーザ ID (接頭辞 '#' が付く)、
141 Unix グループ名またはグループ ID (それぞれ接頭辞 '%' と
142 \&'%#' が付く)、ユーザのネットグループ (接頭辞 '+' が付く)、
143 non\-Unix グループ名またはグループ ID (それぞれ接頭辞 '%:' と '%:#' が付く)。
144 なお、ユーザのネットグループについては、
145 ネットグループの成員中のユーザとドメインの要素のみを使って、マッチングが行われる。
146 ホストの要素はマッチングに使用されない。
147 non\-Unix グループが使用できるのは、グローバルな \fIdefaults\fP sudoRole
148 オブジェクトで適切な \fIgroup_plugin\fP が指定されているときだけである。
149 .TP  6n
150 \fBsudoHost\fP
151 次のうちのいづれか。ホスト名、IP アドレス、ネットワークアドレス、
152 ホストのネットグループ (接頭辞 '+' が付く)。
153 ALL という特別な値はいかなるホストにもマッチする。
154 なお、ホストのネットグループについては、
155 ネットグループの成員中のホスト (完全修飾名とそうでないもののどちらでも)
156 とドメインの要素のみを使って、マッチングが行われる。
157 ユーザの要素はマッチングに使用されない。
158 .TP  6n
159 \fBsudoCommand\fP
160 絶対パスで指定した Unix のコマンド名。コマンドライン引数を付けてもよく、
161 glob 文字 (ワイルドカードとも言う) を含んでいてもよい。
162 コマンドに感嘆符 '\&!' を接頭辞として付けると、
163 ユーザにそのコマンドの実行を禁じることになる。
164 .sp
165 コマンド名として組み込みコマンドの "sudoedit" を使用すれば、
166 ユーザが \fBsudo\fP を \fB\-e\fP オプション付きで (あるいは、\fBsudoedit\fP の名前で)
167 実行するのを許可することになる。普通のコマンドの場合と同じように、
168 コマンドライン引数まで指定してもよい。"sudoedit" は
169 \fBsudo\fP 本体に組み込まれたコマンドなので、これをコマンド名に指定するときは、
170 頭にパスをつけてはいけないことに注意していただきたい。
171 .sp
172 ALL という特別な値は、いかなるコマンドにもマッチする。
173 .sp
174 コマンド名の前に SHA\-2 ダイジェストが付いていると、実行が許可されるのは、
175 ダイジェストがマッチしたときだけになる。これは、\fBsudo\fP を実行するユーザが、
176 対象となるコマンドやその親ディレクトリに書き込み権限を持っているような場合に、
177 役に立つだろう。ダイジェストのフォーマットとしては、sha224, sha256,
178 sha384, sha512 がサポートされている。ダイジェスト名の後ろにはコロン
179 (':\&') を置いて、その後に実際のダイジェストを続けなければならない。
180 ダイジェストは、16 進数でも base64 形式でもよい。
181 たとえば、sudoCommand に対して以下の値を指定すると、
182 .nf
183 .sp
184 .RS 10n
185 sha224:0GomF8mNN3wlDt1HD9XldjJ3SNgpFdbjO1+NsQ /bin/ls
186 .RE
187 .fi
188 .RS 6n
189 .sp
190 ユーザが \fI/bin/ls\fP を実行できるのは、\fI/bin/ls\fP の sha224
191 ダイジェストが指定した値とマッチしたときだけになる。
192 コマンドのダイジェストをサポートしているのは、バージョン 1.8.7 以上だけである。
193 .RE
194 .TP  6n
195 \fBsudoOption\fP
196 働きは、前述のグローバルオプションと同じだが、それが属している
197 sudoRole エントリに対してのみ効果がある。
198 .TP  6n
199 \fBsudoRunAsUser\fP
200 変身対象となるユーザ名か uid (接頭辞 '#' が付く) を指定する。
201 変身対象ユーザをリストに含む Unix グループ名 (接頭辞 '%' が付く) や、
202 ユーザのネットグループ (接頭辞 '+' が付く) も使える。
203 特別な値 ALL は、いかなるユーザにもマッチする。
204 .sp
205 属性 sudoRunAsUser は、バージョン 1.7.0 以上の \fBsudo\fP でなければ、
206 利用できない。それ以前のバージョンの \fBsudo\fP では、
207 代わりに属性 sudoRunAs を使用している。
208 .TP  6n
209 \fBsudoRunAsGroup\fP
210 変身対象となる Unix グループ名か gid (接頭辞 '#' が付く)。
211 特別な値 ALL はいかなるグループにもマッチする。
212 .sp
213 属性 sudoRunAsGroup は、バージョン 1.7.0 以上の \fBsudo\fP でなければ、
214 利用できない。
215 .TP  6n
216 \fBsudoNotBefore\fP
217 yyyymmddHHMMSSZ 形式のタイムスタンプ。
218 この属性を含む sudoRole エントリがいつから有効になるかという、
219 スタート日時を指定するのに使用する。
220 複数の sudoNotBefore が存在する場合は、一番早い日時が採用される。
221 タイムスタンプは協定世界時 (UTC) によるものでなければならず、
222 ローカル・タイムゾーンによるものではないことに注意していただきたい。
223 分や秒の部分は省略できるが、LDAP サーバによっては (RFC の規定に反して)
224 分や秒の指定を必須にしていることもある。
225 .sp
226 属性 sudoNotBefore は、バージョン 1.7.5 以上の \fBsudo\fP でなければ、
227 利用できない。また、\fI/etc/ldap.conf\fP の \fBSUDOERS_TIMED\fP
228 オプションで明示的に有効にする必要がある。
229 .TP  6n
230 \fBsudoNotAfter\fP
231 yyyymmddHHMMSSZ 形式のタイムスタンプ。
232 この属性を含む sudoRole エントリがもはや有効ではなくなる、
233 失効日時を示している。複数の sudoNotAfter が存在する場合は、
234 一番最後の日時が採用される。
235 タイムスタンプは協定世界時 (UTC) によるものでなければならず、
236 ローカル・タイムゾーンによるものではないことに注意していただきたい。
237 分や秒の部分は省略できるが、LDAP サーバによっては (RFC の規定に反して)
238 分や秒の指定を必須にしていることもある。
239 .sp
240 属性  sudoNotAfter は、バージョン 1.7.5 以上の \fBsudo\fP でなければ、
241 利用できない。また、\fI/etc/ldap.conf\fP の \fBSUDOERS_TIMED\fP
242 オプションで明示的に有効にする必要がある。
243 .TP  6n
244 \fBsudoOrder\fP
245 LDAP から取り出される sudoRole エントリには、固有の順番というものがない。
246 そこで、整数の値を取る sudoOrder 属性を使用して (浮動小数点値をサポートする
247 LDAP サーバでは、浮動小数点値も使える)、マッチするエントリの順番付けを行う。
248 そうすることで、LDAP による sudoers 設定のエントリが、
249 エントリの順番が結果に影響を及ぼす sudoers ファイルの動作を、
250 より忠実に真似られるようになるわけだ。
251 sudoOrder 属性を使用すると、複数のエントリがマッチする場合には、
252 一番大きな sudoOrder 属性を持つエントリが選ばれることになる。この動作は、
253 sudoers ファイルの「最後にマッチしたものが選ばれる」動作に相当するわけである。
254 sudoOrder 属性が指定されていない場合は、値が 0 であると見なされる。
255 .sp
256 属性 sudoOrder は、バージョン 1.7.5 以上の \fBsudo\fP でなければ、
257 利用できない。
258 .PP
259 上記の各属性は単一の値を持つべきだが、同じタイプの属性が複数回現れても構わない。
260 sudoRole エントリは、sudoUser、sudoHost、sudoCommand を、
261 少なくともそれぞれ一個は含んでいなければならない。
262 .PP
263 次の例では、wheel グループのユーザに
264 \fBsudo\fP 経由でいかなるホストでも任意のコマンドの実行を許可している。
265 .nf
266 .sp
267 .RS 4n
268 dn: cn=%wheel,ou=SUDOers,dc=example,dc=com
269 objectClass: top
270 objectClass: sudoRole
271 cn: %wheel
272 sudoUser: %wheel
273 sudoHost: ALL
274 sudoCommand: ALL
275 .RE
276 .fi
277 .SS "LDAP を使って sudoers セキュリティポリシーの設定を照合するときの詳細"
278 LDAP を使って、あるユーザに関する sudoers セキュリティポリシーを照合するとき、
279 LDAP の問い合わせは \fBsudo\fP の実行ごとにたった二回か三回行われるだけである。
280 一回目の問い合わせは、グローバル・オプションを解析するために行われる。
281 二回目の問い合わせは、\fBsudo\fP を実行するユーザのユーザ名や、
282 所属グループに対応するエントリを見つけるためだ
283 (特別なタグ ALL が何にでもマッチするのは、この場合も同様である)。
284 ユーザ名やグループに対応するエントリが得られなかった場合は、
285 三回目の問い合わせが行われ、ユーザのネットグループや
286 non\-Unix グループを含んでいるすべてのエントリーを取得して、
287 問題のユーザがそのどれかに属していないかをチェックする。
288 .PP
289 \fI/etc/ldap.conf\fP の設定オプション \fBSUDOERS_TIMED\fP を有功にして、
290 エントリの日時制限を使えるようにしている場合は、
291 LDAP の問い合わせにサブフィルターによる選別が伴うことになる。
292 そのサブフィルターが、日時制限が存在するエントリについては、
293 その制限を満たしているエントリのみに、情報の検索を限定するのである。
294 .PP
295 \fBNETGROUP_BASE\fP 設定オプションが使用されている場合は
296 (下記の 「ldap.conf の設定」を参照)、
297 ユーザがどことどこのネットグループに所属しているかを調べるための問い合わせが、
298 sudoers セキュリティポリシー設定の問い合わせの前に行われる。
299 そうすることで、セキュリティポリシー設定の問い合わせに使う文字列に、
300 ネットグループを Unix グループと同じように使うことが可能になるのだ。
301 上で述べた三回目の問い合わせは、
302 グループ・プロバイダー・プラグインも同時に設定されていないかぎり、行われない。
303 ネットグループについての \fBsudo\fP による LDAP の問い合わせは、
304 実際には次のように行われる。
305 .TP  5n
306 1.\&
307 nisNetgroupTriple (ユーザ、ホスト、NIS ドメインを含む) を持ったすべての
308 nisNetgroup レコードと照合を行う。この問い合わせでは、
309 nisNetgroupTriple エントリーのホスト名が長い形式でも短い形式でも、
310 あるいは、タプルにホスト名が指定されていなくても、マッチすることになる。
311 問い合わせに NIS ドメインがセットされている場合にマッチするのは、
312 そのドメインを含むか、あるいは、ドメインの指定がないエントリだけである。
313 NIS ドメインがセットされていない場合は、ワイルドカードが使用され、
314 どんなドメイン名にもマッチすることになるが、
315 LDAP サーバの中には、使用している NIS スキーマが、
316 nisNetgroupTriple に対するワイルドカードをサポートしていないものがあることに留意していただきたい。
317 .TP  5n
318 2.\&
319 問い合わせを繰り返して行い、すでにマッチしたレコードを指す
320 memberNisNetgroup エントリが、入れ子のように使われている
321 nisNetgroup レコードがあれば、そうしたものを見つけ出す。
322 .PP
323 多数のネットグループを持つサイトでは、\fBNETGROUP_BASE\fP を使用すると、
324 \fBsudo\fP の実行速度を大幅に向上させることができる。
325 .SS "LDAP を使う場合と使わない場合の sudoers セキュリティポリシー設定の相違点"
326 LDAP を使用した場合は、sudoers セキュリティポリシー設定の処理方法に
327 \fI/etc/sudoers\fP の場合とは微妙な違いがいくつかある。たぶん最大の違いは、
328 RFC に書いてあるとおり、LDAP の順序づけは不定なので、
329 属性やエントリが何らかの決まった順序で返されることを期待できないことだろう。
330 .PP
331 それでも、個々のエントリに割り振られる順番については、sudoOrder
332 によってコントロールすることができる。
333 だが、ある特定のエントリ内での属性の順番については、
334 それを確定する方法は存在しないのだ。
335 もっとも、あるエントリーにコマンドに関して相反するルールがある場合は、
336 否定する方が優先される。いわゆるパラノイア的動作である
337 (それが一番すっきりしたマッチだとはかぎらないが)。
338 .PP
339 例を挙げてみよう。
340 .nf
341 .sp
342 .RS 4n
343 # /etc/sudoers の場合:
344 # shell 以外のすべてのコマンドを許可する
345 johnny  ALL=(root) ALL,!/bin/sh
346 # 次の設定は、ALL が最後にマッチするので、常にすべての
347 # コマンドを許可することになる
348 puddles ALL=(root) !/bin/sh,ALL
349
350 # 上記の johnny に相当する LDAP のエントリ:
351 # shell 以外のすべてのコマンドを許可する
352 dn: cn=role1,ou=Sudoers,dc=my\-domain,dc=com
353 objectClass: sudoRole
354 objectClass: top
355 cn: role1
356 sudoUser: johnny
357 sudoHost: ALL
358 sudoCommand: ALL
359 sudoCommand: !/bin/sh
360
361 # 上記の puddles に相当する LDAP のエントリ:
362 # ALL が最後に指定されているが、LDAP のコードでは、
363 # よりパラノイア的な方を、指定された設定と見なすようになって
364 # いるため、これもまた role1 と同じように動作することに
365 # 注意していただきたい
366 dn: cn=role2,ou=Sudoers,dc=my\-domain,dc=com
367 objectClass: sudoRole
368 objectClass: top
369 cn: role2
370 sudoUser: puddles
371 sudoHost: ALL
372 sudoCommand: !/bin/sh
373 sudoCommand: ALL
374 .RE
375 .fi
376 .PP
377 もう一つの相違は、Host、User、Runas についての否定は、
378 現在のところ無視されるということだ。
379 たとえば、以下に挙げるような属性は期待どおりに動作しない。
380 .nf
381 .sp
382 .RS 4n
383 # joe 以外の全員とマッチしないどころか、
384 # 誰にもマッチしない
385 sudoUser: !joe
386
387 # joe 以外の全員とマッチしないどころか、
388 # joe を含む全員にマッチしてしまう
389 sudoUser: ALL
390 sudoUser: !joe
391
392 # web01 以外のすべてとマッチしないどころか、
393 # web01 を含むすべてのホストにマッチしてしまう
394 sudoHost: ALL
395 sudoHost: !web01
396 .RE
397 .fi
398 .SS "sudo 用のスキーマ"
399 \fBsudo\fP の LDAP サポートを利用するためには、お使いの LDAP サーバに
400 \fBsudo\fP 用のスキーマをインストールしなければならない。
401 そして、sudoUser 属性の索引を必ず作成しておく。
402 .PP
403 たぶん、\fBsudo\fP の配布物中には三種類のスキーマが入っていると思う。
404 すなわち OpenLDAP サーバ用 (\fIschema.OpenLDAP\fP)、
405 Netscape ディレクトリサーバの流れを汲むサーバ用 (\fIschema.iPlanet\fP)、
406 Microsoft Active Directory 用 (\fIschema.ActiveDirectory\fP) のスキーマである。
407 .PP
408 OpenLDAP 用の形式にした \fBsudo\fP のスキーマは、
409 「用例」セクションにも記載しておいた。
410 .SS "ldap.conf の設定"
411 sudo は LDAP に関する設定を知るために \fI/etc/ldap.conf\fP を読み込む。
412 通例、このファイルは、
413 LDAP に対応しているさまざまなクライアントの間で共有されている。
414 それ故、設定の大部分は \fBsudo\fP 専用ではない。
415 注意すべきは、\fBsudo\fP は \fI/etc/ldap.conf\fP を独自に解析しており、
416 ldap.conf(5) のマニュアルで説明されているものとは
417 異なるオプションをサポートしていることがあるということだ。
418 \fIldap.conf\fP のパスは、sudo.conf(5) ファイルでプラグインに対する引き数
419 \fIldap_conf\fP を使用すれば、変更することができる
420 (訳注: sudoers ポリシー・プラグインに対して指定できる引き数については、
421 sudoers(5) のマニュアルの「sudoers ポリシー・プラグインを使うための
422 sudo.conf の設定」セクションに説明がある)。
423 .PP
424 もうひとつ注意していただきたいのは、
425 OpenLDAP ライブラリを使っているシステムでは、
426 \fI/etc/openldap/ldap.conf\fP やユーザの \fI.ldaprc\fP
427 ファイルで指定しているデフォルト値が使用されないことである。
428 .PP
429 すなわち、\fI/etc/ldap.conf\fP に明示的に記載され、かつ \fBsudo\fP
430 でサポートされているオプションのみが使用される。
431 設定オプションを以下に大文字で列挙するが、
432 解析されるときは大文字小文字は区別されない。
433 .PP
434 パウンド記号 ('#') を使用すれば、
435 以下はコメントであると示すことができる。すなわち、
436 コメントの印と、それに続くいかなるテキストも、行末に至るまで、
437 無視されることになる。長い行は、行末にバックスラッシュ ('\e')
438 を置けば、継続することができる。
439 行頭の空白 (white space)は、継続記号を使用している場合でも、
440 行頭から取り除かれることに注意していただきたい。
441 .TP  6n
442 \fBBIND_TIMELIMIT\fP \fIseconds\fP
443 \fBBIND_TIMELIMIT\fP パラメータでは、
444 LDAP サーバに接続しようとするときの待ち時間を秒数で指定する。
445 \fBURI\fP や \fBHOST\fP が複数指定されている場合は、その時間だけ待ってから、
446 リスト中の次のサーバに接続を試みることになる。
447 .TP  6n
448 \fBBINDDN\fP \fIDN\fP
449 \fBBINDDN\fP パラメータでは、誰の名前で LDAP の操作を行うかを、
450 識別名 (DN) を使って指定する。これが指定されていない場合、
451 LDAP の操作は anonymous の名前で実行される。LDAP サーバは、
452 たいていデフォルトで anonymous によるアクセスを許可しているものである。
453 .TP  6n
454 \fBBINDPW\fP \fIsecret\fP
455 \fBBINDPW\fP パラメータでは、LDAP の操作を行うときに使用するパスワードを指定する。
456 通常、このパラメータは、\fBBINDDN\fP パラメータと組み合わせて使用する。
457 \fIsecret\fP は、プレーンテキストのパスワードでもよく、
458 "base64:" という接頭辞付きの、base64 でエンコードした文字列でもよい。
459 たとえば、次のようなものだ。
460 .nf
461 .sp
462 .RS 10n
463 BINDPW base64:dGVzdA==
464 .RE
465 .fi
466 .RS 6n
467 .sp
468 プレーンテキストのパスワードを使用する場合、
469 パスワードは引用符を付けない単なる文字列にするべきだ。
470 プレーンテキストのパスワード中には、コメント文字 ('#')
471 があってはならない。また、バックスラッシュ ('\e')
472 による特殊文字のエスケープはサポートされていない。
473 .RE
474 .TP  6n
475 \fBDEREF\fP \fInever/searching/finding/always\fP
476 検索を行うときに、alias の参照展開をどうするかを指定する。
477 このオプションについての詳しい説明は、ldap.conf(5) のマニュアルにある。
478 .TP  6n
479 \fBHOST\fP \fIname[:port] ...\fP
480 \fBURI\fP パラメータ (下記参照) が指定されていない場合は、
481 \fBHOST\fP パラメータで指定する空白 (white space)
482 で区切ったリストが、接続する LDAP サーバになる。
483 各ホストにはコロン (':\&') に続けて、ポート番号を書いてもよい。
484 \fBHOST\fP パラメータは非推奨であり、\fBURI\fP で指定する方が望ましい。
485 このパラメータがあるのは、後方互換のためである。
486 .TP  6n
487 \fBKRB5_CCNAME\fP \fIfile name\fP
488 リモート・サーバに対して認証をするときに使用する Kerberos 5
489 資格証明キャッシュのパス。このオプションは、SASL 認証 (下記参照)
490 を使用するときしか意味を持たない。
491 .TP  6n
492 \fBLDAP_VERSION\fP \fInumber\fP
493 サーバに接続するときに使用する LDAP プロトコルのバージョン。
494 デフォルトの値は、プロトコルバージョン 3 である。
495 .TP  6n
496 \fBNETGROUP_BASE\fP \fIbase\fP
497 LDAP でネットグループの問い合わせを行うときに使用するベース DN を指定する。
498 ドメインが example.com ならば、たいてい ou=netgroup,dc=example,dc=com
499 という形になる。\fBNETGROUP_BASE\fP を複数回指定してもよい。
500 その場合は、指定された順番で問い合わせが行われることになる。
501 .sp
502 このオプションを使用すると、
503 LDAP 経由で直接ユーザのネットグループを問い合わせることができる。
504 そうする方が、sudoRole オブジェクトのうちで
505 \&'+' という接頭辞を持つ sudoUser を含んでいるものをすべて取得するよりも、
506 たいていの場合動作が高速になる。LDAP サーバによっては、
507 nisNetgroup オブジェクトをその nisNetgroupTriple メンバによって検索できるようにするためには、
508 使用している NIS スキーマに変更を加える必要があるものも存在する。
509 OpenLDAP の \fBslapd\fP の場合は、
510 nisNetgroupTriple アトリビュートに以下の変更を加えなければならない。
511 .nf
512 .sp
513 .RS 10n
514 attributetype ( 1.3.6.1.1.1.1.14 NAME 'nisNetgroupTriple'
515     DESC 'Netgroup triple'
516     EQUALITY caseIgnoreIA5Match
517     SUBSTR caseIgnoreIA5SubstringsMatch
518     SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
519 .RE
520 .fi
521 .TP  6n
522 \fBNETGROUP_SEARCH_FILTER\fP \fIldap_filter\fP
523 \fBsudo\fP が LDAP でネットグループの問い合わせを行うとき、
524 どんな情報を返すかを限定する LDAP のフィルター。通常 \fIldap_filter\fP は、
525 attribute=value とか (&(attribute=value)(attribute2=value2))
526 という形を取る。デフォルトの検索フィルターは、
527 objectClass=nisNetgroupである。\fIldap_filter\fP の指定を省略すると、
528 検索フィルターが全く使われないことになる。このオプションは、
529 LDAP で直接ネットグループの問い合わせを行うときしか効果を持たない。
530 .TP  6n
531 \fBNETWORK_TIMEOUT\fP \fIseconds\fP
532 \fBBIND_TIMELIMIT\fP の別名。OpenLDAP との互換のためにある。
533 .TP  6n
534 \fBPORT\fP \fIport_number\fP
535 \fBURI\fP パラメータが指定されず、\fBHOST\fP
536 パラメータでもポートが指定されていないときは、\fBPORT\fP パラメータが
537 LDAP サーバに接続するときのデフォルトのポートを示すことになる。
538 \fBPORT\fP パラメータが使用されていない場合、デフォルトのポートは
539 LDAP では 389 番、LDAP over TLS (SSL) では 636 番である。
540 \fBPORT\fP パラメータは非推奨であり、\fBURI\fP で指定する方が望ましい。
541 このパラメータは後方互換のためにのみ存在している。
542 .TP  6n
543 \fBROOTBINDDN\fP \fIDN\fP
544 \fBROOTBINDDN\fP パラメータでは、
545 sudoers セキュリティポリシー設定の問い合わせのような、
546 特権的な LDAP 操作をするとき、誰の名前で行うかを識別名 (DN)
547 を使って指定する。その名前に対応するパスワードは、
548 sudo.conf(5) の中でプラグインに対する引き数 \fIldap_secret\fP
549 によってパスを指定されたファイルに書き込んでおくべきだ。
550 このパスのデフォルトは \fI/etc/ldap.secret\fP である
551 (訳注: \fBsudoers\fP プラグインに対する引き数 \fIldap_secret\fP
552 については、sudoers(5) のマニュアルに記述がある)。
553 このパラメータが設定されていない場合は、
554 \fBBINDDN\fP で指定した名前があるならば、それが使用される。
555 .TP  6n
556 \fBROOTUSE_SASL\fP \fIon/true/yes/off/false/no\fP
557 \fBROOTUSE_SASL\fP を有効にすると、
558 \fBsudo\fP のような特権的なプロセスから LDAP サーバに接続するときに
559 SASL 認証が可能になる。
560 .TP  6n
561 \fBSASL_AUTH_ID\fP \fIidentity\fP
562 LDAP サーバに接続するときに使用する SASL ユーザ名。
563 デフォルトでは、\fBsudo\fP は anonymous 接続を使用する。
564 このオプションは、SASL 認証を使用するときしか意味を持たない。
565 .TP  6n
566 \fBSASL_SECPROPS\fP \fInone/properties\fP
567 SASL セキュリティ・プロパティを指定する。プロパティなしならば、
568 \fInone\fP である。詳細については、
569 SASL プログラマーズ・マニュアルを参照すること。
570 このオプションは、SASL 認証を使用するときしか意味を持たない。
571 .TP  6n
572 \fBSSL\fP \fIon/true/yes/off/false/no\fP
573 \fBSSL\fP パラメータが on, true, yes になっていると、
574 LDAP サーバと通信する際に、常に TLS (SSL) の暗号化を使用することになる。
575 普通、そのためには、636 番ポート (ldaps) でサーバに接続していなければならない。
576 .TP  6n
577 \fBSSL\fP \fIstart_tls\fP
578 \fBSSL\fP パラメータを start_tls  に設定すると、LDAP サーバへの接続を平文で開始し、
579 バインド操作のために認証情報を送信する直前に、TLS の暗号化を始めることになる。
580 これには、暗号化された通信のために専用のポートを必要としないという長所がある。
581 このパラメータをサポートしているのは、
582 OpenLDAP サーバや Tivoli ディレクトリ・サーバのような
583 start_tls 拡張に対応している LDAP サーバのみである。
584 .TP  6n
585 \fBSUDOERS_BASE\fP \fIbase\fP
586 \fBsudo\fP が LDAP の問い合わせを行うときに使用するベース DN を指定する。
587 ドメインが example.com ならば、普通 ou=SUDOers,dc=example,dc=com
588 という形になる。\fBSUDOERS_BASE\fP を複数回指定してもよい。
589 その場合は、指定された順番で問い合わせが行われることになる。
590 .TP  6n
591 \fBSUDOERS_DEBUG\fP \fIdebug_level\fP
592 \fBsudo\fP が LDAP の問い合わせをするときのデバッグレベルを決める。
593 デバック情報の出力先は標準エラーである。値を 1 にすると、
594 多からず少なからずほどほどのデバック情報が表示される。
595 値を 2 にすると、マッチの結果そのものも出力される。
596 実用環境では、このパラメータを設定するべきではない。
597 ユーザが余計な情報に混乱しかねないからだ。
598 .sp
599 \fBSUDOERS_DEBUG\fP パラメータは非推奨であり、
600 将来のリリースでは廃止されることになる。今では同じ情報が、
601 \fBsudo\fP のデバッグ用フレームワークを通してログに記録されるようになっている。
602 \fIdebug_level\fP の値に 1 や 2 を指定する代わりに、サブシステムとして
603 "ldap" を使用し、重大度 (priority) にそれぞれ \fIdiag\fP や \fIinfo\fP
604 を指定すればよいのだ。
605 \fBsudo\fP のデバッグを設定する方法について詳細を知りたければ、
606 sudo.conf(5) のマニュアルをご覧になるとよい
607 (訳注: sudoers(5) のマニュアルの「デバッギング」セクションも参照)。
608 .TP  6n
609 \fBSUDOERS_SEARCH_FILTER\fP \fIldap_filter\fP
610 \fBsudo\fP が LDAP の問い合わせを行うとき、
611 どんな情報を返すかを限定する LDAP のフィルター。通常 \fIldap_filter\fP は、
612 attribute=value とか (&(attribute=value)(attribute2=value2))
613 という形を取る。デフォルトの検索フィルターは、objectClass=sudoRole である。
614 \fIldap_filter\fP の指定を省略すると、検索フィルターが全く使われないことになる。
615 .TP  6n
616 \fBSUDOERS_TIMED\fP \fIon/true/yes/off/false/no\fP
617 属性 sudoNotBefore や sudoNotAfter を評価するか、しないかを指定する。
618 この二つの属性によって日時制限のある sudoers
619 セキュリティポリシー設定のエントリを実現している。
620 .TP  6n
621 \fBTIMELIMIT\fP \fIseconds\fP
622 \fBTIMELIMIT\fP パラメータでは、
623 LDAP の問い合わせに対して応答が返ってくるまでの待ち時間を秒数で指定する。
624 .TP  6n
625 \fBTIMEOUT\fP \fIseconds\fP
626 \fBTIMEOUT\fP パラメータでは、
627 様々な LDAP API から応答が返ってくるまでの待ち時間を秒数で指定する。
628 .TP  6n
629 \fBTLS_CACERT\fP \fIfile name\fP
630 \fBTLS_CACERTFILE\fP の別名。OpenLDAP との互換のためにある。
631 .TP  6n
632 \fBTLS_CACERTFILE\fP \fIfile name\fP
633 認証局の証明書を一つにまとめたファイルのパス。たとえば、
634 \fI/etc/ssl/ca\-bundle.pem\fP といったファイルであり、
635 正当なものだとクライアントが認識している、
636 すべての認証局の証明書がそこに入っている。
637 このオプションをサポートしているのは、OpenLDAP ライブラリだけである。
638 Netscape 由来の LDAP ライブラリは、認証局とクライアント、
639 両方の証明書に対して、同一の証明書データベースを使用する
640 (\fBTLS_CERT\fP を参照)。
641 .TP  6n
642 \fBTLS_CACERTDIR\fP \fIdirectory\fP
643 \fBTLS_CACERTFILE\fP に似ているが、ファイルではなく、たとえば
644 \fI/etc/ssl/certs\fP といったディレクトリであり、
645 認証局の証明書が 1 認証局 1 ファイルの形でそこに入っている。
646 \fBTLS_CACERTDIR\fP で指定したディレクトリは、\fBTLS_CACERTFILE\fP
647 の後でチェックされる。このオプションをサポートしているのは、
648 OpenLDAP ライブラリだけである。
649 .TP  6n
650 \fBTLS_CERT\fP \fIfile name\fP
651 クライアントの証明書が入っているファイルのパス。この証明書は、
652 LDAP サーバに対するクライアントの認証に使用できる。
653 証明書のタイプは、利用する LDAP ライブラリによって異なっている。
654 .PP
655 .RS 6n
656 .PD 0
657 .TP  6n
658 OpenLDAP:
659 tls_cert /etc/ssl/client_cert.pem
660 .PD
661 .TP  6n
662 Netscape 由来:
663 tls_cert /var/ldap/cert7.db
664 .TP  6n
665 Tivoli ディレクトリ・サーバ:
666 使用しない。\fBTLS_KEY\fP で指定するキー・データベースに、
667 キーと証明書の両方が入っている。
668 .sp
669 Netscape 由来のライブラリを使う場合は、
670 このファイルに認証局の証明書も入れることができる。
671 .PD 0
672 .PP
673 .RE
674 .PD
675 .TP  6n
676 \fBTLS_CHECKPEER\fP \fIon/true/yes/off/false/no\fP
677 \fBTLS_CHECKPEER\fP が有効になっていると、
678 LDAP サーバの TLS 証明書が正当かどうかチェックが行われる。
679 LDAP サーバの証明書が正当であることを確認できない場合
680 (たいていは、署名している認証局が未知 (unknown) であることが理由だ)、
681 \fBsudo\fP はそのサーバに接続することができない。
682 \fBTLS_CHECKPEER\fP が無効になっている場合は、チェックが行われない。
683 このチェックをやらないことにすると、サーバーの身元の正真性を確認できないので、
684 中間者攻撃の可能性が生じることに気をつけていただきたい。
685 可能ならば、認証局の証明書は、その正当性のチェックができるように、
686 手元のマシンにインストールしておくべきである。このオプションは、
687 Tivoli ディレクトリ・サーバの LDAP ライブラリではサポートされていない。
688 .TP  6n
689 \fBTLS_KEY\fP \fIfile name\fP
690 \fBTLS_CERT\fP で指定した証明書に対応する、秘密鍵が入っているファイルのパス。
691 この秘密鍵はパスワードでプロテクトされていてはならない。
692 鍵のタイプは利用する LDAP ライブラリによって異なっている。
693 .PP
694 .RS 6n
695 .PD 0
696 .TP  6n
697 OpenLDAP:
698 tls_key /etc/ssl/client_key.pem
699 .PD
700 .TP  6n
701 Netscape 由来:
702 tls_key /var/ldap/key3.db
703 .TP  6n
704 Tivoli ディレクトリ・サーバ:
705 tls_key /usr/ldap/ldapkey.kdb
706 .PD 0
707 .PP
708 Tivoli LDAP ライブラリを使用する場合は、
709 このファイルに認証局やクライアントの証明書も入れることができる。
710 また、暗号化することもできる。
711 .RE
712 .PD
713 .TP  6n
714 \fBTLS_CIPHERS\fP \fIcipher list\fP
715 \fBTLS_CIPHERS\fP パラメータを使用すると、
716 管理者が TLS (SSL) 接続に使用可能な暗号アルゴリズムを限定することができる。
717 有効な暗号のリストについては、
718 OpenLDAP や Tivoli ディレクトリ・サーバのマニュアルを参照していただきたい。
719 Netscape 由来のライブラリは、このオプションをサポートしていない。
720 .TP  6n
721 \fBTLS_KEYPW\fP \fIsecret\fP
722 \fBTLS_KEYPW\fP では、
723 Tivoli ディレクトリ・サーバの LDAP ライブラリを使っているクライアントで、
724 キー・データベースを復号するのに使用するパスワードを指定する。
725 \fIsecret\fP は、プレーンテキストのパスワードでもよく、
726 "base64:" という接頭辞付きの、base64 でエンコードした文字列でもよい。
727 たとえば、次のようなものだ。
728 .nf
729 .sp
730 .RS 10n
731 TLS_KEYPW base64:dGVzdA==
732 .RE
733 .fi
734 .RS 6n
735 .sp
736 プレーンテキストのパスワードを使用する場合、
737 パスワードは引用符を付けない単なる文字列にするべきだ。
738 プレーンテキストのパスワード中には、コメント文字 ('#')
739 があってはならない。また、バックスラッシュ ('\e')
740 による特殊文字のエスケープはサポートされていない。
741 このオプションを使用するのならば、
742 \fI/etc/ldap.conf\fP を誰にでも読める状態にしてはいけない。
743 さもないと、パスワードを公開してしまうことになる。
744 パスワードの公開を避ける別の方法としては、
745 \fIstash file\fP を使用することも可能だ。そうすれば、
746 パスワードを暗号化した形で格納することができる (下記参照)。
747 .sp
748 \fBTLS_KEYPW\fP が指定されていない場合、
749 \fIstash file\fP が存在すれば、それを使用することになる。\fIstash file\fP は、
750 \fBTLS_KEY\fP で指定されるファイルと同じパスを持たなければならないが、
751 拡張子には .kdb の代わりに、.sth を使わなければならない。
752 たとえば、ldapkey.sth といった具合だ。
753 Tivoli ディレクトリ・サーバ出荷時のデフォルトの ldapkey.kdb は、
754 ssl_password というパスワードを使って暗号化されている。
755 \fIgsk8capicmd\fP というユーティリティを使用すれば、
756 キー・データベースの管理と、\fIstash file\fP の作成を行うことができる。
757 このオプションをサポートしているのは、Tivoli LDAP ライブラリだけである。
758 .RE
759 .TP  6n
760 \fBTLS_RANDFILE\fP \fIfile name\fP
761 \fBTLS_RANDFILE\fP では、random デバイスを持っていないシステムのために
762 エントロピー・ソースのパスを指定する。
763 これは通例、\fIprngd\fP や \fIegd\fP と組み合わせて使用するものだ。
764 このオプションをサポートしているのは、OpenLDAP ライブラリだけである。
765 .TP  6n
766 \fBURI\fP \fIldap[s]://[hostname[:port]] ...\fP
767 接続する一個以上の LDAP サーバ の URI を、空白 (white space)
768 で区切ったリストの形で指定する。プロトコルは \fIldap\fP と \fIldaps\fP
769 のどちらでもよい。後者は TLS (SSL) 暗号化に対応しているサーバの場合である。
770 ポートを指定しないときのデフォルトは、
771 ldap:// では 389 番ポート、ldaps:// では 636 番ポートである。
772 \fIhostname\fP を一つも指定しないと、
773 \fBsudo\fP は \fIlocalhost\fP に接続することになる。\fBURI\fP の行が二行以上ある場合は、
774 \fBURI\fP の行に複数のエントリがあるときと同様に処理される。
775 OpenSSL ライブラリを使用しているシステムのみが、
776 ldap:// と ldaps:// 両方の URI を混ぜて使うことに対応している。
777 たいていの商用 Unix では Netscape 由来のライブラリや
778 Tivoli LDAP ライブラリが使用されているが、
779 そうしたライブラリはどちらか一方に対応することしかできない。
780 .TP  6n
781 \fBUSE_SASL\fP \fIon/true/yes/off/false/no\fP
782 LDAP サーバが SASL 認証をサポートしているとき、
783 \fBUSE_SASL\fP を有効にする。
784 .TP  6n
785 \fBROOTSASL_AUTH_ID\fP \fIidentity\fP
786 \fBROOTUSE_SASL\fP が有効なとき使用する SASL ユーザ名。
787 .PP
788 「用例」セクションにある \fIldap.conf\fP のくだりも参照していただきたい。
789 .SS "nsswitch.conf の設定"
790 ビルド時に無効にしないかぎり、\fBsudo\fP はネームサービス・スイッチ・ファイル
791 \fI/etc/nsswitch.conf\fP を調べて、
792 sudoers セキュリティポリシーの設定を参照する順番を決める。
793 すなわち、\fI/etc/nsswitch.conf\fP で sudoers: という文字列に始まる行を探し、
794 その行によって参照順を決定するのである。
795 気をつけていただきたいのは、\fBsudo\fP は参照中、
796 マッチする項目に一度出会ったからと言って、そこで参照を終わりにしないことだ。
797 後でマッチしたものが前にマッチしたものよりも優先されるのである。
798 以下の参照元が有効である。
799 .PP
800 .RS 4n
801 .PD 0
802 .TP  10n
803 files
804 \fI/etc/sudoers\fP から sudoers セキュリティポリシーの設定を読み込む
805 .TP  10n
806 ldap
807 LDAP から sudoers セキュリティポリシーの設定を読み込む
808 .RE
809 .PD
810 .PP
811 なお、[NOTFOUND=return] の記述があると、
812 先行する参照元にユーザが見つからなかった場合、参照を中断することになる。
813 .PP
814 最初に LDAP を参照し、その後で (もし存在するならば)
815 ローカルマシン上の \fIsudoers\fP ファイルを調べるには、次のように指定する。
816 .nf
817 .sp
818 .RS 4n
819 sudoers: ldap files
820 .RE
821 .fi
822 .PP
823 ローカルマシン上の \fIsudoers\fP ファイルをまったく無視するには、
824 次のようにする。
825 .nf
826 .sp
827 .RS 4n
828 sudoers: ldap
829 .RE
830 .fi
831 .PP
832 \fI/etc/nsswitch.conf\fP ファイルが存在しなかったり、存在しても sudoers
833 の行がなかったりした場合は、次のデフォルト設定が使用される。
834 .nf
835 .sp
836 .RS 4n
837 sudoers: files
838 .RE
839 .fi
840 .PP
841 使用しているオペーレーティング・システムが nsswitch.conf
842 ファイルを使用しない場合でも、\fBsudo\fP は、AIX のシステム以外では
843 (次のセクションを参照)、\fI/etc/nsswitch.conf\fP
844 をサポートしていることに注意していただきたい。
845 .SS "netsvc.conf の設定"
846 AIX システムでは、\fI/etc/nsswitch.conf\fP ではなく、
847 \fI/etc/netsvc.conf\fP ファイルを調べに行く。\fBsudo\fP としては、
848 \fInetsvc.conf\fP を \fInsswitch.conf\fP のバリエーションとして扱うだけだ。
849 それ故、上のセクションの記述のうち、ファイルの書式に関係のないものは、
850 ここでも当てはまることになる。
851 .PP
852 最初に LDAP を参照し、その後で (もし存在するならば)
853 ローカルマシン上の \fIsudoers\fP ファイルを調べるには、次のように指定する。
854 .nf
855 .sp
856 .RS 4n
857 sudoers = ldap, files
858 .RE
859 .fi
860 .PP
861 ローカルマシン上の \fIsudoers\fP ファイルをまったく無視するには、
862 次のようにする。
863 .nf
864 .sp
865 .RS 4n
866 sudoers = ldap
867 .RE
868 .fi
869 .PP
870 LDAP を正式の参照元と見なし、LDAP にユーザが見つからなかったときのみ、
871 ローカルの \fIsudoers\fP ファイルを使用する。
872 .nf
873 .sp
874 .RS 4n
875 sudoers = ldap = auth, files
876 .RE
877 .fi
878 .PP
879 注意していただきたいが、上記の例において、auth 修飾子が影響を及ぼすのは、
880 ユーザを検索するときだけである。
881 Defaults エントリについては、LDAP と \fIsudoers\fP の両方が参照される。
882 .PP
883 \fI/etc/netsvc.conf\fP ファイルが存在しなかったり、存在しても
884 sudoers の行がなかったりした場合は、次のデフォルト設定が使用される。
885 .nf
886 .sp
887 .RS 4n
888 sudoers = files
889 .RE
890 .fi
891 .SS "sssd との統合"
892 \fISystem Security Services Daemon\fP (SSSD) を使用しているシステムで、
893 \fBsudo\fP が SSSD サポートを有効にしてビルドされている場合は、
894 LDAP の \fIsudoers\fP ルールをキャッシュするのに SSSD を使用することができる。
895 \fIsudoers\fP の参照先として SSSD を使用するためには、
896 \fI/etc/nsswitch.conf\fP の sudoers のエントリで ldap の代わりに
897 sssd を使わねばならない。なお、SSSD 用の \fBsudo\fP のバックエンドは、
898 \fI/etc/ldap.conf\fP ファイルを使用しないことに気をつけていただきたい。
899 SSSD と共に使用するときの \fBsudo\fP の設定についてより詳しい情報をお知りになりたかったら、
900 sssd\-sudo(5) をご覧になるとよい。
901 .SH ファイル
902 .TP  26n
903 \fI/etc/ldap.conf\fP
904 LDAP の設定ファイル
905 .TP  26n
906 \fI/etc/nsswitch.conf\fP
907 sudoers セキュリティポリシー設定の参照元の順番を決める
908 .TP  26n
909 \fI/etc/netsvc.conf\fP
910 AIX で sudoers セキュリティポリシー設定の参照元の順番を決める
911 .SH 用例
912 .SS "ldap.conf の一例"
913 .nf
914 .RS 2n
915 # URI または host:port の組み合わせを一つ以上指定する。
916 # どちらも指定されていない場合、sudo はデフォルトの localhost と
917 # 389 番ポートを使用する。
918 #
919 #host          ldapserver
920 #host          ldapserver1 ldapserver2:390
921 #
922 # host がポートなしで指定されている場合のポート番号。
923 # デフォルトは 389 である。
924 #port          389
925 #
926 # URI による指定は、host と port による指定に優先する。
927 uri            ldap://ldapserver
928 #uri            ldaps://secureldapserver
929 #uri            ldaps://secureldapserver ldap://ldapserver
930 #
931 # LDAP サーバに接続しようとしているときの、秒単位の待ち時間。
932 bind_timelimit 30
933 #
934 # LDAP に問い合わせを行っているときの、秒単位の待ち時間。
935 timelimit 30
936 #
937 # 必ず設定すること。さもないと、sudo は LDAP を無視することになる。
938 # 複数回指定してもよい。
939 sudoers_base   ou=SUDOers,dc=example,dc=com
940 #
941 # LDAP で sudoers セキュリティポリシー設定を問い合わせる際の
942 # マッチングについて詳細情報を表示する。
943 #sudoers_debug 2
944 #
945 # sudoers セキュリティポリシー設定中で日時制限のあるエントリの
946 # サポートを有効にする。
947 #sudoers_timed yes
948 #
949 # LDAP の操作を行う者の認証情報 (設定する、しないは任意)。
950 #binddn        <who to search as>
951 #bindpw        <password>
952 #rootbinddn    <who to search as, uses /etc/ldap.secret for bindpw>
953 #
954 # LDAP プロトコルのバージョン。デフォルトは 3 である。
955 #ldap_version 3
956 #
957 # LDAP 接続を暗号化したい場合に設定する。
958 # 通例、ポートを 636 (ldaps) にすることも必要。
959 #ssl on
960 #
961 # ポート 389 を使用し、バインド操作のために認証情報が
962 # 送信される直前に、暗号化セッションに切り替えたい場合に設定する。
963 # これをサポートしているのは、OpenLDAP のような start_tls 拡張に
964 # 対応している LDAP サーバだけである。
965 #ssl start_tls
966 #
967 # さらに以下の TLS 関連オプションを使うことで SSL/TLS 接続の
968 # 細かい調整ができる。
969 #
970 #tls_checkpeer yes # サーバの SSL 証明書の正当性をチェックする。
971 #tls_checkpeer no  # サーバの SSL 証明書の正当性をチェックしない。
972 #
973 # tls_checkpeer を有効にするときは、 tls_cacertfile か
974 # tls_cacertdir のどちらかを指定すること。tls_cacertfile や
975 # tls_cacertdir は OpenLDAP の使用時のみ使える。
976 #
977 #tls_cacertfile /etc/certs/trusted_signers.pem
978 #tls_cacertdir  /etc/certs
979 #
980 # /dev/random がないシステムでは、下記の設定を PRNGD、あるいは
981 # EGD.pl と一緒に使用すれば、暗号セッション用の鍵を生成するための
982 # 乱数プールの種を供給できる。このオプションが使えるのは、
983 # OpenLDAP を使用しているときだけである。
984 #
985 #tls_randfile /etc/egd\-pool
986 #
987 # 使用する暗号を限定することができる。どの暗号が使えるかに
988 # ついては、SSL の文書を参照すること。このオプションが
989 # 使えるのは、OpenLDAP を使用しているときだけである。
990 #
991 #tls_ciphers <cipher\-list>
992 #
993 # sudo は LDAP サーバと交信するときに、クライアントの証明書を
994 # 提示することができる。
995 # 注意:
996 #   * 両方の行を同時に有効にすること。
997 #   * キーファイルをパスワードでプロテクトしてはいけない。
998 #   * キーファイルが読めるのは root だけにするのを忘れずに。
999 #
1000 # OpenLDAP の場合:
1001 #tls_cert /etc/certs/client_cert.pem
1002 #tls_key  /etc/certs/client_key.pem
1003 #
1004 # SunONE や iPlanet LDAP (訳注: Netscape 由来) の場合:
1005 # こちらの場合は、tls_cert や tls_key で指定するのは、証明書や
1006 # キーファイルの入っているディレクトリでもよく、ファイルそのものの
1007 # パスでもよい。前者の場合、ディレクトリ中のファイルは、所定の名前
1008 # (たとえばcert8.db と key4.db) でなければならない。もっとも、
1009 # ファイルのパスを指定した場合は、バージョン 5.0 の LDAP SDK には
1010 # バグがあるので、ファイル名によってはうまく動作しないことがある。
1011 # この理由から、tls_cert や tls_key には、ファイル名ではなく、
1012 # ディレクトリを指定する方をお薦めする。
1013 #
1014 # tls_cert で指定した証明書のデータベースには、認証局の証明書と
1015 # クライアントの証明書が、どちらか一方だけ入っていてもよく、
1016 # 両方入っていてもよい。クライアントの証明書が入っている場合は、
1017 # tls_key も指定するべきである。
1018 # 後方互換のため、tls_cert のかわりに sslpath を使うこともできる。
1019 #tls_cert /var/ldap
1020 #tls_key /var/ldap
1021 #
1022 # LDAP に SASL 認証を使用する場合 (OpenSSL)
1023 # use_sasl yes
1024 # sasl_auth_id <SASL user name>
1025 # rootuse_sasl yes
1026 # rootsasl_auth_id <SASL user name for root access>
1027 # sasl_secprops none
1028 # krb5_ccname /etc/.ldapcache
1029 .RE
1030 .fi
1031 .SS "OpenLDAP 用の sudo のスキーマ"
1032 下記のスキーマは OpenLDAP 用の形式になっており、
1033 \fBsudo\fP のソースやバイナリの配布には \fIschema.OpenLDAP\fP
1034 として収録されている。その \fIschema.OpenLDAP\fP
1035 ファイルをスキーマ・ディレクトリ (たとえば \fI/etc/openldap/schema\fP)
1036 にそのままコピーし、適切な include 行を \fIslapd.conf\fP に追加して、
1037 \fBslapd\fP をリスタートすればよい。
1038 .nf
1039 .sp
1040 .RS 2n
1041 attributetype ( 1.3.6.1.4.1.15953.9.1.1
1042    NAME 'sudoUser'
1043    DESC 'User(s) who may  run sudo'
1044    EQUALITY caseExactIA5Match
1045    SUBSTR caseExactIA5SubstringsMatch
1046    SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
1047
1048 attributetype ( 1.3.6.1.4.1.15953.9.1.2
1049    NAME 'sudoHost'
1050    DESC 'Host(s) who may run sudo'
1051    EQUALITY caseExactIA5Match
1052    SUBSTR caseExactIA5SubstringsMatch
1053    SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
1054
1055 attributetype ( 1.3.6.1.4.1.15953.9.1.3
1056    NAME 'sudoCommand'
1057    DESC 'Command(s) to be executed by sudo'
1058    EQUALITY caseExactIA5Match
1059    SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
1060
1061 attributetype ( 1.3.6.1.4.1.15953.9.1.4
1062    NAME 'sudoRunAs'
1063    DESC 'User(s) impersonated by sudo'
1064    EQUALITY caseExactIA5Match
1065    SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
1066
1067 attributetype ( 1.3.6.1.4.1.15953.9.1.5
1068    NAME 'sudoOption'
1069    DESC 'Options(s) followed by sudo'
1070    EQUALITY caseExactIA5Match
1071    SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
1072
1073 attributetype ( 1.3.6.1.4.1.15953.9.1.6
1074    NAME 'sudoRunAsUser'
1075    DESC 'User(s) impersonated by sudo'
1076    EQUALITY caseExactIA5Match
1077    SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
1078
1079 attributetype ( 1.3.6.1.4.1.15953.9.1.7
1080    NAME 'sudoRunAsGroup'
1081    DESC 'Group(s) impersonated by sudo'
1082    EQUALITY caseExactIA5Match
1083    SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 )
1084
1085 attributetype ( 1.3.6.1.4.1.15953.9.1.8
1086    NAME 'sudoNotBefore'
1087    DESC 'Start of time interval for which the entry is valid'
1088    EQUALITY generalizedTimeMatch
1089    ORDERING generalizedTimeOrderingMatch
1090    SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 )
1091
1092 attributetype ( 1.3.6.1.4.1.15953.9.1.9
1093    NAME 'sudoNotAfter'
1094    DESC 'End of time interval for which the entry is valid'
1095    EQUALITY generalizedTimeMatch
1096    ORDERING generalizedTimeOrderingMatch
1097    SYNTAX 1.3.6.1.4.1.1466.115.121.1.24 )
1098
1099 attributeTypes ( 1.3.6.1.4.1.15953.9.1.10
1100     NAME 'sudoOrder'
1101     DESC 'an integer to order the sudoRole entries'
1102     EQUALITY integerMatch
1103     ORDERING integerOrderingMatch
1104     SYNTAX 1.3.6.1.4.1.1466.115.121.1.27 )
1105
1106 objectclass ( 1.3.6.1.4.1.15953.9.2.1 NAME 'sudoRole' SUP top STRUCTURAL
1107    DESC 'Sudoer Entries'
1108    MUST ( cn )
1109    MAY ( sudoUser $ sudoHost $ sudoCommand $ sudoRunAs $ sudoRunAsUser $
1110          sudoRunAsGroup $ sudoOption $ sudoNotBefore $ sudoNotAfter $
1111          sudoOrder $ description )
1112    )
1113 .RE
1114 .fi
1115 .SH 関連項目
1116 ldap.conf(5), sssd\-sudo(5), sudo.conf(5), sudoers(5)
1117 .SH 作者
1118 多数の人々が長年に渡って \fBsudo\fP の開発に携わってきた。
1119 当バージョンは主として次の者が書いたコードからできている。
1120 .sp
1121 .RS 6n
1122 Todd C. Miller
1123 .RE
1124 .PP
1125 \fBsudo\fP の開発に貢献してくださった方々の詳細なリストについては、
1126 配布物中の CONTRIBUTORS ファイルをご覧になっていただきたい。
1127 (https://www.sudo.ws/contributors.html)
1128 .SH 警告
1129 LDAP を使用する sudoers セキュリティポリシーの設定と
1130 \fIsudoers\fP ファイルによる設定では、設定を解析する仕方に相違があるので、
1131 注意していただきたい。詳細については、「LDAP を使う場合と使わない場合の
1132 sudoers セキュリティポリシー設定の相違点」のセクションを参照すること。
1133 .SH バグ
1134 \fBsudo\fP にバグを発見したと思ったら、https://bugzilla.sudo.ws/
1135 にアクセスして、バグレポートを提出していただきたい。
1136 .SH サポート
1137 ある程度の無料サポートが sudo\-users メーリングリストを通して利用できる。
1138 購読やアーカイブの検索には、下記 URL を御覧になるとよい。
1139 https://www.sudo.ws/mailman/listinfo/sudo\-users
1140 .SH 免責
1141 \fBsudo\fP は「現状のまま」提供される。 明示的な、あるいは黙示的ないかなる保証も、
1142 商品性や特定目的への適合性についての黙示的な保証を含め、
1143 またそれのみに止まらず、これを否認する。詳細な全文については、
1144 \fBsudo\fP と一緒に配布されている LICENSE ファイルや、
1145 下記 Web ページをご覧いただきたい。
1146 https://www.sudo.ws/license.html