File: sudo.8

package info (click to toggle)
manpages-ja 0.5.0.0.20120606-1
  • links: PTS
  • area: main
  • in suites: wheezy
  • size: 25,964 kB
  • sloc: perl: 161; makefile: 116
file content (1045 lines) | stat: -rw-r--r-- 53,393 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
.\" Copyright (c) 1994-1996, 1998-2005, 2007-2012
.\" 	Todd C. Miller <Todd.Miller@courtesan.com>
.\" 
.\" Permission to use, copy, modify, and distribute this software for any
.\" 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 <ysato444@yahoo.co.jp>
.\" 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 <cyoichi@maple.ocn.ne.jp>
.\" 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