2 %%Creator: Basser Lout Version 3.10 (November 1996)
3 %%CreationDate: Sun Aug 13 13:16:53 2000
5 %%DocumentNeededResources: (atend)
6 %%DocumentMedia: Plain 595 842 0 white ()
7 %%DocumentSuppliedResources: (atend)
9 %%BoundingBox: 0 0 595 842
13 %%BeginResource: procset LoutStartUp
14 /m { 3 1 roll moveto show } bind def
15 /s { exch currentpoint exch pop moveto show } bind def
16 /k { exch neg 0 rmoveto show } bind def
17 /ul { gsave setlinewidth dup 3 1 roll
18 moveto lineto stroke grestore } bind def
38 /LoutGr2 { gsave translate LoutGraphic gsave } def
41 { findfont exch scalefont setfont
45 { findfont dup length dict begin
46 {1 index /FID ne {def} {pop pop} ifelse} forall
48 currentdict end definefont pop
54 /LoutEPSFState save def
55 /dict_count countdictstack def
56 /op_count count 1 sub def
59 0 setgray 0 setlinecap
60 1 setlinewidth 0 setlinejoin
61 10 setmiterlimit [] 0 setdash newpath
65 { false setstrokeadjust false setoverprint
71 count op_count sub { pop } repeat
72 countdictstack dict_count sub { end } repeat
77 %%BeginResource encoding vec2
79 /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
80 /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
81 /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
82 /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef /.notdef
83 /space /exclam /quotedbl /numbersign /dollar /percent /ampersand /quoteright
84 /parenleft /parenright /asterisk /plus /comma /hyphen /period /slash
85 /zero /one /two /three /four /five /six /seven
86 /eight /nine /colon /semicolon /less /equal /greater /question
87 /at /A /B /C /D /E /F /G
88 /H /I /J /K /L /M /N /O
89 /P /Q /R /S /T /U /V /W
90 /X /Y /Z /bracketleft /backslash /bracketright /asciicircum /underscore
91 /quoteleft /a /b /c /d /e /f /g
92 /h /i /j /k /l /m /n /o
93 /p /q /r /s /t /u /v /w
94 /x /y /z /braceleft /bar /braceright /asciitilde /.notdef
95 /quotesinglbase /quotedblbase /ellipsis /OE /oe /quotedblleft /quotedblright /fi
96 /fl /endash /emdash /bullet /dagger /daggerdbl /florin /fraction
97 /dotlessi /grave /acute /circumflex /tilde /macron /breve /dotaccent
98 /dieresis /.notdef /ring /cedilla /.notdef /hungarumlaut /ogonek /caron
99 /space /exclamdown /cent /sterling /currency /yen /brokenbar /section
100 /dieresis /copyright /ordfeminine /guillemotleft /logicalnot /hyphen /registered /macron
101 /degree /plusminus /twosuperior /threesuperior /acute /mu /paragraph /periodcentered
102 /cedilla /onesuperior /ordmasculine /guillemotright /onequarter /onehalf /threequarters /questiondown
103 /Agrave /Aacute /Acircumflex /Atilde /Adieresis /Aring /AE /Ccedilla
104 /Egrave /Eacute /Ecircumflex /Edieresis /Igrave /Iacute /Icircumflex /Idieresis
105 /Eth /Ntilde /Ograve /Oacute /Ocircumflex /Otilde /Odieresis /multiply
106 /Oslash /Ugrave /Uacute /Ucircumflex /Udieresis /Yacute /Thorn /germandbls
107 /agrave /aacute /acircumflex /atilde /adieresis /aring /ae /ccedilla
108 /egrave /eacute /ecircumflex /edieresis /igrave /iacute /icircumflex /idieresis
109 /eth /ntilde /ograve /oacute /ocircumflex /otilde /odieresis /divide
110 /oslash /ugrave /uacute /ucircumflex /udieresis /yacute /thorn /ydieresis
114 %%BeginResource: procset LoutMarginNotes
115 % @PrependGraphic file /usr/lib/lout/include/dl.lpg
117 % path for @FullWidthRule symbol
119 { 0 0 moveto xsize 0 lineto
122 % path for @Box symbol
124 { 0 0 moveto xsize 0 lineto
125 xsize ysize lineto 0 ysize lineto
129 % path for @CurveBox symbol
132 xsize xmark sub xmark xmark 270 360 arc
133 xsize xmark sub ysize xmark sub xmark 0 90 arc
134 xmark ysize xmark sub xmark 90 180 arc
135 xmark xmark xmark 180 270 arc
139 % path for @ShadowBox symbol
141 { xmark 2 mul 0 moveto xsize 0 lineto
142 xsize ysize xmark 2 mul sub lineto
143 xsize xmark sub ysize xmark 2 mul sub lineto
144 xsize xmark sub xmark lineto
145 xmark 2 mul xmark lineto
149 % set up dictionary containing margin note data: parity LoutMargSet -
151 { /LoutMargDict 12 dict def
154 /matr matrix currentmatrix def
156 /lefty ysize def % highest allowable point for top of next left note
157 /righty ysize def % highest allowable point for top of next right note
158 /max { 2 copy gt { pop } { exch pop } ifelse } def
159 /min { 2 copy lt { pop } { exch pop } ifelse } def
163 %translate coordinate system for marginal notes: type LoutMargShift -
164 % where type 0 is left margin, 1 is right margin, 2 is outer, 3 is inner
168 % y coordinate of top of note, in margin coords, before vertical adjust
169 0 ysize transform matr itransform exch pop
171 % decide whether left or right margin based on type and parity
172 exch [ 0 1 parity 1 parity sub ] exch get 0 eq
174 % left margin: adjust top of note downwards if overlaps previous note
177 % bottom of note is new lefty position and also translate position
178 ysize sub dup /lefty exch def
180 % want right edge of note at coordinate zero
184 % right margin: adjust top of note downwards if overlaps previous note
187 % bottom of note is new righty position and also translate position
188 ysize sub dup /righty exch def
190 % want left edge of note at coordinate rightx
194 % stack now contains coord of bottom left corner in margin coordinates
195 matr setmatrix translate
199 % create LoutPageDict with left, right, foot, top for @Place symbol users
202 /LoutPageDict 5 dict def
204 /matr matrix currentmatrix def
218 %%IncludeResource: font Times-Roman
219 /Times-Romanfnt82 vec2 /Times-Roman LoutRecode
220 /fnt82 { /Times-Romanfnt82 LoutFont } def
221 %%IncludeResource: font Times-Bold
222 /Times-Boldfnt84 vec2 /Times-Bold LoutRecode
223 /fnt84 { /Times-Boldfnt84 LoutFont } def
224 %%IncludeResource: font Courier-Bold
225 /Courier-Boldfnt31 vec2 /Courier-Bold LoutRecode
226 /fnt31 { /Courier-Boldfnt31 LoutFont } def
227 %%IncludeResource: font Times-Italic
228 /Times-Italicfnt83 vec2 /Times-Italic LoutRecode
229 /fnt83 { /Times-Italicfnt83 LoutFont } def
234 %%PageResources: font Times-Roman
236 %%+ font Courier-Bold
237 %%+ font Times-Italic
239 0.0500 dup scale 10 setlinewidth
244 240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic
259 1417 -15423 translate
260 240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic
264 340 fnt84 1359 13532(User)m 2118(ser)s 3(vice)k 3190(daemon)s
265 4421(and)s 5047(client)s 5922(speci\207cation)s 200 fnt82 2792 13016(Ian)m
269 200 fnt31 1031 -43(<ian@davenant.greenend.org.uk>)m
271 240 fnt82 4305 12515(1.0.1)m
272 9066 609 0 609 240 240 60 0 11255 LoutGr2
273 newpath 0 ysize 0.3 ft sub moveto
279 320 fnt84 0 5(0.1.)m 628(Abstract)s
281 0 10961(This)m 476(is)s
282 686(a)s 852(speci\207cation)s 2117(for)s 2455(a)s 2621(Unix)s
283 3155(system)s 3879(f)s 2(acility)k 4606(to)s 4845(allo)s 6(w)k
284 5424(one)s 5826(program)s 6696(to)s 6935(in)s 9(v)k 4(ok)k 2(e)k
285 7628(another)s 8405(when)s 0 10721(only)m 480(limited)s 1214(trust)s
286 1698(e)s 3(xists)k 2290(between)s 3144(them.)s 9066 670 0 670 240 240 60 0 9697 LoutGr2
287 newpath 0 ysize 0.3 ft sub moveto
294 0 66(0.2.)m 628(Copyright)s 2109(Notice)s
299 240 fnt31 0 -52(userv)m
302 560 9403(is)m 770(Cop)s 2(yright)k 1799(1996-2000)s 2893(Ian)s
303 3255(Jackson.)s gsave
306 240 fnt31 0 -52(userv)m
308 544 8995(is)m 737(free)s
309 1146(softw)s 2(are;)k 2062(you)s 2460(can)s 2832(redistrib)s 4(ute)k
310 3955(it)s 4130(and/or)s 4784(modify)s 5512(it)s 5688(under)s
311 6276(the)s 6607(terms)s 7172(of)s 7426(the)s 7757(GNU)s
312 8315(General)s 0 8755(Public)m 659(License)s 1453(as)s 1698(published)s
313 2682(by)s 2971(the)s 3314(Free)s 3789(Softw)s 2(are)k
314 4699(F)s 3(oundation;)k 5894(either)s 6492(v)s 3(ersion)k
315 7245(2)s 7414(of)s 7680(the)s 8023(License,)s 8867(or)s
316 0 8515(\(at)m 311(your)s 810(option\))s 1550(an)s 3(y)k
317 1947(later)s 2430(v)s 3(ersion.)k 0 8107(This)m 476(program)s
318 1346(is)s 1556(distrib)s 4(uted)k 2632(in)s 2875(the)s
319 3223(hope)s 3745(that)s 4163(it)s 4355(will)s 4781(be)s
320 5063(useful,)s 5754(b)s 4(ut)k 240 fnt83 6116 8109(without)m
321 6898(any)s 7300(warr)s 3(anty)k 240 fnt82 8171 8107(;)m
322 8283(without)s 0 7866(e)m 6(v)k 3(en)k 500(the)s
323 848(implied)s 1636(w)s 2(arranty)k 2537(of)s 240 fnt83
324 2808 7868(mer)m 8(c)k 3(hantability)k 240 fnt82 4367 7866(or)m
325 240 fnt83 4626 7868(\207tness)m 5279(for)s 5623(a)s 5798(particular)s
326 6833(purpose)s 240 fnt82 7598 7866(.)m 7702(See)s 8103(the)s
327 8451(GNU)s 0 7626(General)m 811(Public)s 1475(License)s 2274(for)s
328 2612(more)s 3159(details.)s 0 7218(Y)m 26(ou)k 442(should)s
329 1139(ha)s 4(v)k 3(e)k 1640(re)s 1821(cei)s 6(v)k 3(ed)k
330 2494(a)s 2660(cop)s 2(y)k 3178(of)s 3449(the)s
331 3797(GNU)s 4372(Gen)s 4768(er)s 4953(al)s 5180(Pub)s
332 5546(lic)s 5837(Li)s 6043(cense)s 6630(along)s 7215(with)s
336 240 fnt31 0 -52(userv)m
338 8197(;)s 8309(if)s 8526(not,)s
339 0 6977(write)m 546(to)s 785(the)s 1133(Free)s 1613(Soft)s
340 2011(w)s 2(are)k 2529(F)s 3(oun)k 3016(da)s
341 3242(tion,)s 3721(59)s 4012(T)s 16(em)k 4434(ple)s
342 4782(Place)s 5355(-)s 5483(Suite)s 6030(330,)s 6497(Boston,)s
343 7283(MA)s 7726(02111-1307,)s 0 6737(USA.)m 9066 610 0 610 240 240 60 0 5773 LoutGr2
344 newpath 0 ysize 0.3 ft sub moveto
353 0 5479(1.)m 1200(Introduction)s 8962(3)s 0 5252(2.)m
354 1200(Client)s 1844(program)s 2714(usage)s 8952(4)s 0 5015(2.1.)m
355 1200(Options)s 8952(4)s 0 4778(2.2.)m 1200(Security-o)s 3(v)k 3(erriding)k
356 3118(options)s 8958(7)s 0 4541(3.)m 1200(Ex)s 3(ecution)k
357 2224(en)s 9(vironment)k 3484(of)s 3755(the)s 4103(service)s
358 4835(program)s 8959(8)s 0 4304(3.1.)m 1200(File)s 1627(descriptors)s
359 8959(8)s 0 4067(3.2.)m 1200(En)s 9(vironment)k 8955(9)s
360 0 3840(4.)m 1200(Service-side)s 2436(con\207guration)s 8831(10)s 0 3603(4.1.)m
361 1200(Con\207guration)s 2587(\207le)s 2948(syntax)s 8831(10)s 0 3366(4.2.)m
362 1200(Con\207guration)s 2587(\207le)s 2948(directi)s 6(v)k 3(es)k
363 8831(10)s 0 3128(4.3.)m 1200(Errors)s 1847(in)s 2090(the)s
364 2438(con\207guration)s 3771(\207le)s 8833(16)s 0 2890(4.4.)m 1200(Def)s 2(aults)k
365 8833(16)s 0 2663(5.)m 1200(Information)s 2398(passed)s 3094(through)s
366 3896(the)s 4244(client/daemon)s 5655(combination)s 8839(18)s 0 2425(6.)m
367 1200(Applications)s 2473(and)s 2877(notes)s 3433(on)s 3730(use)s
368 8831(20)s 0 2187(6.1.)m 1200(Examples)s 8831(20)s 0 1949(6.2.)m
369 1200(Standard)s 2108(services)s 2928(and)s 3332(directory)s 4248(management)s
370 8831(20)s 0 1711(6.3.)m 1200(Reducing)s 2171(the)s 2519(number)s
371 3310(of)s 3581(absolutely)s 4618(pri)s 6(vile)k 3(ged)k
372 5636(subsystems)s 8831(20)s 0 1473(6.4.)m 1200(Do)s 1546(not)s
373 1912(gi)s 6(v)k 3(e)k 2371(a)s 3(w)k 2(ay)k
374 2925(e)s 3(xcessi)k 6(v)k 3(e)k 3885(pri)s 6(vile)k 3(ge)k
378 240 fnt31 0 -52(userv)m
380 5520(-using)s 6171(f)s 2(acilities)k
381 8831(20)s 0 52(User)m 511(service)s 1243(daemon)s 2058(and)s
382 2462(client)s 3052(speci\207cation)s 8611(1.0.1)s
392 %%PageResources: font Times-Roman
394 %%+ font Courier-Bold
396 0.0500 dup scale 10 setlinewidth
400 240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic
415 1417 -15423 translate
416 240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic
420 240 fnt84 0 13842(2)m 240 fnt82 0 13252(6.5.)m gsave
426 1760(can)s 2149(often)s 2697(replace)s gsave
432 3842(,)s 3949(b)s 4(ut)k 4311(not)s
436 240 fnt31 0 -52(really)m
438 8851(21)s 0 13014(6.6.)m 1200(Error)s
439 1763(handling)s 2654(and)s 3058(input)s 3610(streams)s 4390(\(e)s 3(g)k
440 4745(stdin\))s 8832(22)s 0 12776(6.7.)m 1200(Don')s 4(t)k
441 1814(gi)s 6(v)k 3(e)k 2273(access)s 2934(to)s
442 3173(general-purpose)s 4769(utilities)s 8832(22)s 0 52(1.0.1)m 4809(User)s
443 5320(service)s 6052(daemon)s 6867(and)s 7271(client)s 7861(speci\207cation)s
454 %%PageResources: font Times-Roman
456 %%+ font Courier-Bold
458 0.0500 dup scale 10 setlinewidth
462 240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic
477 1417 -15423 translate
478 240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic
482 240 fnt84 8953 13842(3)m gsave
484 240 fnt82 9066 622 0 622 240 240 60 LoutGraphic
486 newpath 0 ysize 0.3 ft sub moveto
492 340 fnt84 0 4(1.)m 412(Intr)s 6(oduction)k
495 240 fnt82 0 12330(There)m 613(is)s 823(a)s 989(daemon)s
496 1804(which)s 2446(in)s 9(v)k 4(ok)k 2(es)k
497 3227(user)s 3685(service)s 4417(programs)s 5371(\(henceforth)s 6529(`services'\))s
498 7584(in)s 7827(response)s 8720(to)s 0 12090(requests)m 822(by)s
499 1104(callers)s 1765(of)s 2024(a)s 2178(companion)s 3287(client)s
500 3865(program)s 4723(\(henceforth)s 5869(the)s 6205(`client'\))s 7009(and)s
501 7401(according)s 8385(to)s 8611(rules)s 0 11850(set)m 325(forth)s
502 846(in)s 1089(system-wide)s 2353(and)s 2757(user)s 4(-speci\207c)k
503 4013(con\207guration)s 5346(\207les.)s 5848(The)s 6276(companion)s 7397(client)s
504 7987(program)s 0 11610(is)m 210(setuid)s 839(root,)s 1331(and)s
505 1735(ne)s 3(gotiates)k 2752(with)s 3234(the)s 3582(daemon)s
506 4397(through)s 5199(an)s gsave
509 240 fnt31 0 -52(AF_UNIX)m
512 6911(and)s 7315(associated)s 8355(objects)s 0 11370(in)m 243(a)s
513 409(system-wide)s 1673(pri)s 6(v)k 6(ate)k 2380(directory)s
514 3296(set)s 3621(aside)s 4168(for)s 4506(the)s 4854(purpose.)s
515 5716(The)s 6144(user)s 6602(who)s 7068(wishes)s 7770(the)s
516 8118(service)s 8850(to)s 0 11130(be)m 282(performed)s 1335(and)s
517 1739(calls)s 2227(the)s 2575(client)s 3165(is)s 3375(called)s
518 4003(the)s 4351(`calling)s 5133(user';)s 5722(the)s 6070(process)s
519 6838(which)s 7480(calls)s 7968(the)s 8316(client)s 8906(is)s
520 0 10890(called)m 628(the)s 976(`calling)s 1758(process'.)s 0 10482(The)m
521 428(daemon)s 1243(and)s 1647(the)s 1995(client)s 2585(are)s
522 2932(responsible)s 4077(for)s 4415(ensuring)s 5292(that)s 5710(information)s
523 6895(is)s 7105(safely)s 7729(carried)s 8449(across)s 0 10242(the)m
524 338(security)s 1138(boundary)s 2087(between)s 2931(the)s 3269(tw)s 2(o)k
525 3669(users,)s 4257(and)s 4650(that)s 5058(the)s 5396(processes)s
526 6353(on)s 6640(either)s 7233(side)s 7664(cannot)s 8351(interact)s
527 0 10002(with)m 482(each)s 977(other)s 1528(in)s 1771(an)s 3(y)k
528 2168(une)s 3(xpected)k 3313(w)s 2(ays.)k 0 52(User)m
529 511(service)s 1243(daemon)s 2058(and)s 2462(client)s 3052(speci\207cation)s
540 %%PageResources: font Times-Roman
542 %%+ font Courier-Bold
543 %%+ font Times-Italic
545 0.0500 dup scale 10 setlinewidth
549 240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic
564 1417 -15423 translate
565 240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic
569 240 fnt84 0 13842(4)m gsave
571 240 fnt82 9066 688 0 688 240 240 60 LoutGraphic
573 newpath 0 ysize 0.3 ft sub moveto
579 340 fnt84 0 70(2.)m 412(Client)s
580 1382(pr)s 6(ogram)k 2737(usage)s
585 240 fnt31 0 -52(userv)m
589 240 fnt83 0 -52(options)m
591 2003([\211\211])s gsave
594 240 fnt83 0 -52(service\211user)m
600 240 fnt83 0 -52(service\211name)m
605 240 fnt83 0 -52(ar)m 8(gument)k
608 8181(\202])s 0 -305(userv)m gsave
611 240 fnt83 0 -52(options)m
613 2003(\211B|\211\211builtin)s
614 3875([\211\211])s gsave
617 240 fnt83 0 -52(b)m 4(uiltin\211service)k
623 240 fnt83 0 -52(info\211ar)m 8(gument)k
628 0 11208(service-user)m 240 fnt82 1232 11206(speci\207es)m 2106(which)s 2748(user)s
629 3206(is)s 3416(to)s 3655(pro)s 3(vide)k 4439(the)s
630 4787(service.)s 5567(The)s 5995(user)s 6453(may)s 6919(be)s
631 7201(a)s 7367(login)s 7916(name)s 8490(or)s 8749(a)s
632 0 10966(numeric)m 836(uid,)s 1249(or)s gsave
635 240 fnt31 0 -52(\211)m
638 1668(to)s 1907(indicate)s 2719(that)s 3137(the)s 3485(service)s
639 4217(user)s 4675(is)s 4885(to)s 5124(be)s 5406(the)s
640 5754(same)s 6301(as)s 6551(the)s 6899(calling)s 7602(user)s 13(.)k
641 0 10558(The)m 428(service)s 1160(name)s 1734(is)s 1944(interpreted)s
642 3036(by)s 3330(the)s 3678(userv)s 153 fnt82 4191 10647(1)m
643 240 fnt82 4311 10558(daemon)m 5126(on)s 5423(behalf)s 6092(of)s
644 6363(the)s 6711(service)s 7443(user)s 13(.)k 7932(It)s
645 8137(will)s 8563(often)s 0 10318(be)m 282(the)s 630(name)s
646 1204(of)s 1475(a)s 1641(program.)s 9066 670 0 670 240 240 60 0 9294 LoutGr2
647 newpath 0 ysize 0.3 ft sub moveto
653 320 fnt84 0 66(2.1.)m
656 0 8832(Single-letter)m 1233(options)s 1983(may)s 2442(be)s
657 2718(combined)s 3714(as)s 3957(is)s 4161(usual)s 4714(with)s
658 5190(Unix)s 5718(programs,)s 6721(and)s 7119(the)s 7461(v)s 6(alue)k
659 8022(for)s 8354(such)s 8843(an)s 0 8592(option)m 669(may)s
660 1135(appear)s 1832(in)s 2075(the)s 2423(same)s 2970(ar)s 4(gument)k
661 3929(or)s 4188(in)s 4431(the)s 4779(ne)s 3(xt.)k
665 240 fnt31 0 -52(\211B)m
670 240 fnt31 0 -52(\211\211builtin)m
673 742(quests)s 1385(that)s 1797(a)s 1956(b)s 4(uiltin)k
674 2627(ser)s 2905(vice)s 3352(be)s 3628(pro)s 3940(vid)s
675 4244(ed.)s 4567(This)s 5037(is)s 5241(equi)s 6(v)k
676 5762(a)s 5868(lent)s 6279(to)s 6512(us)s 6716(ing)s
680 240 fnt31 0 -52(\211\211override)m
682 8464(op)s 8697(tion)s
683 480 7463(to)m 719(spec)s 1137(i)s 1197(fy)s 1450(a)s
684 1616(string)s 2213(con)s 2556(sist)s 2874(ing)s 3233(of)s
688 240 fnt31 0 -52(execute\211builtin)m
690 5065(fol)s 5325(lo)s 6(wed)k
691 5962(by)s 6256(the)s 240 fnt83 6604 7465(b)m 4(uiltin-)k
692 7291(service)s 240 fnt82 8020 7463(re)m 8201(quest)s 8706(ed,)s
693 480 7223(and)m 870(re)s 1051(quest)s 1556(ing)s 1900(a)s
694 2052(ser)s 2330(vice)s 2769(user)s 3213(of)s gsave
700 3615(\(in)s 3877(di)s 4057(cat)s 4335(ing)s
701 4679(the)s 5012(call)s 5351(ing)s 5696(user\).)s 6322(If)s
702 6538(the)s 6871(b)s 4(uiltin)k 7534(ser)s 7812(vice)s
703 8251(be)s 8473(ing)s 8817(re)s 8998(-)s 480 6983(quest)m
704 985(ed)s 1254(re)s 1435(quires)s 2054(a)s 240 fnt83
705 2204 6985(service-)m 2947(ar)s 8(gument)k 240 fnt82 3905 6983(then)m
706 4358(this)s 4738(must)s 5247(be)s 5513(sup)s 5839(plied)s
707 6359(to)s 6582(the)s 6914(client)s 7488(in)s 7715(the)s
708 8047(same)s 8578(ar)s 8763(gu)s 8998(-)s 480 6742(ment)m
709 1012(as)s 1256(the)s 240 fnt83 1598 6744(b)m 4(uiltin-)k
710 2285(service)s 240 fnt82 2954 6742(.)m 3052(See)s 3447(`Di)s
711 3759(rec)s 4043(ti)s 6(v)k 3(es)k 4530(for)s
712 4862(chang)s 5427(ing)s 5780(e)s 3(x)k 5998(e)s
713 6100(cu)s 6321(tion)s 6744(set)s 7009(tings',)s 7654(page)s
714 8156(14)s 8444(for)s 8776(de)s 8998(-)s 480 6502(tails)m
715 921(of)s 1184(the)s 1524(b)s 4(uiltin)k 2193(ser)s
716 2471(vices)s 3006(a)s 4(v)k 6(ail)k 3455(able,)s
717 3952(and)s 4348(`Security-)s 5291(o)s 3(v)k 3(erriding)k
718 6326(op)s 6559(tions',)s 7203(page)s 7703(7)s 7863(for)s
719 8193(de)s 8415(tails)s 8855(of)s 480 6261(the)m gsave
723 0 -52(\211\211override)m
725 1877(op)s 2110(tions.)s 2733(The)s 3155(ac)s
726 3360(tu)s 3541(al)s 3762(ser)s 4040(vice)s 4488(name)s
727 5056(passed)s 5746(will)s 6166(be)s 6442(the)s 240 fnt83
728 6784 6263(b)m 4(uiltin-)k 7471(service)s 240 fnt82 8140 6261(;)m
729 8246(note)s 8708(that)s 480 6021(this)m 876(ac)s 1081(tu)s
730 1262(al)s 1489(ser)s 1767(vice)s 2221(name)s 2795(\(as)s
731 3124(op)s 3357(posed)s 3974(to)s 4213(the)s 4561(o)s 3(v)k 3(er)k
732 4980(ride)s 5407(data\))s 5933(and)s 6337(the)s 240 fnt83
733 6685 6023(info-)m 7124(ar)s 8(gument)k 240 fnt82 8038 6021(s)m
734 8182(sup)s 8508(plied)s 480 5781(will)m 906(be)s 1188(ig)s
735 1367(nored)s 1970(by)s 2264(most)s 2789(b)s 4(uiltin)k
736 3466(ser)s 3744(vices;)s 4347(the)s 4695(o)s 3(v)k 3(er)k
737 5114(ride)s 5541(mech)s 6056(a)s 6162(nism)s 6687(and)s
741 240 fnt31 0 -52(execute\211builtin)m
743 8652(will)s 480 5541(be)m 762(used)s
744 1259(to)s 1498(en)s 1721(sure)s 2175(that)s 2593(the)s
745 2941(right)s 3452(b)s 4(uiltin)k 4129(ser)s 4407(vice)s
746 4861(is)s 5071(called)s 5699(with)s 6181(the)s 6529(right)s
747 240 fnt83 7040 5543(service-)m 7783(ar)s 8(gument)k 240 fnt82
751 240 fnt31 0 -52(\211f)m gsave
760 240 fnt83 0 -52(modi\207er)m 2(s)k
766 240 fnt83 0 -52(\207lename)m
773 240 fnt31 0 -52(\211\211file)m gsave
782 240 fnt83 0 -52(modi\207er)m 2(s)k
788 240 fnt83 0 -52(\207lename)m
792 480 4667(Requests)m 1384(that)s
793 1791(data)s 2238(be)s 2509(copied)s 3194(in)s 3426(and)s
794 3819(out)s 4174(of)s 4434(the)s 4771(service)s 5492(using)s
795 6053(pipes.)s 6651(F)s 3(or)k 7029(each)s 7513(\207le)s
796 7863(or)s 8111(descriptor)s 480 4427(this)m 858(will)s 1266(be)s
797 1530(done)s 2033(by)s 2309(creating)s 3113(a)s 3261(pipe,)s
798 3761(one)s 4145(end)s 4531(of)s 4784(which)s 5407(is)s
799 5599(passed)s 6277(to)s 6498(the)s 6827(service)s 7541(program)s
800 8393(and)s 8778(the)s 480 4187(other)m 1028(end)s 1429(of)s
801 1697(which)s 2336(is)s 2543(passed)s 3236(to)s 3472(a)s
802 3635(cop)s 2(y)k 4149(of)s gsave
805 240 fnt31 0 -52(cat)m
808 4774(in)s 9(v)k 4(ok)k 2(ed)k 5586(by)s
809 5877(the)s 6222(client;)s 6861(the)s 7206(other)s 7754(\207le)s
810 8111(descriptor)s 480 3947(passed)m 1161(to)s gsave
813 240 fnt31 0 -52(cat)m
816 1728(will)s 2139(be)s 2405(one)s 2791(inherited)s 3683(by)s
817 3961(the)s 4293(client)s 4868(program)s 5722(from)s 6230(the)s
818 6563(caller)s 7136(or)s 7379(one)s 7766(opened)s 8500(by)s
819 8778(the)s 480 3707(client)m 1063(program)s 1926(on)s 2215(behalf)s
820 2877(of)s 3140(the)s 3481(caller)s 13(.)k 4153(The)s
821 4574(descriptor)s 5581(in)s 5817(the)s 6157(service)s 6882(program)s
822 7744(that)s 8155(should)s 8844(be)s 480 3466(connected)m 1503(must)s
823 2023(be)s 2299(speci\207ed)s 3202(as)s 240 fnt83 3446 3468(fd)m
824 240 fnt82 3638 3466(,)m 3740(either)s 4338(as)s 4582(a)s
825 4743(decimal)s 5548(number)s 6334(or)s 6588(as)s 6832(one)s
826 7229(of)s 7494(the)s 7837(strings)s gsave
829 240 fnt31 0 -52(stdin)m
835 240 fnt31 0 -52(stdout)m
843 1970(.)s 2059(The)s 2473(ne)s 3(xt)k
844 2927(ar)s 4(gument)k 3871(is)s 4067(a)s 4218(\207lename)s
845 5082(which)s 5709(will)s 6121(be)s 6388(opened)s 7123(by)s
846 7403(the)s 7736(client)s 8311(with)s 8778(the)s 480 2985(pri)m 6(vile)k 3(ges)k
847 1458(of)s 1722(the)s 2064(calling)s 2760(user)s 13(.)k
848 240 fnt83 3303 2987(modi\207er)m 2(s)k 240 fnt82 4240 2985(is)m
849 4444(used)s 4934(to)s 5166(specify)s 5904(whether)s 6727(the)s
850 7069(\207le)s 7423(or)s 7676(descriptor)s 8684(is)s 8887(to)s
851 480 2745(be)m 762(read)s 1230(from)s 1754(or)s 2012(written)s
852 2745(to.)s 3034(It)s 3239(consists)s 4046(of)s 4317(a)s
853 4482(series)s 5076(of)s 5346(w)s 2(ords)k 5980(separated)s
854 6939(by)s 7233(commas.)s 8133(A)s 8362(comma)s 480 2504(may)m
855 946(separate)s 1784(the)s 240 fnt83 2132 2506(modi\207er)m 2(s)k
856 240 fnt82 3076 2504(from)m 3600(the)s 240 fnt83 3948 2506(fd)m
857 240 fnt82 4200 2504(and)m 4604(is)s 4814(required)s 5668(if)s
858 240 fnt83 5885 2506(fd)m 240 fnt82 6137 2504(is)m 6347(not)s
859 6713(numeric.)s 7660(The)s 8088(modi\207er)s 480 2264(w)m 2(ords)k
863 240 fnt31 0 -52(read)m
868 240 fnt31 0 -52(O_RDONLY)m
871 1761 1784(:)m 1867(Allo)s 6(w)k 2513(reading)s 3283(and)s
872 3687(not)s 4053(writing.)s 4847(May)s 5340(not)s 5706(be)s
873 5988(used)s 6485(with)s gsave
876 240 fnt31 0 -52(write)m
879 7786(things)s 8422(that)s 960 1544(imply)m 1572(it.)s gsave
885 1134 0 0 0 240 240 60 0 947 LoutGr2
886 0 0 moveto xsize 0 lineto stroke
890 122 fnt82 0 752(1)m gsave
893 192 fnt31 0 -42(userv)m
896 192 fnt82 505 682(is)m 673(short)s 1103(for)s 1373(`user)s
897 1802(services',)s 2566(and)s 2890(is)s 3058(pronounced)s 4010(`you-serv)s 2(e'.)k
898 240 fnt82 0 52(1.0.1)m 4809(User)s 5320(service)s 6052(daemon)s
899 6867(and)s 7271(client)s 7861(speci\207cation)s
909 %%PageResources: font Times-Roman
911 %%+ font Courier-Bold
912 %%+ font Times-Italic
914 0.0500 dup scale 10 setlinewidth
918 240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic
933 1417 -15423 translate
934 240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic
938 240 fnt84 8953 13844(5)m gsave
941 240 fnt31 0 -52(O_WRONLY)m
944 1761 13254(:)m 1867(Allo)s 6(w)k 2513(writing)s 3256(and)s
945 3660(not)s 4026(reading.)s 240 fnt83 4847 13256(Doesn')m 7(t)k
946 5661(truncate)s 6511(or)s 6789(cr)s 8(eate)k 240 fnt82
947 7431 13254(without)m gsave
950 240 fnt31 0 -52(truncate)m
961 240 fnt31 0 -52(write)m
964 2742(things)s 3378(that)s 3796(imply)s 4408(it)s 4600(may)s
965 5066(not)s 5432(be)s 5714(used)s 6211(with)s gsave
974 240 fnt31 0 -52(overwrite)m
976 960 12534(Equi)m 6(v)k 6(alent)k
980 240 fnt31 0 -52(write,create,truncate)m
991 240 fnt31 0 -52(creat)m
996 240 fnt31 0 -52(O_CREAT)m
999 1660 11814(:)m 1766(Creates)s 2533(the)s 2881(\207le)s 3242(if)s
1000 3459(necessary)s 15(.)k 4477(Implies)s gsave
1001 5244 11868 translate
1003 240 fnt31 0 -52(write)m
1009 240 fnt31 0 -52(exclusive)m
1014 240 fnt31 0 -52(excl)m
1020 240 fnt31 0 -52(O_EXCL)m
1022 1560 11094(:)m 1666(F)s 3(ails)k
1023 2178(if)s 2395(the)s 2743(\207le)s 3104(already)s 3861(e)s 3(xists.)k
1024 4506(Implies)s gsave
1025 5273 11148 translate
1027 240 fnt31 0 -52(write)m
1030 6237 11148 translate
1035 6837(.)s 6941(May)s 7434(not)s 7800(be)s
1036 8082(used)s 8579(with)s gsave
1039 240 fnt31 0 -52(truncate)m
1045 240 fnt31 0 -52(truncate)m
1050 240 fnt31 0 -52(trunc)m
1058 1660 10134(:)m 1766(T)s 8(runcate)k 2663(an)s 3(y)k
1059 3060(e)s 3(xisting)k 3867(\207le.)s 4276(Implies)s gsave
1060 5043 10188 translate
1065 5543(.)s 5647(May)s 6140(not)s 6506(be)s
1066 6788(used)s 7285(with)s gsave
1067 7767 10188 translate
1069 240 fnt31 0 -52(exclusive)m
1075 240 fnt31 0 -52(append)m
1080 240 fnt31 0 -52(O_APPEND)m
1083 1867(All)s 2227(writes)s 2861(will)s 3287(append)s 4037(to)s
1084 4276(the)s 4624(\207le.)s 5033(Implies)s gsave
1087 240 fnt31 0 -52(write)m
1090 6360(\(b)s 4(ut)k 6801(not)s gsave
1093 240 fnt31 0 -52(create)m
1099 240 fnt31 0 -52(sync)m
1104 240 fnt31 0 -52(O_SYNC)m
1107 1560 9174(:)m 1666(Do)s 2012(writes)s 2646(synchronously)s 15(.)k
1108 4132(Implies)s gsave
1111 240 fnt31 0 -52(write)m
1122 240 fnt31 0 -52(nowait)m
1127 240 fnt31 0 -52(close)m
1130 960 8214(These)m 1587(modi\207ers)s 2541(control)s 3273(the)s 3621(beha)s 4(viour)k
1131 4634(of)s 4905(the)s 5253(client,)s 5890(with)s 6372(respect)s
1132 7108(to)s 7347(the)s 7695(pipes)s 8251(carrying)s 960 7974(data)m
1133 1418(to)s 1657(and)s 2061(from)s 2585(the)s 2933(service,)s
1134 3716(when)s 4292(the)s 4640(service)s 5372(terminates.)s 6470(See)s
1135 6871(belo)s 6(w)k 15(.)k gsave
1138 240 fnt31 0 -52(fd)m
1141 960 7494(The)m 240 fnt83 1388 7496(\207lename)m 240 fnt82 2252 7494(is)m
1142 2462(not)s 2828(a)s 2994(\207lename)s 3873(b)s 4(ut)k
1143 4235(a)s 4401(numeric)s 5237(\207le)s 5598(descriptor)s 13(.)k
1144 6644(One)s 7099(or)s 7358(both)s 7841(of)s gsave
1153 240 fnt31 0 -52(write)m
1156 2045(be)s 2327(speci\207ed,)s 3284(and)s 3688(no)s 3981(other)s
1157 4532(w)s 2(ords)k 5166(are)s 5513(allo)s 6(wed.)k
1158 6368(The)s 240 fnt83 6796 7255(\207lename)m 240 fnt82 7660 7253(may)m
1159 8126(also)s 8564(be)s gsave
1162 240 fnt31 0 -52(stdin)m
1168 240 fnt31 0 -52(stdout)m
1173 240 fnt31 0 -52(stderr)m
1176 3146(for)s 3484(\207le)s 3845(descriptor)s 4860(0,)s 5087(1)s
1177 5242(or)s 5501(2)s 5675(respecti)s 6(v)k 3(ely)k 15(.)k
1178 480 6748(If)m 701(no)s 240 fnt83 984 6750(modi\207er)m 2(s)k
1179 240 fnt82 1918 6748(which)m 2550(imply)s gsave
1182 240 fnt31 0 -52(read)m
1188 240 fnt31 0 -52(write)m
1190 4401(are)s 4738(used)s
1191 5226(it)s 5408(is)s 5608(as)s 5848(if)s gsave
1197 6605(had)s 6999(been)s 7498(speci\207ed,)s 8445(e)s 3(xcept)k
1198 480 6508(that)m 898(if)s 1115(the)s 1463(\207ledescriptor)s 2783(0)s
1199 2958(of)s 3229(the)s 3577(service)s 4309(is)s 4519(being)s
1200 5104(opened)s 5854(\(either)s 6536(speci\207ed)s 7444(numerically)s 8639(or)s
1201 480 6268(with)m gsave
1204 240 fnt31 0 -52(stdin)m
1207 1782(is)s 1992(as)s 2242(if)s gsave
1210 240 fnt31 0 -52(overwrite)m
1213 3420(had)s 3824(been)s 4333(speci\207ed)s 5241(\(or)s gsave
1219 6139(if)s 6356(only)s gsave
1222 240 fnt31 0 -52(fd)m
1225 7096(w)s 2(as)k 7517(speci\207ed\).)s 8610(The)s 480 6028(client)m
1226 1064(will)s 1483(also)s 1915(use)s gsave
1229 240 fnt31 0 -52(O_NOCTTY)m
1232 3137(when)s 3707(opening)s 4525(\207les)s 4968(speci\207ed)s 5869(by)s
1233 6156(the)s 6498(caller)s 9(,)k 7118(to)s 7351(a)s 4(v)k 4(oid)k
1234 7926(changing)s 8850(its)s 480 5788(controlling)m 1581(terminal.)s 2539(By)s
1235 2871(def)s 2(ault)k 3591(stdin,)s 4161(stdout)s 4805(and)s
1236 5207(stderr)s 5809(of)s 6079(the)s 6425(service)s 7156(will)s
1237 7580(be)s 7861(connected)s 8887(to)s 480 5548(the)m 811(corresponding)s
1238 2216(descriptors)s 3297(on)s 3577(the)s 3907(client.)s 4524(Diagnostics)s
1239 5686(from)s 6193(the)s 6523(client)s 7096(and)s 7482(daemon)s
1240 8280(will)s 8688(also)s 480 5308(appear)m 1177(on)s 1473(stderr)s 13(.)k
1244 240 fnt31 0 -52(wait)m
1246 2856(is)s 3065(speci\207ed,)s
1247 4022(the)s 4369(client)s 4959(will)s 5384(w)s 2(ait)k
1248 5853(for)s 6190(the)s 6538(pipe)s 7005(to)s 7244(be)s
1249 7525(closed,)s 8243(and)s 8646(only)s 480 5068(e)m 3(xit)k
1250 889(after)s 1379(this)s 1769(has)s 2132(happened.)s 3148(This)s
1251 3618(means)s 4274(that)s 4685(either)s 5282(the)s 5624(recei)s 6(ving)k
1252 6554(end)s 6951(of)s 7216(the)s 7558(pipe)s 8019(connection)s
1253 480 4828(w)m 2(as)k 901(closed)s 1570(while)s 2157(data)s
1254 2615(w)s 2(as)k 3036(still)s 3448(a)s 4(v)k 6(ailable)k
1255 4356(at)s 4588(the)s 4936(sending)s 5734(end,)s 6187(or)s
1256 6446(that)s 6864(the)s 7212(end)s 7616(of)s 7887(\207le)s
1257 8248(w)s 2(as)k 480 4588(reached)m 1279(on)s 1573(the)s
1258 1919(reading)s 2686(\207le)s 3045(descriptor)s 13(.)k 4088(Errors)s
1259 4732(encountered)s 5957(reading)s 6724(or)s 6981(writing)s 7721(in)s
1260 7962(the)s 8307(client)s 8894(at)s 480 4347(this)m 876(stage)s
1261 1423(will)s 1849(be)s 2131(considered)s 3225(a)s 3391(system)s
1262 4115(error)s 4638(and)s 5042(cause)s 5629(the)s 5977(client)s
1263 6567(to)s 6806(e)s 3(xit)k 7221(with)s 7703(status)s
1264 8298(255,)s 8764(b)s 4(ut)k 480 4107(will)m 896(not)s
1265 1251(cause)s 1827(disconnection)s 3203(at)s 3424(the)s 3761(service)s
1266 4482(side)s 4913(since)s 5449(the)s 5786(service)s 6507(has)s
1267 6867(already)s 7613(e)s 3(xited.)k 8347(If)s gsave
1273 480 3867(is)m 676(speci\207ed)s 1569(the)s 1902(client)s
1274 2477(will)s 2888(immediately)s 4121(close)s 4653(the)s 4987(pipe)s
1275 5440(connection)s 6532(by)s 6811(killing)s 7473(the)s 7806(rele)s 6(v)k 6(ant)k
1276 8608(cop)s 2(y)k 480 3627(of)m gsave
1279 240 fnt31 0 -52(cat)m
1282 1044(.)s 1141(If)s 1364(the)s 1705(service)s 2429(uses)s
1283 2885(the)s 3226(descriptor)s 4234(it)s 4418(will)s 4837(get)s
1287 240 fnt31 0 -52(SIGPIPE)m
1292 240 fnt31 0 -52(EPIPE)m
1295 6765(\))s 6886(for)s 7217(a)s 7376(writing)s 8111(descriptor)s
1296 480 3387(or)m 736(end)s 1137(of)s 1404(\207le)s 1762(for)s
1297 2096(a)s 2259(reading)s 3025(one;)s 3480(the)s 3824(descriptor)s
1298 4836(opened)s 5582(by)s 5873(or)s 6128(passed)s 6821(to)s
1299 7056(the)s 7401(client)s 7987(will)s 8410(also)s 8844(be)s
1300 480 3147(closed.)m 1255(If)s gsave
1303 240 fnt31 0 -52(nowait)m
1306 2355(speci\207ed)s 3263(then)s 3732(the)s 4080(client)s 4670(will)s
1307 5096(not)s 5462(w)s 2(ait)k 5931(and)s 6335(the)s
1308 6683(connection)s 7790(will)s 8216(remain)s 480 2907(open)m 1003(after)s
1309 1499(the)s 1847(client)s 2437(terminates.)s 3535(Data)s 4046(may)s
1310 4512(continue)s 5392(to)s 5631(be)s 5913(passed)s 6609(between)s
1311 7463(the)s 7811(inheritors)s 8777(of)s 480 2667(the)m 828(rele)s 6(v)k 6(ant)k
1312 1645(descriptor)s 2660(on)s 2957(the)s 3305(service)s 4037(side)s
1313 4478(and)s 4882(the)s 5230(corresponding)s 6652(\207le)s 7013(or)s
1314 7272(descriptor)s 8287(on)s 8584(the)s 480 2427(client)m 1070(side)s
1315 1511(until)s 2004(either)s 2607(side)s 3048(closes)s 3683(their)s
1316 4180(descriptor)s 13(.)k 5226(This)s 5702(should)s 6399(not)s
1317 6765(usually)s 7510(be)s 7792(speci\207ed)s 8700(for)s 480 2187(stderr)m
1318 1083(\(or)s 1421(stdout)s 2066(if)s gsave
1321 240 fnt31 0 -52(\211\211signals)m
1324 3945(is)s 4155(used\))s 4722(since)s 5269(diagnostics)s
1325 6396(from)s 6920(the)s 7268(service)s 8000(side)s 8441(may)s
1326 480 1947(arri)m 6(v)k 3(e)k 1083(after)s 1579(the)s
1327 1927(client)s 2517(has)s 2887(e)s 3(xited)k 3526(and)s
1328 3930(be)s 4212(confused)s 5134(with)s 5616(e)s 3(xpected)k
1329 6521(output.)s 7297(The)s 7725(def)s 2(ault)k 8446(is)s
1333 240 fnt31 0 -52(wait)m
1335 480 1707(for)m 818(writing)s 1561(\207le)s
1336 1922(descriptors)s 3021(and)s gsave
1339 240 fnt31 0 -52(close)m
1342 4323(reading)s 5093(ones.)s gsave
1345 240 fnt31 0 -52(\211w)m gsave
1354 240 fnt83 0 -52(action)m
1362 0 -52(\211\211fdwait)m gsave
1365 240 fnt83 0 -52(fd)m
1375 480 833(Sets)m 924(the)s 1267(action)s 1903(on)s
1376 2194(termination)s 3347(of)s 3613(the)s 3956(service)s 4682(for)s
1377 5015(the)s 5358(speci\207ed)s 6261(\207le)s 6616(descriptor;)s 240 fnt83
1378 7678 835(action)m 240 fnt82 8325 833(must)m 8844(be)s 0 52(User)m
1379 511(service)s 1243(daemon)s 2058(and)s 2462(client)s 3052(speci\207cation)s
1390 %%PageResources: font Times-Roman
1392 %%+ font Courier-Bold
1393 %%+ font Times-Italic
1395 0.0500 dup scale 10 setlinewidth
1399 240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic
1414 1417 -15423 translate
1415 240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic
1419 240 fnt84 0 13842(6)m gsave
1422 240 fnt31 0 -52(wait)m
1428 240 fnt31 0 -52(nowait)m
1431 1886 13305 translate
1436 2439(as)s 2682(described)s 3650(abo)s 3(v)k 3(e.)k
1437 4313(The)s 4734(\207le)s 5088(descriptor)s 6096(must)s 6615(be)s
1438 6890(speci\207ed)s 7791(as)s 8034(open)s 8550(when)s 480 13011(this)m
1439 876(option)s 1545(is)s 1755(encountered;)s 3036(this)s 3432(option)s
1440 4101(is)s 4311(o)s 3(v)k 3(erridden)k 5398(by)s
1441 5692(an)s 3(y)k 6089(later)s gsave
1442 6572 13065 translate
1444 240 fnt31 0 -52(\211\211file)m
1448 7491 13065 translate
1450 240 fnt31 0 -52(\211\211fdwait)m
1452 8352(option)s 480 12771(-)m
1453 608(e)s 6(v)k 3(en)k 1108(by)s 1402(a)s
1455 1568 12825 translate
1457 240 fnt31 0 -52(\211\211file)m
1459 2228(which)s 2870(does)s 3360(not)s
1460 3726(specify)s 4470(an)s 4753(action)s 5394(on)s 5691(termination)s
1461 6849(\(in)s 7171(this)s 7567(case)s 8034(the)s 8382(def)s 2(ault)k
1462 480 12531(will)m 906(be)s 1188(used,)s 1734(as)s 1984(described)s
1463 2958(abo)s 3(v)k 3(e\).)k gsave
1466 240 fnt31 0 -52(\211D)m
1470 240 fnt83 0 -52(name)m
1475 240 fnt83 0 -52(value)m
1483 240 fnt31 0 -52(\211\211defvar)m gsave
1486 240 fnt83 0 -52(name)m
1492 240 fnt83 0 -52(value)m
1496 480 11667(Set)m 845(a)s 1011(user)s 4(-)k
1497 1473(de\207ned)s 2236(v)s 6(ari)k 2595(able)s 240 fnt83
1498 3049 11669(name)m 240 fnt82 3621 11667(to)m 240 fnt83 3860 11669(val)m
1499 4152(ue)s 240 fnt82 4371 11667(.)m 4475(These)s 5102(user)s 4(-)k
1500 5564(de\207ned)s 6327(v)s 6(ari)k 6686(ables)s 7228(are)s
1501 7575(made)s 8149(a)s 4(v)k 6(ail)k 8598(able)s
1502 480 11427(in)m 723(the)s 1071(con)s 1414(\207g)s 1660(u)s
1503 1775(ra)s 1960(tion)s 2389(lan)s 2678(guage)s 3306(as)s
1504 3556(the)s 3904(pa)s 4130(ram)s 4501(e)s 4603(ters)s
1506 4998 11481 translate
1508 240 fnt31 0 -52(u\211)m gsave
1511 240 fnt83 0 -52(name)m
1516 6168(are)s 6515(passed)s 7211(to)s 7450(the)s 7798(ser)s
1517 8076(vice)s 8530(in)s 8773(en)s 8996(-)s 480 11187(vi)m
1518 660(ron)s 976(ment)s 1508(v)s 6(ari)k 1867(ables)s
1520 2402 11241 translate
1522 240 fnt31 0 -52(USERV_U_)m gsave
1525 240 fnt83 0 -52(name)m
1530 240 fnt83 3806 11189(name)m 240 fnt82 4371 11187(may)m 4831(con)s
1531 5174(tain)s 5582(only)s 6055(al)s 6222(phanu)s 6803(mer)s
1532 7174(ics)s 7483(and)s 7880(un)s 8117(der)s 8422(scores,)s
1533 480 10947(and)m 884(must)s 1409(start)s 1879(with)s 2360(a)s
1534 2526(let)s 2764(ter)s 13(.)k 3106(If)s 3335(se)s 6(v)k
1535 3643(er)s 3828(al)s 4055(de\207)s 4406(ni)s 4586(tions)s
1536 5102(are)s 5449(gi)s 6(v)k 5744(en)s 6026(for)s
1537 6364(the)s 6712(same)s 240 fnt83 7258 10949(name)m 240 fnt82
1538 7830 10947(then)m 8299(only)s 8778(the)s 480 10707(last)m 871(is)s
1539 1081(ef)s 1278(fec)s 1562(ti)s 6(v)k 3(e.)k
1543 240 fnt31 0 -52(\211t)m gsave
1546 240 fnt83 0 -52(seconds)m
1554 0 -52(\211\211timeout)m gsave
1557 240 fnt83 0 -52(seconds)m
1561 480 9882(T)m 8(ime)k
1562 1029(out)s 1392(the)s 1736(service)s 2465(if)s 2678(it)s
1563 2867(tak)s 2(es)k 3403(longer)s 4071(than)s 240 fnt83
1564 4536 9884(seconds)m 240 fnt82 5346 9882(seconds)m 6151(\(a)s 6393(positi)s 6(v)k 3(e)k
1565 7193(inte)s 3(ger)k 9(,)k 7948(in)s 8187(decimal\).)s
1566 480 9641(T)m 8(imeout)k 1331(will)s 1746(produce)s 2562(a)s
1567 2717(diagnostic)s 3742(on)s 4028(stderr)s 4620(and)s 5013(an)s
1568 5284(e)s 3(xit)k 5688(status)s 6272(of)s 6532(255.)s
1569 6985(If)s 240 fnt83 7204 9643(seconds)m 240 fnt82 8006 9641(is)m
1570 8205(zero)s 8657(then)s 480 9401(no)m 773(timeout)s 1563(will)s
1571 1989(be)s 2271(implemented)s 3577(\(this)s 4052(is)s 4262(the)s
1572 4610(def)s 2(ault\).)k gsave
1575 240 fnt31 0 -52(\211S)m
1578 380 9009(method)m gsave
1581 240 fnt31 0 -52(\211\211signals)m
1583 1081 8769(method)m 240 fnt82
1584 480 8527(Af)m 6(fects)k 1212(the)s 1544(handling)s 2420(of)s
1585 2675(the)s 3008(e)s 3(xit)k 3407(status)s 3987(when)s
1586 4547(the)s 4879(service)s 5596(terminates)s 6625(due)s 7012(to)s
1587 7235(a)s 7386(signal.)s 8045(\(The)s 8536(client)s 480 8286(will)m
1588 906(al)s 2(w)k 2(ays)k 1617(\207nish)s 2206(by)s
1589 2500(calling)s gsave
1592 240 fnt31 0 -52(_exit)m
1595 4076(that)s 4494(only)s 4974(numbers)s 5849(from)s 6373(0)s
1596 6548(to)s 6787(255)s 7193(can)s 7582(be)s 7864(returned)s
1597 8718(and)s 480 8046(not)m 830(the)s 1162(full)s 1532(range)s
1598 2102(of)s 2357(numbers)s 3216(and)s 3603(signal)s 4213(indications)s
1599 5297(which)s 5922(can)s 6295(be)s 6561(returned)s 7398(by)s
1603 240 fnt31 0 -52(wait)m
1606 480 7805(of)m 751(system)s 1475(calls.\))s 2160(The)s 240 fnt83
1607 2588 7807(method)m 240 fnt82 3359 7805(may)m 3825(be)s 4107(one)s
1608 4509(of)s 4780(the)s 5128(follo)s 6(wing:)k 240 fnt83
1609 600 7567(status)m 240 fnt82 960 7325(The)m 1386(client')s 13(s)k
1610 2123(e)s 3(xit)k 2536(status)s 3128(will)s 3552(be)s
1611 240 fnt83 3831 7327(status)m 240 fnt82 4384 7325(.)m 4486(This)s
1612 4959(will)s 5383(not)s 5746(be)s 6026(distinguishable)s 7527(from)s
1613 8049(the)s 8394(service)s 960 7084(really)m 1557(ha)s 4(ving)k
1614 2258(e)s 3(xited)k 2897(with)s 3379(code)s 240 fnt83
1615 3887 7086(status)m 240 fnt82 4440 7084(.)m 4544(This)s 5020(method)s
1616 5796(is)s 6006(the)s 6354(def)s 2(ault,)k 7122(with)s
1617 7604(a)s 240 fnt83 7770 7086(status)m 240 fnt82 8383 7084(of)m
1621 240 fnt31 0 -52(number)m
1626 240 fnt31 0 -52(number\211nocore)m
1629 960 6364(The)m 1388(client')s 13(s)k 2128(e)s 3(xit)k
1630 2543(status)s 3138(will)s 3564(be)s 3846(the)s 4194(number)s
1631 4985(of)s 5256(the)s 5604(signal)s 6230(which)s 6872(caused)s
1632 7581(the)s 7929(termination)s 960 6124(of)m 1231(the)s 1579(service.)s
1636 240 fnt31 0 -52(number)m
1638 3249(is)s 3459(used)s
1639 3956(rather)s 4572(than)s gsave
1642 240 fnt31 0 -52(number\211nocore)m
1645 6871(128)s 7278(will)s 7704(be)s 7986(added)s 960 5884(if)m
1646 1177(the)s 1525(service)s 2257(dumped)s 3087(core.)s gsave
1652 4262(is)s 4472(v)s 3(ery)k 4948(lik)s 2(e)k
1653 5360(the)s 5708(e)s 3(xit)k 6123(code)s 6631(mangling)s
1654 7588(done)s 8110(by)s 8404(the)s 960 5644(Bourne)m 1721(shell.)s
1658 240 fnt31 0 -52(highbit)m
1660 960 5164(The)m 1388(client')s 13(s)k
1661 2128(e)s 3(xit)k 2543(status)s 3138(will)s 3564(be)s
1662 3846(the)s 4194(number)s 4985(of)s 5256(the)s 5604(signal)s
1663 6230(with)s 6712(128)s 7119(added.)s 7795(If)s 8025(the)s
1664 8373(service)s 960 4924(e)m 3(xits)k 1459(normally)s 2376(with)s
1665 2858(an)s 3141(e)s 3(xit)k 3556(code)s 4064(of)s
1666 4335(greater)s 5057(than)s 5526(127)s 5934(then)s 6403(127)s
1667 6811(will)s 7237(be)s 7519(returned.)s gsave
1670 240 fnt31 0 -52(stdout)m
1673 960 4444(The)m 1375(service')s 13(s)k 2247(numeric)s 3069(w)s 2(ait)k
1674 3524(status)s 4105(as)s 4341(tw)s 2(o)k 4737(decimal)s
1675 5534(numbers)s 6395(\(high)s 6943(byte)s 7397(\207rst\))s 7882(and)s
1676 8272(a)s 8424(te)s 3(xtual)k 960 4204(description)m 2079(of)s
1677 2350(its)s 2626(meaning)s 3503(will)s 3929(be)s 4211(printed)s
1678 4946(to)s 5185(the)s 5533(client')s 13(s)k 6273(standard)s
1679 7141(output.)s 7857(It)s 8062(will)s 8488(be)s 960 3964(preceded)m
1680 1865(by)s 2142(a)s 2292(ne)s 6(wline)k 3082(and)s
1681 3470(follo)s 6(wed)k 4355(by)s 4633(an)s 4899(e)s 3(xtra)k
1682 5417(ne)s 6(wline,)k 6258(and)s 6646(the)s 6977(numbers)s
1683 7836(are)s 8166(separated)s 960 3724(from)m 1484(each)s 1979(other)s
1684 2530(and)s 2934(from)s 3458(the)s 3806(te)s 3(xtual)k
1685 4508(description)s 5627(by)s 5921(single)s 6548(spaces.)s 7276(The)s
1686 7704(e)s 3(xit)k 8119(status)s 8714(of)s 960 3484(the)m
1687 1308(client)s 1898(will)s 2324(be)s 2606(zero,)s 3124(unless)s
1688 3773(a)s 3939(system)s 4663(error)s 5186(occurs)s 5861(in)s
1689 6104(which)s 6746(case)s 7213(no)s 7506(e)s 3(xit)k
1690 7921(status)s 8516(and)s 960 3244(description)m 2079(will)s 2505(be)s
1691 2787(printed)s 3522(to)s 3761(stdout,)s 4453(and)s 4857(an)s
1692 5140(error)s 5663(message)s 6529(will)s 6955(be)s 7237(printed)s
1693 7972(to)s 8211(stderr)s 960 3004(as)m 1210(usual.)s 480 2791(Problems)m
1694 1420(such)s 1902(as)s 2137(client)s 2713(usage)s 3299(errors,)s
1695 3948(the)s 4281(service)s 4999(not)s 5351(being)s 5921(found)s
1696 6524(or)s 6768(permission)s 7860(being)s 8430(denied)s 480 2551(or)m
1697 739(f)s 2(ailure)k 1415(of)s 1686(a)s 1852(system)s
1698 2576(call)s 2975(are)s 3322(system)s 4046(errors.)s 4706(An)s
1699 5056(error)s 5579(message)s 6445(describing)s 7494(the)s 7842(problem)s
1700 8699(will)s 480 2310(be)m 758(printed)s 1489(on)s 1782(the)s
1701 2125(client')s 13(s)k 2861(stderr)s 9(,)k 3498(and)s
1702 3898(the)s 4241(client')s 13(s)k 4977(e)s 3(xit)k
1703 5388(status)s 5978(will)s 6400(be)s 6678(255.)s 7138(If)s
1704 7363(the)s 7707(client)s 8293(dies)s 8724(due)s 480 2070(to)m
1705 719(a)s 885(signal)s 1511(this)s 1907(should)s 2604(be)s
1706 2886(treated)s 3593(as)s 3843(a)s 4009(serious)s 4737(system)s
1707 5461(error)s 13(.)k gsave
1710 240 fnt31 0 -52(\211H)m
1716 0 -52(\211\211hidecwd)m
1718 480 1196(Pre)m 6(v)k 3(ents)k 1345(the)s
1719 1693(calling)s 2396(process')s 13(s)k 3323(current)s 4059(directory)s
1720 4975(name)s 5549(from)s 6073(being)s 6658(passed)s 7354(to)s
1721 7593(the)s 7941(service;)s 8729(the)s 480 956(null)m 907(string)s
1722 1504(will)s 1930(be)s 2212(passed)s 2908(instead.)s 0 52(1.0.1)m
1723 4809(User)s 5320(service)s 6052(daemon)s 6867(and)s 7271(client)s
1724 7861(speci\207cation)s
1734 %%PageResources: font Times-Roman
1736 %%+ font Courier-Bold
1737 %%+ font Times-Italic
1739 0.0500 dup scale 10 setlinewidth
1743 240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic
1758 1417 -15423 translate
1759 240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic
1763 240 fnt84 8951 13844(7)m gsave
1766 240 fnt31 0 -52(\211P)m
1772 0 -52(\211\211sigpipe)m
1774 240 fnt82 480 12803(If)m 700(the)s 1038(service)s
1775 1760(program)s 2620(is)s 2820(terminated)s 3888(due)s 4280(to)s
1777 4665 12857 translate
1779 240 fnt31 0 -52(SIGPIPE)m
1781 5415(the)s 5753(e)s 3(xit)k
1782 6157(status)s 6742(of)s 7003(the)s 7341(client)s 7921(will)s
1783 8337(be)s 8608(zero,)s 480 12563(e)m 6(v)k 3(en)k
1784 967(if)s 1170(it)s 1349(w)s 2(ould)k 1990(ha)s 4(v)k 3(e)k
1785 2477(been)s 2973(something)s 4009(else)s 4423(according)s 5405(to)s
1786 5630(the)s 5965(e)s 3(xit)k 6366(status)s 6948(method)s
1787 7710(speci\207ed.)s 8650(This)s 480 12323(option)m 1149(has)s 1519(no)s
1788 1812(ef)s 6(fect)k 2408(on)s 2705(the)s 3053(code)s
1789 3561(and)s 3965(description)s 5084(printed)s 5819(if)s 6036(the)s
1790 6384(e)s 3(xit)k 6799(status)s 7394(method)s gsave
1791 8170 12377 translate
1796 8830(is)s 480 12083(in)m 723(use.)s gsave
1805 240 fnt31 0 -52(\211\211help)m
1810 240 fnt31 0 -52(\211\211copyright)m
1816 240 fnt31 0 -52(\211h)m
1818 740 11019(or)m gsave
1821 240 fnt31 0 -52(\211\211help)m
1824 1659(prints)s 2254(the)s 2602(client')s 13(s)k 3342(usage)s
1825 3943(message;)s gsave
1826 4865 11073 translate
1828 240 fnt31 0 -52(\211\211copyright)m
1830 6026(prints)s 6621(the)s
1831 6969(cop)s 2(yright)k 7944(and)s 8348(lack)s 8807(of)s
1832 480 10779(w)m 2(arranty)k 1381(notice.)s 9066 670 0 670 240 240 60 0 9649 LoutGr2
1833 newpath 0 ysize 0.3 ft sub moveto
1839 320 fnt84 0 66(2.2.)m
1840 628(Security-o)s 3(v)k 3(erriding)k 3373(options)s
1843 613(are)s 960(also)s 1398(some)s 1959(options)s 2715(which)s
1844 3357(are)s 3704(a)s 4(v)k 6(ailable)k 4612(for)s
1845 4950(deb)s 4(ugging)k 6011(and)s 6415(to)s 6654(allo)s 6(w)k
1846 7233(the)s 7581(system)s 0 8947(administrator)m 1333(to)s 1572(o)s 3(v)k 3(erride)k
1847 2418(a)s 2584(user')s 13(s)k 3192(polic)s 3(y)k 15(.)k
1848 3876(These)s 4503(options)s 5259(are)s 5606(a)s 4(v)k 6(ailable)k
1849 6514(only)s 6994(if)s 7211(the)s 7559(client)s 8149(is)s
1850 8359(called)s 0 8707(by)m 294(root)s 739(or)s 998(if)s
1851 1215(the)s 1563(calling)s 2266(user)s 2724(is)s 2934(the)s
1852 3282(same)s 3829(as)s 4079(the)s 4427(service)s 5159(user)s 13(.)k
1856 240 fnt31 0 -52(\211\211override)m gsave
1859 240 fnt83 0 -52(con\207gur)m 3(ation\211data)k
1867 240 fnt31 0 -52(\211\211override\211file)m gsave
1870 240 fnt83 0 -52(\207lename)m
1875 826(not)s 1192(read)s 1661(the)s 2009(usual)s 2569(con\207guration)s
1876 3902(\207les.)s 4404(Instead,)s 5201(the)s 5549(client)s 6139(sends)s
1877 240 fnt83 6722 7821(con\207gur)m 3(ation-data)k 240 fnt82 480 7578(\(follo)m 6(wed)k
1878 1461(by)s 1755(a)s 1921(ne)s 6(wline\))k 2800(or)s
1879 3059(the)s 3407(contents)s 4255(of)s 240 fnt83 4526 7580(\207lename)m
1880 240 fnt82 5390 7578(\(which)m 6111(is)s 6321(opened)s 7071(in)s
1881 7314(the)s 7662(conte)s 3(xt)k 8423(of)s 8694(the)s
1882 480 7337(client\))m 1138(to)s 1377(the)s 1725(daemon)s 2540(and)s
1883 2944(the)s 3292(daemon)s 4107(uses)s 4570(that)s 4988(data)s
1884 5446(instead.)s 6227(The)s 240 fnt83 6655 7339(con\207gur)m 3(ation-data)k
1885 240 fnt82 8503 7337(must)m 480 7097(all)m 772(be)s 1052(in)s
1886 1293(one)s 1693(ar)s 4(gument.)k 2694(It)s 2897(will)s
1887 3321(ha)s 4(v)k 3(e)k 3820(a)s 3984(single)s
1888 4609(ne)s 6(wline)k 5414(appended)s 6388(so)s 6652(that)s
1889 7068(a)s 7232(single)s 7857(directi)s 6(v)k 3(e)k
1890 8737(can)s 480 6857(easily)m 1083(be)s 1357(gi)s 6(v)k 3(en,)k
1891 1979(b)s 4(ut)k 2333(if)s 2542(more)s 3080(than)s
1892 3541(one)s 3935(directi)s 6(v)k 3(e)k 4809(is)s
1893 5011(required)s 5857(it)s 6040(will)s 6458(ha)s 4(v)k 3(e)k
1894 6951(to)s 7182(contain)s 7935(one)s 8329(or)s 8579(more)s
1895 480 6617(real)m 892(ne)s 6(wlines.)k gsave
1898 240 fnt31 0 -52(\211\211spoof\211user)m
1902 240 fnt83 0 -52(user)m
1906 480 6032(Pretend)m 1268(to)s 1507(the)s
1907 1855(service)s 2587(that)s 3005(it)s 3197(is)s 3407(being)s
1908 3992(called)s 4620(by)s 240 fnt83 4914 6034(user)m 240 fnt82
1909 5391 6032(\(which)m 6112(may)s 6578(be)s 6860(a)s 7026(username)s
1910 7998(or)s 8257(a)s 8423(uid\).)s 480 5792(This)m 956(will)s
1911 1382(also)s 1820(af)s 6(fect)k 2416(the)s 2764(group)s
1912 3376(and)s 3780(supplementary)s 5242(groups)s 5945(supplied)s 6814(to)s
1913 7053(the)s 7401(service;)s 8189(the)s 3(y)k 8652(will)s
1914 480 5552(be)m 759(the)s 1103(standard)s 1968(group)s 2576(and)s
1915 2977(supplementary)s 4435(groups)s 5135(for)s 240 fnt83 5469 5554(user)m
1916 240 fnt82 5886 5552(.)m 5987(The)s gsave
1919 240 fnt31 0 -52(\211\211spoof\211user)m
1922 7669(option)s 8334(will)s 240 fnt83 8756 5554(not)m 240 fnt82
1923 480 5312(af)m 6(fect)k 1076(which)s 1718(user)s 2176(is)s
1924 2386(chosen)s 3108(if)s 3325(the)s 3673(service)s 4405(user)s
1925 4863(is)s 5073(speci\207ed)s 5981(as)s 6231(just)s gsave
1931 6736(;)s 6848(in)s 7091(this)s 7487(case)s
1932 7954(the)s 8302(service)s 480 5072(user)m 938(will)s 1364(be)s
1933 1646(the)s 1994(real)s 2406(calling)s 3109(user)s 13(.)k
1934 0 52(User)m 511(service)s 1243(daemon)s 2058(and)s 2462(client)s
1935 3052(speci\207cation)s 8611(1.0.1)s
1945 %%PageResources: font Times-Roman
1947 %%+ font Courier-Bold
1949 0.0500 dup scale 10 setlinewidth
1953 240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic
1968 1417 -15423 translate
1969 240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic
1973 240 fnt84 0 13842(8)m gsave
1975 240 fnt82 9066 688 0 688 240 240 60 LoutGraphic
1977 newpath 0 ysize 0.3 ft sub moveto
1983 340 fnt84 0 70(3.)m 412(Execution)s
1984 1943(en)s 13(vir)k 6(onment)k 3856(of)s 4243(the)s
1985 4774(ser)s 3(vice)k 5846(pr)s 6(ogram)k
1988 0 12264(The)m 428(daemon)s 1243(which)s 1885(is)s 2095(handling)s
1989 2986(the)s 3334(service)s 4066(user)s 4524(side)s 4965(of)s
1990 5236(things)s 5872(will)s 6298(read)s 6767(con\207guration)s 8100(\207les)s
1991 8549(to)s 0 12024(decide)m 680(what)s 1205(to)s 1444(do.)s
1992 1788(If)s 2018(it)s 2210(decides)s 2978(to)s 3217(allo)s 6(w)k
1993 3796(the)s 4144(service)s 4876(to)s 5115(be)s 5397(pro)s 3(vided)k
1994 6303(it)s 6495(will)s 6921(fork)s 7380(a)s 7546(subprocess)s
1995 8647(to)s 0 11784(e)m 3(x)k 3(ecute)k 780(the)s
1996 1128(service.)s 0 11376(The)m 428(service)s 1160(will)s 1586(ha)s 4(v)k 3(e)k
1997 2087(no)s 2380(controlling)s 3482(terminal,)s 4384(b)s 4(ut)k
1998 4746(it)s 4938(will)s 5364(be)s 5646(a)s 5812(process)s
1999 6580(group)s 7192(leader)s 13(.)k 0 10968(If)m 223(the)s
2000 563(client)s 1146(is)s 1348(killed)s 1942(or)s 2194(times)s
2001 2754(out)s 3112(or)s 3364(a)s 3522(\207le)s 3875(or)s
2002 4127(descriptor)s 5134(being)s 5711(read)s 6173(or)s 6424(written)s
2003 7149(by)s 7436(the)s 7776(client)s 8358(process)s 0 10728(gets)m
2004 436(an)s 719(error)s 1242(then)s 1711(the)s 2059(service)s
2005 2791(will)s 3217(be)s 3499(disconnected)s 4806(from)s 5330(the)s
2006 5678(client.)s 6312(The)s 6740(client)s 7330(will)s 7756(return)s
2007 8383(an)s 0 10487(e)m 3(xit)k 415(status)s 1010(of)s
2008 1281(255)s 1687(and)s 2091(some)s 2652(the)s 3000(service')s 13(s)k
2009 3886(pipes)s 4442(may)s 4908(be)s 5190(closed)s 5859(at)s
2010 6091(the)s 6439(other)s 6990(end.)s 7440(The)s 7868(service)s
2011 8600(will)s 0 10247(become)m 800(a)s 966(child)s 1502(of)s
2013 1773 10301 translate
2015 240 fnt31 0 -52(init)m
2017 2173(.)s 2277(The)s 2705(service)s
2018 3437(may)s 3903(well)s 4369(not)s 4735(notice)s 5375(the)s
2019 5723(disconnection,)s 7159(though)s 7882(writing)s 8625(to)s 8864(a)s
2020 0 10007(pipe)m 468(after)s 964(this)s 1360(may)s 1826(produce)s
2022 2819 10061 translate
2024 240 fnt31 0 -52(SIGPIPE)m
2026 3579(and)s 3983(the)s
2027 4331(f)s 2(acility)k 5058(e)s 3(xists)k 5650(to)s
2028 5889(ha)s 4(v)k 3(e)k 6390(a)s gsave
2029 6556 10061 translate
2034 7216(sent)s 7661(to)s 7900(the)s 8248(service)s
2035 0 9767(on)m 297(disconnection.)s 9066 670 0 670 240 240 60 0 8743 LoutGr2
2036 newpath 0 ysize 0.3 ft sub moveto
2042 320 fnt84 0 66(3.1.)m 628(File)s
2045 0 8281(The)m 428(service)s 1160(program')s 13(s)k
2046 2180(standard)s 3048(\207ledescriptors,)s 4508(and)s 4912(possibly)s 5764(other)s
2047 6315(\207le)s 6676(descriptors,)s 7831(will)s 8257(be)s 0 8041(connected)m
2048 1028(to)s 1266(pipes)s 1821(or)s 2080(to)s gsave
2054 3219(.)s 3322(The)s gsave
2057 240 fnt31 0 -52(userv)m
2060 4309(client/daemon)s 5719(pair)s 6150(will)s 6575(arrange)s 7346(that)s
2061 7764(data)s 8221(is)s 8430(copied)s 0 7801(between)m 854(the)s
2062 1202(\207les)s 1651(or)s 1910(\207le)s 2271(descriptors)s 3370(speci\207ed)s
2063 4278(to)s 4517(to)s 4756(the)s 5104(client)s 5694(by)s
2064 5988(the)s 6336(caller)s 6925(and)s 7329(these)s 7876(these)s
2065 8423(pipes.)s 0 7393(Pipes)m 569(which)s 1211(may)s 1677(be)s
2066 1959(written)s 2692(to)s 2931(will)s 3357(be)s 3639(closed)s
2067 4308(if)s 4525(a)s 4691(write)s 5237(error)s 5760(occurs)s
2068 6435(on)s 6732(the)s 7080(corresponding)s 0 7153(client-side)m 1043(\207le)s
2069 1396(or)s 1647(descriptor)s 9(,)k 2692(which)s 3326(may)s
2070 3784(result)s 4366(in)s 4601(a)s gsave
2073 240 fnt31 0 -52(SIGPIPE)m
2076 5512(in)s 5747(the)s 6087(service)s 6811(program;)s 7725(pipes)s
2077 8273(open)s 8788(for)s 0 6913(reading)m 770(will)s 1196(get)s
2081 240 fnt31 0 -52(EOF)m
2083 1908(if)s 2125(the)s 2473(client-side)s
2084 3523(\207le)s 3884(descriptor)s 4899(gets)s gsave
2087 240 fnt31 0 -52(EOF)m
2090 5695(or)s 5954(an)s 6237(error)s 13(.)k 0 6505(If)m
2091 230(the)s 578(service)s 1310(closes)s 1945(one)s 2347(of)s
2092 2618(its)s 2894(reading)s 3663(\207le)s 4024(descriptors)s 5123(the)s
2093 5471(writing)s 6214(end)s 6618(of)s 6889(the)s 7237(corresponding)s
2094 8658(pipe)s 0 6265(will)m 421(generate)s 1280(a)s gsave
2100 2195(when)s 2766(attempts)s 3620(are)s 3962(made)s
2101 4530(by)s 4819(the)s 5161(client/daemon)s 6567(pair)s 6992(to)s
2102 7226(write)s 7766(to)s 8000(it.)s 8230(This)s 8700(will)s
2103 0 6025(not)m 366(be)s 648(considered)s 1742(an)s 2025(error;)s
2104 2600(rather)s 9(,)k 3254(the)s 3602(rele)s 6(v)k 6(ant)k
2105 4419(pipe)s 4887(will)s 5313(be)s 5595(discarded)s 6569(and)s
2106 6973(the)s 7321(corresponding)s 8743(\207le)s 0 5785(or)m 259(\207le)s
2107 620(descriptor)s 1635(held)s 2105(by)s 2399(the)s 2747(client)s
2108 3337(will)s 3763(be)s 4045(closed.)s 0 5377(Lik)m 2(e)k 6(wise,)k
2109 975(if)s 1192(one)s 1594(of)s 1865(the)s 2213(\207le)s
2110 2574(descriptors)s 3673(held)s 4143(by)s 4437(the)s 4785(client)s
2111 5375(for)s 5713(writing)s 6456(by)s 6750(the)s 7098(service)s
2112 7830(is)s 8040(a)s 8206(pipe)s 0 5137(whose)m 665(other)s
2113 1213(end)s 1613(is)s 1820(closed)s 2485(by)s 2776(the)s
2114 3120(caller)s 3706(then)s 4171(the)s 4516(client/daemon)s 5923(pair)s
2115 6351(will)s 6773(see)s 7131(an)s 7410(error)s 7930(when)s
2116 8502(trying)s 0 4897(to)m 239(cop)s 2(y)k 757(data)s
2117 1215(pro)s 3(vided)k 2121(by)s 2415(the)s 2763(service.)s
2118 3543(This)s 4019(too)s 4378(will)s 4804(not)s 5170(be)s
2119 5452(considered)s 6546(an)s 6829(error;)s 7404(rather)s 9(,)k
2120 8058(the)s 8406(pipe)s 0 4657(correspondong)m 1476(to)s 1715(that)s
2121 2133(descriptor)s 3148(will)s 3574(be)s 3856(closed)s 4525(and)s
2122 4929(an)s 3(y)k 5326(further)s 6035(writes)s 6669(will)s
2123 7095(cause)s 7682(the)s 8030(service)s 8762(to)s 0 4417(get)m
2127 240 fnt31 0 -52(SIGPIPE)m
2129 1218(.)s 0 4009(Note)m
2130 521(that)s 939(not)s 1305(all)s 1598(write)s 2144(errors)s
2131 2751(or)s 3010(brok)s 2(en)k 3730(pipes)s 4286(on)s
2132 4583(\207le)s 4944(descriptors)s 6043(may)s 6509(be)s 6791(visible)s
2133 7484(to)s 7723(the)s 8071(service,)s 0 3769(since)m 547(b)s 4(uf)k 6(fered)k
2134 1404(data)s 1862(may)s 2328(be)s 2610(discarded)s 3584(by)s
2135 3878(the)s 4226(operating)s 5182(system)s 5906(and)s 6310(there)s
2136 6843(will)s 7269(be)s 7551(a)s 7717(\207nite)s 8264(interv)s 6(al)k
2137 0 3529(between)m 847(the)s 1188(error)s 1703(happening)s 2747(and)s
2138 3144(the)s 3484(service)s 4209(being)s 4787(disconnected)s 6086(from)s
2139 6603(the)s 6944(client)s 7526(or)s 7778(the)s 8119(ne)s 3(xt)k
2140 8580(write)s 0 3289(causing)m 784(a)s gsave
2143 240 fnt31 0 -52(SIGPIPE)m
2146 1650(.)s 0 2881(Read)m 550(errors)s 1157(on)s 1454(\207le)s
2147 1815(descriptors)s 2914(\(and)s 3397(disconnection\))s 4854(will)s 5280(only)s
2148 5760(be)s 6042(visible)s 6735(to)s 6974(the)s 7322(service)s
2149 8054(and)s 0 2641(distinguishable)m 1504(from)s 2028(normal)s 2760(end)s
2150 3164(of)s 3435(\207le)s 3796(if)s gsave
2153 240 fnt31 0 -52(disconnect\211hup)m
2156 5474(is)s 5684(in)s 5927(ef)s 6(fect.)k 0 2233(Read)m
2157 549(and)s 951(write)s 1495(errors)s 2100(\(other)s 2728(than)s
2158 3196(brok)s 2(en)k 3914(pipes,)s 4524(as)s 4772(described)s
2159 5744(abo)s 3(v)k 3(e\))k 6437(will)s 6861(al)s 2(w)k 2(ays)k
2160 7570(be)s 7850(visible)s 8541(to)s 8778(the)s 0 1993(caller;)m
2161 627(the)s 3(y)k 1075(are)s 1408(system)s 2117(errors,)s
2162 2766(and)s 3155(will)s 3566(therefore)s 4469(cause)s 5041(the)s
2163 5375(client)s 5950(to)s 6174(print)s 6671(an)s 6939(error)s
2164 7448(message)s 8299(to)s 8523(stderr)s 0 1752(and)m 404(return)s
2165 1031(with)s 1513(an)s 1796(e)s 3(xit)k 2211(status)s
2166 2806(of)s 3077(255.)s 0 1344(If)m 230(the)s 578(main)s
2167 1113(service)s 1845(program)s 2715(process)s 3483(e)s 3(xits)k
2168 3982(while)s 4569(it)s 4761(still)s 5173(has)s 5543(running)s
2169 6341(children)s 7181(an)s 3(y)k 7578(\207le)s 7939(descriptors)s
2170 0 1104(held)m 470(by)s 764(those)s 1325(children)s 2165(can)s
2171 2554(remain)s 3274(open,)s 3847(depending)s 4898(on)s 5195(the)s
2172 5543(use)s 5918(of)s gsave
2175 240 fnt31 0 -52(wait)m
2181 240 fnt31 0 -52(nowait)m
2186 240 fnt31 0 -52(close)m
2189 8175(for)s 8513(the)s 0 864(rele)m 6(v)k 6(ant)k
2190 817(\207le)s 1178(descriptor)s 2193(in)s 2436(the)s 2784(client')s 13(s)k
2191 3524(ar)s 4(guments.)k 4620(By)s 4954(def)s 2(ault)k
2192 5675(writing)s 6418(\207ledescriptors)s 7822(remain)s 8542(open)s 0 52(1.0.1)m
2193 4809(User)s 5320(service)s 6052(daemon)s 6867(and)s 7271(client)s
2194 7861(speci\207cation)s
2204 %%PageResources: font Times-Roman
2206 %%+ font Courier-Bold
2207 %%+ font Times-Italic
2209 0.0500 dup scale 10 setlinewidth
2213 240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic
2228 1417 -15423 translate
2229 240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic
2233 240 fnt84 8952 13842(9)m 240 fnt82 0 13251(and)m 404(the)s
2234 752(client)s 1342(will)s 1768(w)s 2(ait)k 2237(for)s
2235 2575(them)s 3113(to)s 3352(be)s 3634(closed)s 4303(at)s
2236 4535(the)s 4883(service)s 5615(end,)s 6068(and)s 6472(reading)s
2237 7242(\207le)s 7603(descriptors)s 8702(are)s 0 13011(closed)m 669(immediately)s 15(.)k
2238 1952(These)s 2579(lefto)s 3(v)k 3(er)k 3375(child)s
2239 3911(processes)s 4878(will)s 5304(not)s 5670(get)s 6022(a)s
2240 6188(an)s 3(y)k gsave
2241 6585 13065 translate
2243 240 fnt31 0 -52(SIGHUP)m
2245 7245(e)s 6(v)k 3(en)k
2246 7745(if)s 7962(a)s 8128(read)s 8597(or)s 0 12771(write)m
2247 546(error)s 1069(occurs)s 1744(or)s 2003(the)s 2351(client)s
2248 2941(disconnects)s 4108(before)s 4774(then.)s 9066 609 0 609 240 240 60 0 11808 LoutGr2
2249 newpath 0 ysize 0.3 ft sub moveto
2255 320 fnt84 0 5(3.2.)m
2256 628(En)s 12(vir)k 5(onment)k
2258 0 11346(The)m 428(service)s
2259 1160(will)s 1586(ha)s 4(v)k 3(e)k 2087(some)s
2260 2648(information)s 3833(in)s 4076(en)s 9(vironment)k 5336(v)s 6(ariables:)k
2264 240 fnt31 0 -52(USERV_USER)m
2266 480 10866(The)m 908(login)s 1457(name)s
2267 2031(of)s 2302(the)s 2650(calling)s 3353(user)s 13(.)k
2268 3842(If)s 4072(the)s gsave
2269 4420 10920 translate
2271 240 fnt31 0 -52(LOGNAME)m
2273 5180(v)s 6(ariable)k
2274 5999(is)s 6209(set)s 6534(\(or)s 9(,)k 6910(if)s
2275 7127(that)s 7545(is)s 7755(unset,)s 8367(if)s 8584(the)s
2279 240 fnt31 0 -52(USER)m
2281 940 10626(v)m 6(ariable)k 1759(is)s
2282 1969(set\))s 2362(in)s 2605(the)s 2953(en)s 9(vironment)k
2283 4213(passed)s 4909(to)s 5148(the)s 5496(client)s 6086(by)s
2284 6380(the)s 6728(caller)s 7317(then)s 7786(the)s 8134(passw)s 2(ord)k
2285 480 10386(entry)m 1025(for)s 1363(that)s 1781(login)s 2330(name)s
2286 2904(will)s 3330(be)s 3612(look)s 2(ed)k 4320(up;)s
2287 4672(if)s 4889(that)s 5307(passw)s 2(ord)k 6267(entry')s 13(s)k
2288 6968(uid)s 7332(is)s 7542(the)s 7890(same)s 8437(as)s
2289 8687(that)s 480 10146(of)m 745(the)s 1086(calling)s 1782(process)s
2290 2543(then)s 3005(that)s 3416(login)s 3958(name)s 4525(will)s
2291 4945(be)s 5220(used,)s 5759(otherwise)s 6737(\(or)s 7068(if)s
2292 7278(neither)s gsave
2293 7994 10200 translate
2295 240 fnt31 0 -52(LOGNAME)m
2303 938 9906(is)m 1146(set\))s 1537(the)s 1883(calling)s
2304 2583(process')s 13(s)k 3508(uid)s 3870(will)s 4294(be)s
2305 4573(look)s 2(ed)k 5279(up)s 5570(to)s 5807(determine)s
2306 6815(their)s 7310(login)s 7857(name)s 8429(\(and)s 8909(if)s
2307 480 9666(this)m 876(lookup)s 1595(f)s 2(ails)k 2054(then)s
2308 2523(the)s 2871(service)s 3603(will)s 4029(not)s 4395(be)s
2309 4677(in)s 9(v)k 4(ok)k 2(ed\).)k gsave
2315 480 9186(The)m 908(uid)s 1272(of)s 1543(the)s
2316 1891(calling)s 2594(process.)s gsave
2319 240 fnt31 0 -52(USERV_GID)m
2322 908(gid)s 1272(and)s 1676(supplementary)s 3138(group)s 3750(list)s
2323 4101(of)s 4372(the)s 4720(calling)s 5423(process:)s 6246(\207rst)s
2324 6677(the)s 7025(group)s 7637(in)s 7880(gid)s 8244(and)s
2325 8648(then)s 480 8466(those)m 1041(in)s 1284(the)s 1632(supplementary)s
2326 3094(group)s 3706(list,)s 4104(in)s 4347(decimal,)s 5210(separated)s
2327 6170(by)s 6464(spaces.)s gsave
2330 240 fnt31 0 -52(USERV_GROUP)m
2333 908(group)s 1520(names)s 2182(of)s 2453(the)s 2801(calling)s
2334 3504(process,)s 4328(listed)s 4903(in)s 5146(the)s 5494(same)s
2335 6041(w)s 2(ay)k 6492(as)s 6742(the)s 7090(ids)s
2336 7420(are)s 7767(in)s gsave
2339 240 fnt31 0 -52(USERV_GID)m
2342 480 7746(If)m 710(no)s 1003(name)s 1577(can)s 1966(be)s
2343 2248(found)s 2865(for)s 3203(an)s 3(y)k 3600(of)s
2344 3871(the)s 4219(calling)s 4922(process')s 13(s)k 5849(group\(s\))s
2345 6708(then)s 7177(the)s 7525(service)s 8257(will)s 8683(not)s
2346 480 7506(be)m 762(in)s 9(v)k 4(ok)k 2(ed.)k
2350 240 fnt31 0 -52(USERV_CWD)m
2352 480 7026(The)m 908(client')s 13(s)k
2353 1648(current)s 2384(w)s 2(orking)k 3233(directory)s 4149(name)s
2354 4723(\(this)s 5198(directory)s 6114(may)s 6580(not)s 6946(be)s
2355 7228(accessible)s 8252(to)s 8491(the)s 480 6786(service\).)m 1339(If)s
2356 1568(it)s 1759(could)s 2348(not)s 2713(be)s 2994(determined)s
2357 4126(or)s 4384(the)s gsave
2360 240 fnt31 0 -52(\211\211hidecwd)m
2363 6103(w)s 2(as)k 6523(used)s 7019(then)s 7487(this)s
2364 7882(v)s 6(ariable)k 8700(will)s 480 6546(be)m 762(set)s
2365 1087(to)s 1326(an)s 1609(empty)s 2261(string)s 2858(\(this)s
2366 3333(is)s 3543(not)s 3909(considered)s 5003(an)s 5286(error\).)s
2370 240 fnt31 0 -52(USERV_SERVICE)m
2372 480 6066(The)m 908(service)s 1640(name)s
2373 2214(requested)s 3188(by)s 3482(the)s 3830(caller)s 13(.)k
2377 240 fnt31 0 -52(USERV_U_)m gsave
2380 240 fnt83 0 -52(name)m
2385 908(v)s 6(alue)k 1476(supplied)s 2345(to)s 2584(the)s
2386 2932(client)s 3522(by)s 3816(the)s 4164(caller)s 4753(using)s
2387 5325(-D)s 240 fnt83 5569 5588(name)m 240 fnt82 6081 5586(.)m
2391 240 fnt31 0 -52(HOME)m
2396 240 fnt31 0 -52(PATH)m
2402 240 fnt31 0 -52(SHELL)m
2413 240 fnt31 0 -52(USER)m
2416 3671(be)s 3953(set)s 4278(appropriately)s 5606(\(according)s 6681(to)s
2417 6920(the)s 7268(details)s 7942(of)s 8213(the)s 0 5083(service)m
2418 732(user\).)s 0 52(User)m 511(service)s 1243(daemon)s 2058(and)s
2419 2462(client)s 3052(speci\207cation)s 8611(1.0.1)s
2429 %%PageResources: font Times-Roman
2431 %%+ font Times-Italic
2432 %%+ font Courier-Bold
2434 0.0500 dup scale 10 setlinewidth
2438 240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic
2453 1417 -15423 translate
2454 240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic
2458 240 fnt84 0 13842(10)m gsave
2460 240 fnt82 9066 689 0 689 240 240 60 LoutGraphic
2462 newpath 0 ysize 0.3 ft sub moveto
2468 340 fnt84 0 70(4.)m 412(Ser)s 3(vice-side)k
2469 2219(con\207guration)s
2471 240 fnt82 0 12263(Which)m 695(ser)s 973(vices)s
2472 1515(may)s 1981(be)s 2263(run)s 2639(by)s 2933(whom)s
2473 3592(and)s 3996(un)s 4233(der)s 4598(what)s 5123(con)s
2474 5466(di)s 5646(tions)s 6162(is)s 6372(con)s 6715(trolled)s
2475 7396(by)s 7690(con)s 8033(\207g)s 8279(u)s 8394(ra)s
2476 8579(-)s 0 12023(tion)m 429(\207les.)s 0 11615(The)m 428(daemon)s
2477 1243(will)s 1669(read)s 2138(these)s 2685(\207les)s 3134(in)s
2478 3377(order)s 13(.)k 3972(Certain)s 4732(directi)s 6(v)k 3(es)k
2479 5702(in)s 5945(the)s 6293(\207les)s 6742(modify)s 7487(the)s
2480 7835(daemon')s 13(s)k 0 11375(e)m 3(x)k 3(ecution)k
2481 981(settings)s 1762(for)s 2100(in)s 9(v)k 4(oking)k
2482 2992(the)s 3340(service,)s 4123(for)s 4461(e)s 3(xample)k
2483 5324(allo)s 6(wing)k 6208(certain)s 6914(\207le)s 7275(descriptors)s
2484 8374(to)s 8613(be)s 0 11135(speci\207ed)m 908(by)s 1202(the)s
2485 1550(client)s 2140(or)s 2399(specifying)s 3448(which)s 4090(program)s
2486 4960(to)s 5199(e)s 3(x)k 3(ecute)k 5979(to)s
2487 6218(pro)s 3(vide)k 7002(the)s 7350(service.)s 0 10727(The)m
2488 240 fnt83 428 10729(last)m 240 fnt82 837 10727(instance)m 1676(of)s
2489 1947(each)s 2442(such)s 2938(setting)s 3628(will)s 4054(tak)s 2(e)k
2490 4506(ef)s 6(fect.)k 5146(The)s 5574(directi)s 6(v)k 3(es)k
2491 6544(which)s 7186(specify)s 7930(which)s 0 10487(program)m 864(to)s
2492 1096(e)s 3(x)k 3(ecute)k 1869(will)s 2288(not)s
2493 2647(stop)s 3092(the)s 3433(con\207guration)s 4759(\207le)s 5113(from)s
2494 5630(being)s 6208(read;)s 6724(the)s 3(y)k 7180(will)s
2495 7599(be)s 7874(remembered)s 0 10247(and)m 404(will)s 830(only)s
2496 1310(tak)s 2(e)k 1762(ef)s 6(fect)k 2358(if)s
2497 2575(the)s 3(y)k 3038(are)s 3385(not)s 3751(o)s 3(v)k 3(erridden)k
2498 4838(by)s 5132(a)s 5298(later)s 5781(directi)s 6(v)k 3(e.)k
2499 0 9839(The)m 428(daemon)s 1243(will)s 1669(\207rst)s 2100(read)s
2503 240 fnt31 0 -52(/etc/userv/system.default)m
2505 5072(.)s 5176(Then,)s 5775(by)s
2506 6069(def)s 2(ault)k 6790(\(this)s 7265(beha)s 4(viour)k
2507 8278(may)s 0 9599(be)m 282(modi\207ed\),)s 1319(it)s 1511(will)s
2508 1937(read)s 2406(a)s 2572(per)s 4(-user)k 3410(\207le)s
2512 240 fnt31 0 -52(~/.userv/rc)m
2514 4872(,)s 4979(if)s 5196(it)s
2515 5388(e)s 3(xists)k 5980(and)s 6384(the)s 6732(service)s
2516 7464(user')s 13(s)k 8072(shell)s 8578(is)s 8788(in)s
2520 240 fnt31 0 -52(/etc/shells)m
2522 1101 9359(.)m 1205(Finally)s 1936(it)s
2523 2128(will)s 2554(read)s gsave
2526 240 fnt31 0 -52(/etc/userv/system.override)m
2529 0 8951(When)m 627(it)s 816(has)s 1183(read)s 1650(all)s
2530 1940(of)s 2208(these)s 2753(\207les)s 3199(it)s 3388(will)s
2531 3812(act)s 4147(ac)s 4352(cord)s 4775(ing)s 5131(to)s
2532 5368(the)s 5713(cur)s 6018(rent)s 6389(ly)s 6626(v)s 6(al)k
2533 6907(ues)s 7275(of)s 7543(of)s 7811(the)s 8156(e)s 3(x)k
2534 8374(e)s 8476(cu)s 8697(tion)s 0 8711(set)m 265(tings.)s
2535 9066 670 0 670 240 240 60 0 7687 LoutGr2
2536 newpath 0 ysize 0.3 ft sub moveto
2542 320 fnt84 0 66(4.1.)m 628(Con\207guration)s 2618(\207le)s 3100(syntax)s
2545 0 7225(The)m 414(con\207guration)s 1733(\207le)s 2080(is)s 2276(a)s
2546 2428(series)s 3007(of)s 3264(directi)s 6(v)k 3(es,)k
2547 4276(usually)s 5007(one)s 5395(per)s 5746(line.)s 6193(The)s
2548 6607(portion)s 7341(of)s 7598(a)s 7750(line)s 8149(follo)s 6(wing)k
2549 0 6985(a)m 154(hash)s 638(character)s gsave
2555 1708(is)s 1906(tak)s 2(en)k 2466(as)s 2704(a)s
2556 2858(comment)s 3796(and)s 4188(ignored.)s 5011(Each)s 5533(directi)s 6(v)k 3(e)k
2557 6403(consists)s 7199(of)s 7458(a)s 7612(series)s 8194(of)s
2558 8452(tok)s 2(ens)k 0 6745(separated)m 960(by)s 1254(linear)s
2559 1857(whitespace)s 2975(\(spaces)s 3729(and)s 4133(tabs\);)s 4709(tok)s 2(ens)k
2560 5383(may)s 5849(be)s 6131(w)s 2(ords)k 6765(consisting)s
2561 7788(of)s 8059(non-space)s 0 6505(characters,)m 1074(or)s 9(,)k
2562 1371(where)s 2011(a)s 2177(string)s 2774(is)s 2984(required,)s
2563 3887(a)s 4053(string)s 4650(in)s 4893(double)s 5601(quotes.)s
2564 6330(Double-quoted)s 7824(strings)s 8512(may)s 0 6265(contain)m 761(the)s
2565 1109(follo)s 6(wing)k 2086(backslash)s 3073(escapes:)s gsave
2571 480 5785(ne)m 6(wline)k gsave
2574 240 fnt31 0 -52(\\t)m
2577 480 5305(tab)m gsave
2580 240 fnt31 0 -52(\\r)m
2582 480 4825(carriage)m 1304(return)s
2586 240 fnt31 0 -52(\\)m gsave
2589 240 fnt83 0 -52(OOO)m
2593 480 4345(character)m
2594 1414(whose)s 2082(octal)s 2601(code)s 3109(is)s 240 fnt83
2595 3319 4347(OOO)m gsave
2598 240 fnt31 0 -52(\\x)m gsave
2601 240 fnt83 0 -52(XX)m
2606 240 fnt82 480 3865(character)m 1414(whose)s 2082(he)s 3(x)k
2607 2480(code)s 2988(is)s 240 fnt83 3198 3867(XX)m gsave
2614 240 fnt83 0 -52(punctuation)m
2618 240 fnt82 480 3385(literal)m
2619 1090(punctuation)s 2277(character)s 3211(\(e)s 3(g)k gsave
2628 240 fnt31 0 -52(\\")m
2634 240 fnt31 0 -52(\\)m gsave
2637 240 fnt83 0 -52(ne)m 3(wline)k
2642 1005 3144(\(ie,)m 1363(backslash)s 2350(at)s 2582(end)s 2986(of)s
2643 3257(line\))s 480 2904(string)m 1077(continues)s 2045(on)s 2342(ne)s 3(xt)k
2644 2811(line)s 0 2342(Relati)m 6(v)k 3(e)k 843(pathnames)s
2645 1917(in)s 2160(directi)s 6(v)k 3(es)k 3130(are)s
2646 3477(relati)s 6(v)k 3(e)k 4239(to)s 4478(the)s
2647 4826(service)s 5558(program')s 13(s)k 6578(current)s 7314(directory)s
2648 8230(\(usually)s 0 2102(the)m 348(service)s 1080(user')s 13(s)k
2649 1687(home)s 2275(directory\).)s 3319(P)s 3(athnames)k 4403(starting)s
2650 5171(with)s 5653(the)s 6000(tw)s 2(o)k 6410(characters)s
2654 240 fnt31 0 -52(~/)m
2656 7687(are)s 8033(tak)s 2(en)k
2657 8606(to)s 8844(be)s 0 1862(relati)m 6(v)k 3(e)k
2658 762(to)s 1001(the)s 1349(service)s 2081(user')s 13(s)k
2659 2689(home)s 3277(directory)s 15(.)k 9066 670 0 670 240 240 60 0 838 LoutGr2
2660 newpath 0 ysize 0.3 ft sub moveto
2666 320 fnt84 0 66(4.2.)m
2667 628(Con\207guration)s 2618(\207le)s 3100(dir)s 5(ecti)k 3(v)k 3(es)k
2670 0 52(1.0.1)m 4809(User)s 5320(service)s 6052(daemon)s 6867(and)s
2671 7271(client)s 7861(speci\207cation)s
2681 %%PageResources: font Times-Roman
2683 %%+ font Courier-Bold
2684 %%+ font Times-Italic
2686 0.0500 dup scale 10 setlinewidth
2690 240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic
2705 1417 -15423 translate
2706 240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic
2710 240 fnt84 8839 13842(11)m 300 fnt84 0 13210(4.2.1.)m 813(Immediate)s
2711 2261(dir)s 5(ecti)k 3(v)k 3(es)k 240 fnt82
2712 0 12696(The)m 428(follo)s 6(wing)k 1405(directi)s 6(v)k 3(es)k
2713 2375(tak)s 2(e)k 2827(ef)s 6(fect)k 3423(immediately:)s
2717 240 fnt31 0 -52(cd)m gsave
2720 240 fnt83 0 -52(pathname)m
2725 1268(directory)s 2184(in)s 2427(the)s 2775(service)s 3507(program.)s
2727 4421 12102 translate
2729 240 fnt31 0 -52(cd)m
2731 4681(is)s 4891(cumulati)s 6(v)k 3(e.)k
2732 6048(It)s 6253(is)s 6463(an)s 6746(error)s 7269(if)s
2733 7486(the)s 7834(directory)s 480 11808(cannot)m 1178(be)s 1460(changed)s
2735 2666 11862 translate
2737 240 fnt31 0 -52(cd)m
2739 2926(should)s 3623(not)s
2740 3989(be)s 4271(used)s 4768(between)s gsave
2741 5622 11862 translate
2743 240 fnt31 0 -52(execute\211from\211directory)m
2746 7884(and)s 8288(the)s 480 11568(in)m 9(v)k 4(ocation)k
2747 1534(of)s 1805(the)s 2153(service)s 2885(program,)s 3802(as)s
2748 4052(the)s 4400(test)s 4791(for)s 5129(the)s 5477(a)s 4(v)k 6(ailability)k
2749 6595(of)s 6866(the)s 7214(service)s 7946(program)s 480 11328(w)m 2(ould)k
2750 1117(be)s 1380(done)s 1884(with)s 2347(the)s 2677(old)s
2751 3022(current)s 3740(directory)s 4637(and)s 5023(the)s 5352(actual)s
2752 5959(e)s 3(x)k 3(ecution)k 6921(with)s 7385(the)s
2753 7714(ne)s 6(w)k 8142(\(probably)s 480 11088(causing)m 1264(an)s
2754 1547(error\).)s gsave
2757 240 fnt31 0 -52(eof)m
2759 480 10454(Stop)m 972(reading)s
2760 1742(the)s 2090(con\207guration)s 3423(\207le)s 3784(in)s 4027(question,)s
2761 4945(as)s 5195(if)s 5412(end)s 5816(of)s 6087(\207le)s
2762 6448(had)s 6852(been)s 7361(reached.)s 8208(An)s 3(y)k
2763 480 10214(control)m 1212(constructs)s 2232(\()s gsave
2764 2305 10268 translate
2766 240 fnt31 0 -52(if)m
2770 2612 10268 translate
2772 240 fnt31 0 -52(catch\211quit)m
2775 3932 10268 translate
2778 0 -52(errors\211push)m
2780 5033(\))s 5161(which)s 5803(were)s 6323(started)s
2781 7017(in)s 7260(that)s 7678(\207le)s 8039(will)s 8465(be)s
2782 480 9974(considered)m 1574(\207nished.)s 2436(P)s 3(arsing)k 3203(will)s
2783 3629(continue)s 4509(in)s 4752(the)s 5100(\207le)s 5461(which)s
2784 6103(caused)s 6812(the)s 7160(\207le)s 7521(containing)s 8584(the)s
2788 240 fnt31 0 -52(eof)m
2790 840 9734(to)m 1079(be)s 1361(read.)s
2794 240 fnt31 0 -52(quit)m
2796 480 9150(Stop)m 969(reading)s 1735(con\207guration)s
2797 3064(\207les)s 3510(and)s 3910(act)s 4244(immediately)s 5489(on)s
2798 5782(the)s 6126(current)s 6859(settings.)s 7689(The)s 8113(beha)s 4(viour)k
2802 240 fnt31 0 -52(quit)m
2804 1211(is)s 1421(subject)s
2805 2158(to)s 2397(the)s gsave
2808 240 fnt31 0 -52(catch\211quit)m
2811 4538(construct.)s gsave
2814 240 fnt31 0 -52(include)m gsave
2817 240 fnt83 0 -52(\207lename)m
2825 240 fnt31 0 -52(include\211ifexist)m gsave
2828 240 fnt83 0 -52(\207lename)m
2833 1026(the)s 1369(con\207guration)s 2698(\207le)s 240 fnt83 3054 8038(\207lename)m
2834 240 fnt82 3858 8036(,)m 3961(and)s 4360(then)s 4825(return)s
2835 5447(to)s 5682(this)s 6073(\207le)s 6430(and)s 6829(continue)s
2836 7705(parsing)s 8457(it)s 8644(with)s 480 7796(the)m 822(ne)s 3(xt)k
2837 1284(directi)s 6(v)k 3(e.)k 2207(It)s 2405(is)s
2838 2608(an)s 2884(error)s 3400(if)s 3610(the)s 3952(\207le)s
2839 4306(cannot)s 4997(be)s 5272(opened)s 6015(and)s 6412(read,)s
2843 240 fnt31 0 -52(include\211ifexist)m
2845 480 7556(is)m 690(used)s
2846 1187(and)s 1591(the)s 1939(\207le)s 2300(does)s 2790(not)s
2847 3156(e)s 3(xist,)k 3711(in)s 3954(which)s 4596(case)s
2848 5063(the)s 5411(directi)s 6(v)k 3(e)k 6293(is)s
2849 6503(silently)s 7260(ignored.)s gsave
2852 240 fnt31 0 -52(include\211lookup)m gsave
2856 0 -52(par)m 3(ameter)k
2861 240 fnt83 0 -52(dir)m 8(ectory)k
2869 240 fnt31 0 -52(include\211lookup\211all)m gsave
2872 240 fnt83 0 -52(par)m 3(ameter)k
2878 240 fnt83 0 -52(dir)m 8(ectory)k
2882 480 6682(Read)m 1030(the)s
2883 1378(con\207guration)s 2711(\207le)s 3072(in)s 240 fnt83 3315 6684(dir)m 8(ectory)k
2884 240 fnt82 4239 6682(whose)m 4907(name)s 5481(is)s 5691(the)s
2885 6039(v)s 6(alue)k 6607(of)s 240 fnt83 6878 6684(par)m 3(ameter)k
2886 240 fnt82 7937 6682(\(see)m 8377(the)s 480 6442(description)m 1599(of)s
2890 240 fnt31 0 -52(if)m
2892 2070(,)s 2177(`Control)s 3042(structure)s
2893 3933(directi)s 6(v)k 3(es',)k 5038(page)s 5546(12\).)s
2894 5969(If)s 240 fnt83 6199 6444(par)m 3(ameter)k 240 fnt82
2895 7258 6442(has)m 7628(se)s 6(v)k 3(eral)k 8350(v)s 6(alues)k
2896 480 6202(the)m 3(y)k 943(will)s 1369(be)s 1651(tried)s
2897 2146(in)s 2389(order;)s 3005(with)s gsave
2900 240 fnt31 0 -52(include\211lookup)m
2903 4948(this)s 5344(search)s 6011(will)s 6437(stop)s 6889(when)s
2904 7465(one)s 7867(is)s 8077(found,)s 8743(b)s 4(ut)k
2905 480 5962(with)m gsave
2908 240 fnt31 0 -52(include\211lookup\211all)m
2910 2824(the)s 3172(search)s
2911 3839(will)s 4265(continue)s 5145(and)s 5549(an)s 3(y)k
2912 5946(\207les)s 6395(appropriate)s 7539(to)s 7778(other)s 8329(v)s 6(alues)k
2913 480 5722(will)m 906(be)s 1188(read)s 1657(too.)s 2127(If)s
2914 2357(none)s 2879(of)s 3150(the)s 3498(parameter')s 13(s)k
2915 4662(v)s 6(alues)k 5318(had)s 5722(a)s 5888(corresponding)s
2916 7310(\207le)s 7671(then)s 8140(the)s 8488(\207le)s gsave
2922 1340 5482(will)m 1765(be)s 2045(read,)s 2562(if)s
2923 2778(it)s 2968(e)s 3(xists.)k 3612(If)s 240 fnt83
2924 3841 5484(par)m 3(ameter)k 240 fnt82 4840 5482(')m 13(s)k
2925 5048(list)s 5398(of)s 5668(v)s 6(alues)k 6322(w)s 2(as)k
2926 6742(empty)s 7393(then)s 7860(the)s 8207(\207le)s gsave
2932 480 5242(will)m 906(be)s 1188(tried)s 1683(\207rst)s
2933 2114(and)s 2518(read)s 2987(if)s 3204(it)s 3396(e)s 3(xists,)k
2934 4044(otherwise)s gsave
2937 240 fnt31 0 -52(:default)m
2939 5890(will)s 6316(be)s
2940 6598(tried.)s 7199(It)s 7404(is)s 7614(not)s 7980(an)s
2941 8263(error)s 8786(for)s 480 5002(an)m 3(y)k 877(of)s
2942 1148(the)s 1496(\207les)s 1945(\(including)s gsave
2945 240 fnt31 0 -52(:default)m
2948 3782(\))s 3910(not)s 4276(to)s 4515(e)s 3(xist,)k
2949 5070(b)s 4(ut)k 5432(it)s 5624(is)s 5834(an)s
2950 6117(error)s 6640(if)s 6857(a)s 7023(\207le)s 7384(e)s 3(xists)k
2951 7976(and)s 8380(cannot)s 480 4762(be)m 753(read)s 1213(or)s
2952 1462(if)s 1670(the)s 2008(directory)s 2915(cannot)s 3603(be)s
2953 3876(accessed.)s 4867(A)s 5087(translation)s 6143(will)s 6559(be)s
2954 6832(applied)s 7584(to)s 7814(v)s 6(alues)k 8460(before)s
2955 480 4522(the)m 3(y)k 943(are)s 1290(used)s 1787(to)s
2956 2026(construct)s 2962(a)s 3128(\207lename,)s 4058(so)s 4324(that)s
2957 4742(the)s 5090(lookup)s 5809(cannot)s 6507(access)s 7168(dot\207les)s
2958 7923(or)s 8182(\207les)s 8631(in)s 480 4282(other)m 1031(directories:)s
2959 2144(v)s 6(alues)k 2800(starting)s 3569(with)s 4051(full)s
2960 4437(stops)s 4980(will)s 5406(ha)s 4(v)k 3(e)k
2961 5907(a)s 6073(colon)s 6662(prepended)s 7717(\(making)s gsave
2967 8767(\),)s 480 4042(colons)m 1156(will)s 1582(be)s
2968 1864(doubled,)s 2743(and)s 3147(each)s 3642(slash)s 4177(will)s
2969 4603(be)s 4885(replaced)s 5752(with)s 6234(a)s 6400(colon)s
2970 6989(follo)s 6(wed)k 7891(by)s 8185(a)s 8351(h)s 1(yphen)k
2974 240 fnt31 0 -52(:\211)m
2976 680 3802(.)m 784(A)s 1014(parameter)s
2977 2028(v)s 6(alue)k 2596(which)s 3238(is)s 3448(the)s
2978 3796(empty)s 4448(string)s 5045(will)s 5471(be)s 5753(replaced)s
2982 240 fnt31 0 -52(:empty)m
2984 7762(\(note)s 8309(that)s
2985 8727(this)s 480 3562(is)m 690(dif)s 6(ferent)k 1565(from)s
2986 2089(a)s 2255(parameter)s 3269(not)s 3635(ha)s 4(ving)k
2987 4336(an)s 3(y)k 4733(v)s 6(alues\).)k gsave
2991 0 -52(include\211directory)m gsave
2994 240 fnt83 0 -52(dir)m 8(ectory)k
2999 1030(con\207guration)s 2363(from)s 2887(all)s 3180(\207les)s 3629(in)s
3000 3872(directory)s 240 fnt83 4788 2930(dir)m 8(ectory)k 240 fnt82
3001 5712 2928(which)m 6354(are)s 6701(plain)s 7236(\207les)s 7685(whose)s
3002 8353(names)s 480 2688(consist)m 1204(only)s 1684(of)s 1955(alphanumerics)s
3003 3400(and)s 3804(h)s 1(yphens)k 4653(and)s 5057(start)s
3004 5527(with)s 6009(an)s 6292(alphanumeric.)s 7697(The)s 3(y)k
3005 8240(will)s 8666(be)s 480 2448(read)m 949(in)s 1192(le)s 3(xical)k
3006 1880(order)s 13(.)k 2475(It)s 2680(is)s 2890(an)s
3007 3173(error)s 3696(for)s 4034(the)s 4382(directory)s 5298(not)s
3008 5664(to)s 5903(e)s 3(xist)k 6411(or)s 6670(for)s
3009 7008(it)s 7200(or)s 7459(an)s 3(y)k 7856(of)s
3010 8127(the)s 8475(\207les)s 480 2208(found)m 1089(not)s 1447(to)s
3011 1677(be)s 1951(read)s 2411(successfully)s 15(,)k 3663(or)s
3012 3914(for)s 4243(an)s 3(ything)k 5123(with)s 5596(an)s
3013 5871(appropriate)s 7007(name)s 7572(not)s 7930(to)s 8160(be)s
3014 8434(a)s 8591(plain)s 480 1968(\207le)m 841(or)s 1100(a)s
3015 1266(symbolic)s 2196(link)s 2629(to)s 2868(a)s 3034(plain)s
3016 3569(\207le.)s gsave
3019 240 fnt31 0 -52(error)m gsave
3022 240 fnt83 0 -52(te)m 4(xt)k
3027 480 1334(Causes)m 1209(an)s 1492(error)s 2015(whose)s
3028 2683(message)s 3549(includes)s 4397(the)s 4745(descripti)s 6(v)k 3(e)k
3029 5840(string)s 240 fnt83 6437 1336(te)m 4(xt)k 240 fnt82
3030 6781 1334(.)m 240 fnt83 6885 1336(te)m 4(xt)k 240 fnt82
3031 7289 1334(may)m 7755(consist)s 8479(of)s 480 1094(se)m 6(v)k 3(eral)k
3032 1192(tok)s 2(ens)k 1855(with)s 2326(interv)s 3(ening)k
3033 3454(whitespace.)s 4609(The)s 5026(whitespace)s 6134(will)s 6549(be)s
3034 6820(included)s 7691(in)s 7923(the)s 8260(message)s 480 854(as)m
3035 726(found)s 1338(in)s 1576(the)s 1919(con\207guration)s 3247(\207le:)s
3036 3653(all)s 3941(the)s 4284(characters)s 5298(until)s 5786(the)s
3037 6129(end)s 6528(of)s 6794(the)s 7137(line)s 7546(will)s
3038 7967(be)s 8244(included)s 0 52(User)m 511(service)s 1243(daemon)s
3039 2058(and)s 2462(client)s 3052(speci\207cation)s 8611(1.0.1)s
3049 %%PageResources: font Times-Roman
3051 %%+ font Courier-Bold
3052 %%+ font Times-Italic
3054 0.0500 dup scale 10 setlinewidth
3058 240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic
3073 1417 -15423 translate
3074 240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic
3078 240 fnt84 0 13842(12)m 240 fnt82 480 13254(v)m 3(erbatim,)k
3079 1433(unless)s 2082(the)s 3(y)k 2545(are)s 2892(part)s
3080 3323(of)s 3594(a)s 3760(double-quoted)s 5201(string,)s 5852(in)s
3081 6095(which)s 6737(case)s 7204(the)s 7552(usual)s 8112(meaning)s
3082 480 13014(of)m 751(the)s 1099(string)s 1696(\(i.e.,)s 2174(after)s
3083 2670(backslash)s 3657(escape)s 4350(processing\))s 5501(will)s 5927(be)s
3084 6209(used.)s 6752(Comments)s 7840(and)s 8244(linear)s 480 12774(whitespace)m
3085 1598(at)s 1830(the)s 2178(end)s 2582(of)s 2853(the)s
3086 3201(line)s 3615(\(or)s 3953(just)s 4358(before)s 5024(the)s
3087 5372(comment\))s 6390(will)s 6816(still)s 7228(be)s 7510(ignored.)s
3091 240 fnt31 0 -52(message)m gsave
3094 240 fnt83 0 -52(te)m 4(xt)k
3099 480 12140(Causes)m 1209(a)s 1375(message)s 2241(including)s
3100 3198(the)s 3546(descripti)s 6(v)k 3(e)k 4641(string)s
3101 240 fnt83 5238 12142(te)m 4(xt)k 240 fnt82 5642 12140(to)m
3102 5881(be)s 6163(deli)s 6(v)k 3(ered)k 7101(as)s
3103 7351(if)s 7568(it)s 7760(were)s 8280(an)s 8563(error)s
3104 480 11900(message,)m 1397(b)s 4(ut)k 1759(does)s 2249(not)s
3105 2615(actually)s 3425(cause)s 4012(an)s 4295(error)s 13(.)k
3106 300 fnt84 0 11233(4.2.2.)m 813(Dir)s 5(ecti)k 3(v)k 3(es)k
3107 2148(with)s 2781(delay)s 3(ed)k 3828(effect)s 240 fnt82
3108 0 10662(The)m 428(follo)s 6(wing)k 1405(directi)s 6(v)k 3(es)k
3109 2375(ha)s 4(v)k 3(e)k 2876(no)s 3169(immediate)s
3110 4233(ef)s 6(fect,)k 4876(b)s 4(ut)k 5238(are)s
3111 5585(remembered)s 6837(and)s 7241(ha)s 4(v)k 3(e)k
3112 7742(an)s 8025(ef)s 6(fect)k 8621(on)s 0 10422(later)m
3113 483(processing)s 1559(of)s 1830(the)s 2178(con\207guration)s 3511(\207les.)s
3117 240 fnt31 0 -52(user\211rcfile)m gsave
3120 240 fnt83 0 -52(\207lename)m
3124 480 9774(Speci\207es)m
3125 1380(that)s 1784(the)s 2118(\207le)s 240 fnt83 2465 9776(\207lename)m
3126 240 fnt82 3315 9774(should)m 3998(be)s 4266(read)s 4721(instead)s
3127 5442(of)s 5699(the)s 6033(user')s 13(s)k gsave
3133 7728(.)s 7818(This)s 8280(does)s 240 fnt83
3134 8756 9776(not)m 240 fnt82 480 9534(happen)m 1229(immediately;)s 2535(instead,)s
3135 3319(the)s 3667(setting)s 4357(is)s 4567(remembered)s 5819(and)s
3136 6223(used)s 6720(after)s 7216(the)s gsave
3139 240 fnt31 0 -52(system.default)m
3142 480 9294(con\207guration)m 1812(\207le)s 2171(has)s 2539(been)s 3046(read.)s
3143 3559(This)s 4033(directi)s 6(v)k 3(e)k 4913(has)s
3144 5281(no)s 5572(ef)s 6(fect)k 6166(in)s 6407(a)s
3145 6571(user')s 13(s)k 7177(con\207guration)s 8508(\207le)s 8867(or)s
3146 480 9054(in)m 723(the)s gsave
3149 240 fnt31 0 -52(system.override)m
3152 3044(as)s 3294(the)s 3642(user')s 13(s)k 4250(con\207guration)s
3153 5583(\207le)s 5944(has)s 6314(already)s 7071(been)s 7580(found)s
3154 8197(and)s 8601(read)s 480 8814(by)m 774(then)s 1243(and)s
3155 1647(will)s 2073(not)s 2439(be)s 2721(re-read.)s gsave
3159 0 -52(errors\211to\211stderr)m
3161 480 8180(Causes)m 1209(error)s 1732(messages)s 2686(to)s
3162 2925(be)s 3207(deli)s 6(v)k 3(ered)k 4145(to)s
3163 4384(the)s 4732(client')s 13(s)k 5472(stderr)s 13(.)k
3167 240 fnt31 0 -52(errors\211to\211file)m
3169 240 fnt83 1581 7788(\207lename)m 240 fnt82
3170 480 7546(Error)m 1039(messages)s 1989(will)s 2410(be)s 2688(written)s
3171 3416(to)s 240 fnt83 3651 7548(\207lename)m 240 fnt82 4455 7546(,)m
3172 4557(which)s 5195(will)s 5617(be)s 5894(opened)s 6640(in)s
3173 6878(the)s 7222(conte)s 3(xt)k 7978(of)s 8245(and)s
3174 8644(with)s 480 7306(the)m 828(pri)s 6(vile)k 3(ges)k
3175 1812(of)s 2083(the)s 2431(service)s 3163(user)s 13(.)k
3179 240 fnt31 0 -52(errors\211to\211syslog)m
3181 1782 6912([)m 240 fnt83 1853 6914(facility)m
3182 240 fnt82 2571 6912([)m 240 fnt83 2642 6914(le)m 3(vel)k
3183 240 fnt82 3089 6912(]])m 480 6672(Error)m 1043(messages)s 1997(will)s
3184 2423(be)s 2705(deli)s 6(v)k 3(ered)k 3643(using)s
3188 240 fnt31 0 -52(syslog)m
3190 4815(.)s 4919(The)s 5347(def)s 2(ault)k
3191 240 fnt83 6068 6674(facility)m 240 fnt82 6786 6672(is)m gsave
3197 7396(;)s 7508(the)s 7856(def)s 2(ault)k
3198 240 fnt83 8577 6674(le)m 3(vel)k 240 fnt82 480 6432(is)m
3202 240 fnt31 0 -52(error)m
3204 1190(.)s 300 fnt84 0 5815(4.2.3.)m
3205 813(Contr)s 5(ol)k 1874(structur)s 5(e)k 3117(dir)s 5(ecti)k 3(v)k 3(es)k
3206 240 fnt82 0 5300(The)m 421(follo)s 6(wing)k 1390(directi)s 6(v)k 3(es)k
3207 2353(are)s 2692(used)s 3182(to)s 3413(create)s 4031(control)s
3208 4755(structures.)s 5780(If)s 6002(the)s 6343(end)s 6739(of)s
3209 7003(the)s 7343(\207le)s 7697(is)s 7899(encountered)s 0 5060(before)m
3210 666(the)s 1014(end)s 1418(of)s 1689(an)s 3(y)k
3211 2086(control)s 2818(structure)s 3709(which)s 4351(w)s 2(as)k
3212 4772(started)s 5466(inside)s 6093(it)s 6285(then)s 6754(that)s
3213 7172(control)s 7904(structure)s 8795(is)s 0 4820(considered)m 1094(\207nished.)s
3214 1956(This)s 2432(is)s 2642(not)s 3008(an)s 3291(error)s 13(.)k
3218 240 fnt31 0 -52(if)m gsave
3221 240 fnt83 0 -52(condition)m
3232 240 fnt83 0 -52(condition)m
3239 240 fnt31 0 -52(else)m
3245 240 fnt31 0 -52(fi)m
3247 480 3452(Lines)m 1062(follo)s 6(wing)k
3251 240 fnt31 0 -52(if)m
3253 2299(are)s 2646(interpreted)s 3738(only)s
3254 4218(if)s 4435(the)s 4783(condition)s 5744(is)s 5954(true.)s
3255 6429(Man)s 3(y)k 7039(conditions)s 8087(are)s 480 3212(properties)m
3256 1486(of)s 1757(parameter)s 2771(v)s 6(alues.)k 3480(Most)s
3257 4032(parameters)s 5130(ha)s 4(v)k 3(e)k 5631(a)s
3258 5797(single)s 6424(string)s 7021(as)s 7271(a)s 7437(v)s 6(alue;)k
3259 8061(ho)s 6(we)k 6(v)k 3(er)k 9(,)k
3260 480 2972(some)m 1035(may)s 1495(yield)s 2025(zero)s 2483(or)s
3261 2735(se)s 6(v)k 3(eral)k 3451(strings,)s 4189(in)s
3262 4426(which)s 5062(case)s 5522(the)s 5864(condition)s 6819(is)s
3263 7023(true)s 7444(if)s 7654(it)s 7840(is)s 8044(true)s
3264 8465(of)s 8729(an)s 3(y)k 480 2732(of)m 751(the)s
3265 1099(strings)s 1787(indi)s 6(vidually)k 15(.)k 3026(P)s 3(arameters)k
3266 4134(are)s 4481(described)s 5455(belo)s 6(w)k 15(.)k
3267 6183(The)s 6611(conditions)s 7659(are:)s gsave
3270 240 fnt31 0 -52(glob)m
3274 240 fnt83 0 -52(par)m 3(ameter)k
3279 240 fnt83 0 -52(glob\211pattern)m
3284 960 2251(The)m 1388(v)s 6(alue)k 1956(of)s
3285 2227(the)s 2575(parameter)s 3589(whose)s 4257(name)s 4831(is)s
3286 5041(gi)s 6(v)k 3(en)k 5621(matches)s 6455(one)s
3287 6857(of)s 7128(the)s 7476(glob)s 7955(patterns)s 960 2011(\(anchored)m
3288 1974(at)s 2206(both)s 2689(ends;)s 3240(backslashes)s 4420(can)s
3289 4809(be)s 5091(used)s 5588(to)s 5827(escape)s 6520(metacharacters\).)s
3293 240 fnt31 0 -52(range)m gsave
3296 240 fnt83 0 -52(par)m 3(ameter)k
3302 240 fnt83 0 -52(min)m
3307 240 fnt83 0 -52(max)m
3312 1380(v)s 6(alue)k 1940(of)s 2203(the)s 2543(parameter)s
3313 3548(is)s 3750(a)s 3908(nonne)s 3(g)k 1(ati)k 6(v)k 3(e)k
3314 5113(inte)s 3(ger)k 5825(and)s 6220(lies)s 6594(within)s
3315 7254(the)s 7594(range)s 8172(speci\207ed.)s 240 fnt83 960 1293(min)m
3316 240 fnt82 1373 1291(or)m 240 fnt83 1632 1293(max)m 240 fnt82
3317 2091 1291(may)m 2557(be)s gsave
3323 3238(indicate)s 4050(no)s 4343(lo)s 6(wer)k 4941(or)s
3324 5200(upper)s 5805(limit,)s 6362(respecti)s 6(v)k 3(ely)k 15(.)k
3328 240 fnt31 0 -52(grep)m gsave
3331 240 fnt83 0 -52(par)m 3(ameter)k
3337 240 fnt83 0 -52(\207lename)m
3341 960 810(The)m 240 fnt83 1388 812(\207lename)m
3342 240 fnt82 2252 810(refers)m 2845(to)s 3084(a)s 3250(\207le)s
3343 3611(one)s 4013(of)s 4284(whose)s 4952(lines)s 5454(is)s
3344 5664(the)s 6012(v)s 6(alue)k 6580(of)s 6851(the)s
3345 7199(parameter)s 8213(\(leading)s 0 52(1.0.1)m 4809(User)s 5320(service)s
3346 6052(daemon)s 6867(and)s 7271(client)s 7861(speci\207cation)s
3356 %%PageResources: font Times-Roman
3358 %%+ font Courier-Bold
3359 %%+ font Times-Italic
3361 0.0500 dup scale 10 setlinewidth
3365 240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic
3380 1417 -15423 translate
3381 240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic
3385 240 fnt84 8833 13842(13)m 240 fnt82 960 13251(or)m 1211(trailing)s
3386 1944(whitespace)s 3053(on)s 3341(each)s 3827(line)s 4232(and)s
3387 4627(empty)s 5270(lines)s 5764(in)s 5998(the)s 6337(\207le)s
3388 6689(are)s 7027(ignored\).)s 7932(It)s 8128(is)s 8329(an)s
3389 8603(error)s 960 13011(for)m 1298(the)s 1646(\207le)s 2007(not)s
3390 2373(to)s 2612(be)s 2894(opened)s 3644(and)s 4048(read.)s
3394 240 fnt31 0 -52(!)m gsave
3397 240 fnt83 0 -52(condition)m
3402 240 fnt83 1388 12532(condition)m 240 fnt82 2346 12530(is)m 240 fnt83
3403 2556 12532(not)m 240 fnt82 2926 12530(true.)m 600 12290(Conjunctions:)m gsave
3404 1983 12344 translate
3410 2547 12344 translate
3415 1440 11864 translate
3421 240 fnt83 0 -52(condition)m
3432 240 fnt83 0 -52(condition)m
3437 960 10598(is)m 1170(true)s 1597(if)s 1814(all)s
3438 2107(the)s 2455(listed)s 3030(conditions)s 4078(are)s 4425(true;)s
3440 5548 10652 translate
3444 5708(is)s 5918(used)s
3445 6415(it)s 6607(is)s 6817(true)s 7244(if)s 7461(an)s 3(y)k
3446 7858(of)s 8129(them)s 8667(is)s 960 10353(true.)m 1428(Ne)s 6(wlines)k
3447 2368(must)s 2885(be)s 3159(used)s 3648(to)s 3879(separate)s
3448 4709(one)s 5104(condition)s 6057(from)s 6573(the)s 6913(ne)s 3(xt,)k
3449 7421(as)s 7663(sho)s 6(wn,)k 8382(and)s 8778(the)s
3450 960 10113(parentheses)m 2126(are)s 2473(mandatory)s 15(.)k 3585(These)s
3451 4212(conjunctions)s 5486(do)s 5779(not)s 6145(do)s 6438(lazy)s
3452 6890(e)s 6(v)k 6(aluation.)k 480 9850(The)m 908(parameters)s
3456 240 fnt31 0 -52(service)m
3458 960 9370(The)m 1388(service)s
3459 2120(name)s 2694(speci\207ed)s 3602(when)s 4178(the)s 4526(client)s
3460 5116(w)s 2(as)k 5537(called.)s gsave
3463 240 fnt31 0 -52(calling\211user)m
3466 960 8890(T)m 19(w)k 2(o)k 1431(strings:)s 2174(the)s
3467 2522(login)s 3071(name)s 3645(of)s 3916(the)s 4264(calling)s
3468 4967(user)s 5425(\(determined)s 6637(as)s 6887(for)s gsave
3474 8226(,)s 8333(abo)s 3(v)k 3(e\))k
3475 960 8650(and)m 1364(the)s 1712(calling)s 2415(uid)s 2779(\(represented)s
3476 4017(in)s 4260(decimal\).)s gsave
3479 240 fnt31 0 -52(calling\211group)m
3481 960 8170(Se)m 6(v)k 3(eral)k
3482 1722(strings:)s 2465(the)s 2813(primary)s 3623(and)s 4027(supplementary)s
3483 5489(group)s 6101(names)s 6763(and)s 7167(gids)s 7617(\(in)s
3484 7939(decimal\))s 960 7930(of)m 1231(the)s 1579(calling)s 2282(process.)s
3485 3103(All)s 3463(the)s 3811(group)s 4423(names)s 5085(come)s
3486 5659(\207rst,)s 6137(and)s 6541(then)s 7010(the)s 7358(gids.)s
3487 7861(If)s 8091(the)s 8439(\207rst)s 960 7690(supplementary)m 2422(group)s
3488 3034(is)s 3244(the)s 3592(same)s 4139(as)s 4389(the)s
3489 4737(primary)s 5547(group)s 6159(then)s 6628(it)s 6820(is)s
3490 7030(elided.)s gsave
3493 240 fnt31 0 -52(calling\211user\211shell)m
3495 960 7210(The)m 1388(calling)s
3496 2091(user')s 13(s)k 2699(shell,)s 3257(as)s 3507(listed)s
3497 4082(in)s 4325(the)s 4673(passw)s 2(ord)k 5633(entry)s
3498 6178(for)s 6516(the)s 6864(calling)s 7567(login)s 8116(name)s
3499 8690(\(as)s 960 6970(determined)m 2093(for)s gsave
3502 240 fnt31 0 -52(USERV_USER)m
3505 3432(,)s 3539(abo)s 3(v)k 3(e\).)k gsave
3509 0 -52(service\211user)m
3511 960 6490(T)m 19(w)k 2(o)k 1431(strings:)s
3512 2174(the)s 2522(name)s 3096(of)s 3367(the)s 3715(service)s
3513 4447(user)s 4905(\(as)s 5234(speci\207ed)s 6142(to)s 6381(the)s
3514 6729(client\))s 7387(and)s 7791(their)s 8288(uid)s 960 6250(\(represented)m
3515 2198(in)s 2441(decimal\).)s gsave
3518 240 fnt31 0 -52(service\211group)m
3520 960 5770(Se)m 6(v)k 3(eral)k
3521 1722(strings:)s 2465(the)s 2813(primary)s 3623(and)s 4027(supplementary)s
3522 5489(group)s 6101(names)s 6763(and)s 7167(gids)s 7617(\(in)s
3523 7939(decimal\))s 8823(of)s 960 5530(the)m 1308(service)s 2040(user)s 13(.)k
3527 240 fnt31 0 -52(service\211user\211shell)m
3529 960 5050(The)m 1388(service)s 2120(user')s 13(s)k
3530 2728(shell,)s 3286(as)s 3536(listed)s 4111(in)s 4354(their)s
3531 4851(passw)s 2(ord)k 5811(entry)s 15(.)k gsave
3538 240 fnt83 0 -52(name)m
3542 960 4570(The)m 1388(v)s 6(alue)k
3543 1956(of)s 2227(the)s 2575(user)s 4(-de\207ned)k 3811(v)s 6(ariable)k
3544 240 fnt83 4630 4572(name)m 240 fnt82 5202 4570(passed)m 5898(by)s
3545 6192(the)s 6540(caller)s 7129(using)s 7701(the)s gsave
3549 0 -52(\211\211defvar)m
3551 960 4330(command-line)m 2397(option)s 3066(to)s 3305(the)s
3552 3653(client.)s 4287(If)s 4517(the)s 4865(v)s 6(ariable)k
3553 5684(w)s 2(as)k 6105(not)s 6471(de\207ned)s 7234(then)s
3554 7703(this)s 8099(parameter)s 960 4090(is)m 1170(an)s 1453(empty)s
3555 2105(list)s 2456(of)s 2727(strings;)s 3476(in)s 3719(this)s
3556 4115(case)s 4582(an)s 3(y)k 4979(condition)s 5940(which)s
3557 6582(tests)s 7057(it)s 7249(will)s 7675(be)s 7957(f)s 2(alse,)k
3561 240 fnt31 0 -52(include\211lookup)m
3563 2421 3850(on)m 2718(it)s
3564 2910(will)s 3336(read)s 3805(the)s gsave
3567 240 fnt31 0 -52(:none)m
3570 4713(\207le,)s 5125(or)s gsave
3573 240 fnt31 0 -52(:default)m
3579 240 fnt31 0 -52(:none)m
3581 7022(is)s 7232(not)s 7598(found.)s
3585 240 fnt31 0 -52(errors\211push)m
3587 240 fnt83 1281 3429(\207lename)m gsave
3593 240 fnt82 480 2947(Stacks)m 1155(the)s 1503(error)s
3594 2026(handling)s 2917(beha)s 4(viour)k 3930(currently)s 4846(in)s
3595 5089(ef)s 6(fect.)k 5729(An)s 3(y)k 6193(changes)s
3596 7015(to)s 7254(error)s 7777(handling)s 8668(will)s 480 2707(tak)m 2(e)k
3597 932(ef)s 6(fect)k 1528(only)s 2008(between)s gsave
3601 0 -52(errors\211push)m
3606 240 fnt31 0 -52(srorre)m
3612 240 fnt31 0 -52(catch\211quit)m
3617 240 fnt31 0 -52(hctac)m
3620 935(use)s 1301(of)s gsave
3623 240 fnt31 0 -52(quit)m
3629 240 fnt31 0 -52(catch\211quit)m
3631 3683(will)s 4100(merely)s 4807(cause)s
3632 5385(the)s 5724(parsing)s 6472(to)s 6701(continue)s 7572(at)s
3636 240 fnt31 0 -52(hctac)m
3638 8345(instead.)s 480 1593(An)m 3(y)k
3639 944(control)s 1676(constructs)s 2696(started)s 3390(since)s 3937(the)s
3643 240 fnt31 0 -52(catch\211quit)m
3645 5346(will)s 5772(be)s 6054(considered)s
3646 7148(\207nished)s 7964(if)s 8181(a)s gsave
3649 240 fnt31 0 -52(quit)m
3652 8807(is)s 480 1353(found.)m 1203(If)s 1433(an)s 1716(error)s
3653 2239(occurs)s 2914(inside)s gsave
3656 240 fnt31 0 -52(catch\211quit)m
3659 4950(e)s 3(x)k 3(ecution)k 5931(settings)s 6712(will)s
3660 7138(be)s 7420(reset)s 7930(\(as)s 8259(if)s 8476(by)s
3664 240 fnt31 0 -52(reset)m
3666 1040 1113(directi)m 6(v)k 3(e\))k
3667 1994(and)s 2398(parsing)s 3155(will)s 3581(lik)s 2(e)k 6(wise)k
3668 4425(continue)s 5305(at)s gsave
3671 240 fnt31 0 -52(hctac)m
3674 6201(If)s 6431(a)s 6597(le)s 3(xical)k 7285(or)s
3675 7544(syntax)s 8224(error)s 8747(is)s 480 873(detected)m 1334(in)s
3676 1577(the)s 1925(same)s 2472(con\207guration)s 3805(\207le)s 4166(as)s
3680 240 fnt31 0 -52(catch\211quit)m
3682 5765(,)s 5872(while)s
3683 6459(looking)s 7244(for)s 7582(the)s gsave
3686 240 fnt31 0 -52(hctac)m
3689 8490(after)s 0 52(User)m 511(service)s 1243(daemon)s 2058(and)s
3690 2462(client)s 3052(speci\207cation)s 8611(1.0.1)s
3700 %%PageResources: font Times-Roman
3702 %%+ font Courier-Bold
3703 %%+ font Times-Italic
3705 0.0500 dup scale 10 setlinewidth
3709 240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic
3724 1417 -15423 translate
3725 240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic
3729 240 fnt84 0 13842(14)m 240 fnt82 480 13254(an)m 763(error)s
3731 1545 13308 translate
3733 240 fnt31 0 -52(quit)m
3735 1945(,)s 2052(that)s
3736 2470(ne)s 6(w)k 2917(error)s 3440(will)s 3866(not)s
3737 4232(be)s 4514(caught.)s 300 fnt84 0 12587(4.2.4.)m 813(Dir)s 5(ecti)k 3(v)k 3(es)k
3738 2148(f)s 7(or)k 2595(changing)s 3829(execution)s 5112(settings)s
3739 240 fnt82 0 12016(The)m 419(follo)s 6(wing)k 1386(directi)s 6(v)k 3(es)k
3740 2346(modify)s 3082(the)s 3420(e)s 3(x)k 3(ecution)k
3741 4391(settings;)s 5223(the)s 5562(serv)s 3(er)k 6192(will)s
3742 6608(remember)s 7627(the)s 7965(f)s 2(act)k 8370(that)s
3743 8778(the)s 0 11775(directi)m 6(v)k 3(e)k 881(w)s 2(as)k
3744 1300(encountered)s 2525(and)s 2927(act)s 3263(on)s 3559(it)s
3745 3749(only)s 4227(after)s 4721(all)s 5012(the)s 5359(con\207guration)s
3746 6690(has)s 7058(been)s 7565(parsed.)s 8291(The)s 240 fnt83
3747 8717 11777(last)m 240 fnt82 0 11535(directi)m 6(v)k 3(e)k
3748 882(which)s 1524(modi\207es)s 2399(an)s 3(y)k 2796(particuar)s
3749 3704(setting)s 4394(will)s 4820(tak)s 2(e)k 5272(ef)s 6(fect.)k
3753 240 fnt31 0 -52(reject)m
3755 480 10887(Reject)m 1150(the)s 1498(request.)s
3757 2292 10941 translate
3759 240 fnt31 0 -52(execute)m
3762 3099 10941 translate
3764 240 fnt31 0 -52(execute\211from\211directory)m
3768 5765 10941 translate
3770 240 fnt31 0 -52(execute\211from\211path)m
3772 7527(will)s 7953(change)s
3773 480 10647(this)m 876(setting.)s gsave
3776 240 fnt31 0 -52(execute)m gsave
3780 0 -52(pr)m 10(o)k 2(gr)k 3(am)k
3786 240 fnt83 0 -52(ar)m 8(gument)k
3790 480 10013(Ex)m 3(ecute)k
3791 1300(the)s 1645(program)s 240 fnt83 2512 10015(pr)m 10(o)k 2(gr)k 3(am)k
3792 240 fnt82 3332 10013(,)m 3436(with)s 3915(the)s 4259(ar)s 4(guments)k
3793 5299(as)s 5546(speci\207ed,)s 6500(follo)s 6(wed)k 7399(by)s
3794 7690(an)s 3(y)k 8083(ar)s 4(guments)k 480 9773(gi)m 6(v)k 3(en)k
3795 1052(to)s 1282(the)s 1621(client)s 2203(if)s gsave
3799 0 -52(no\211suppress\211args)m
3801 4064(is)s 4266(in)s 4500(ef)s 6(fect.)k
3802 5131(It)s 5328(is)s 5529(an)s 5803(error)s 6318(for)s
3803 6647(the)s 6986(e)s 3(x)k 3(ecution)k 7959(to)s
3804 8189(f)s 2(ail)k 8550(when)s 480 9533(it)m 672(is)s
3805 882(attempted)s 1882(\(after)s 2457(all)s 2750(the)s 3098(con\207guration)s
3806 4431(has)s 4801(been)s 5310(parsed\).)s 6117(If)s 240 fnt83
3807 6347 9535(pr)m 10(o)k 2(gr)k 3(am)k 240 fnt82
3808 7227 9533(does)m 7717(not)s 8083(contain)s 8844(a)s 480 9293(slash)m
3809 1015(it)s 1207(will)s 1633(be)s 1915(searched)s 2809(for)s
3810 3147(on)s 3444(the)s 3792(service)s 4524(user')s 13(s)k
3814 240 fnt31 0 -52(execute\211from\211directory)m gsave
3817 240 fnt83 0 -52(pathname)m
3823 240 fnt83 0 -52(ar)m 8(gument)k
3828 480 8659(T)m 19(ak)k 2(e)k 993(all)s 1286(the)s
3829 1634(characters)s 2652(after)s 3148(the)s 3496(last)s 3887(slash)s
3830 4422(of)s 4693(the)s 5041(service)s 5773(name)s 6347(speci\207ed)s
3831 7255(when)s 7831(the)s 8179(client)s 480 8418(w)m 2(as)k
3832 901(called,)s 1578(and)s 1982(e)s 3(x)k 3(ecute)k
3833 2762(that)s 3180(program)s 4050(in)s 4293(the)s 4641(directory)s
3834 5557(named)s 6253(by)s 240 fnt83 6547 8420(pathname)m 240 fnt82
3835 7545 8418(as)m 7795(if)s 8012(it)s 8204(had)s 8608(been)s
3836 480 8178(speci\207ed)m 1388(for)s 240 fnt83 1726 8180(e)m 4(xecute)k
3837 240 fnt82 2431 8178(.)m 2535(The)s 2963(part)s 3394(of)s
3838 3665(the)s 4013(service)s 4745(name)s 5319(used)s 5816(may)s
3839 6282(contain)s 7043(only)s 7523(alphanumerics)s 480 7938(and)m 884(h)s 1(yphens)k
3840 1732(and)s 2136(must)s 2660(start)s 3130(with)s 3611(an)s
3841 3894(alphanumeric)s 5247(\(and)s 5730(it)s 5921(must)s 6446(be)s
3842 6727(non-empty\),)s 7950(otherwise)s 8934(it)s 480 7698(is)m 690(an)s
3843 973(error)s 13(.)k 1587(This)s 2063(directi)s 6(v)k 3(e)k
3844 2945(is)s 3155(ignored)s 3944(if)s 4161(the)s 4509(rele)s 6(v)k 6(ant)k
3845 5326(program)s 6196(does)s 6686(not)s 7052(e)s 3(xist)k
3846 7560(in)s 7803(the)s 8151(directory)s 480 7458(speci\207ed;)m 1437(in)s
3847 1675(this)s 2066(case)s 2528(the)s 2871(program)s 3735(to)s
3848 3969(e)s 3(x)k 3(ecute)k 4744(is)s 4949(left)s
3849 5321(at)s 5548(its)s 5818(pre)s 6(vious)k 6682(setting)s
3850 7367(\(or)s 7700(unset,)s 8307(if)s 8519(it)s 8705(w)s 2(as)k
3851 480 7218(not)m 846(set)s 1171(before\).)s 2024(It)s 2229(is)s
3852 2439(an)s 2722(error)s 3245(for)s 3583(the)s 3931(test)s
3853 4322(for)s 4660(the)s 5008(e)s 3(xistence)k 5950(of)s
3854 6221(the)s 6569(program)s 7439(to)s 7678(f)s 2(ail)k
3855 8048(other)s 8599(than)s 480 6978(with)m 958(a)s 1120(`no)s
3856 1488(such)s 1980(\207le)s 2336(or)s 2591(directory')s 3561(indication.)s
3857 4617(It)s 4818(is)s 5023(also)s 5457(an)s 5736(error)s
3858 6255(for)s 6589(the)s 6932(e)s 3(x)k 3(ecution)k
3859 7909(to)s 8144(f)s 2(ail)k 8510(if)s 8722(and)s
3860 480 6738(when)m 1056(it)s 1248(is)s 1458(attempted)s 2458(\(after)s
3861 3033(all)s 3326(the)s 3674(con\207guration)s 5007(has)s 5377(been)s
3862 5886(parsed\).)s gsave
3865 240 fnt31 0 -52(execute\211from\211path)m
3867 240 fnt83 480 6106(service)m
3868 240 fnt82 1202 6104(is)m 1404(interpreted)s 2488(as)s 2731(a)s
3869 2889(program)s 3751(on)s 4041(the)s 4381(def)s 2(ault)k
3873 240 fnt31 0 -52(PATH)m
3875 5546(\(or)s 5877(as)s 6119(a)s
3876 6277(pathname)s 7256(of)s 7519(an)s 7794(e)s 3(x)k 3(ecutable,)k
3877 8909(if)s 480 5863(it)m 660(contains)s 1495(a)s gsave
3883 1749(\).)s 1919(This)s 2383(directi)s 6(v)k 3(e)k
3884 3252(is)s 240 fnt83 3450 5865(very)m 3904(dang)s 2(er)k 10(ous)k
3885 240 fnt82 4899 5863(,)m 4994(and)s 5385(is)s 5583(only)s
3886 6050(pro)s 3(vided)k 6944(to)s 7170(mak)s 2(e)k
3890 240 fnt31 0 -52(\211\211override)m
3892 480 5623(options)m 1230(ef)s 6(fecti)k 6(v)k 3(e.)k
3893 2146(It)s 2344(should)s 3034(not)s 3393(normally)s 4304(be)s
3894 4579(used.)s 5115(It)s 5313(is)s 5516(an)s 5792(error)s
3895 6309(for)s 6640(the)s 6981(e)s 3(x)k 3(ecution)k
3896 7955(to)s 8187(f)s 2(ail)k 8550(when)s 480 5383(it)m
3897 672(is)s 882(attempted)s 1882(\(after)s 2457(all)s 2750(the)s
3898 3098(con\207guration)s 4431(has)s 4801(been)s 5310(parsed\).)s gsave
3902 0 -52(execute\211builtin)m gsave
3905 240 fnt83 0 -52(service\211name)m
3910 240 fnt83 0 -52(service\211ar)m 8(guments)k
3915 480 4749(Ex)m 3(ecutes)k 1388(the)s 1732(b)s 4(uiltin)k
3916 2405(service)s 240 fnt83 3133 4751(service-name)m 240 fnt82 4400 4749(.)m
3917 4500(These)s 5123(b)s 4(uiltin)k 5796(services)s 6612(display)s
3918 7353(information)s 8534(about)s 480 4509(the)m 822(serv)s 3(er)k
3919 1455(and/or)s 2120(the)s 2461(request,)s 3252(and)s 3649(ignore)s
3920 4310(an)s 3(y)k 4700(ar)s 4(guments)k 5737(passed)s
3921 6426(from)s 6944(the)s 7285(service)s 8011(side)s 8445(e)s 3(xcept)k
3922 480 4269(possibly)m 1320(to)s 1547(print)s 2046(them)s 2572(as)s
3923 2810(part)s 3228(of)s 3487(their)s 3972(output.)s 4676(The)s 3(y)k
3924 5207(write)s 5740(their)s 6225(results)s 6887(to)s 7114(their)s
3925 7599(standard)s 8454(output)s 480 4029(\(i.e.,)m 958(where)s 6(v)k 3(er)k
3926 1898(\207le)s 2259(descriptor)s 3274(1)s 3429(is)s 3639(directed\).)s
3927 4591(The)s 5019(b)s 4(uiltin)k 5696(services)s 6516(are:)s
3931 240 fnt31 0 -52(execute)m
3933 960 3549(Displays)m 1848(the)s 2196(e)s 3(x)k 3(ecution)k
3934 3177(settings,)s 4014(de\207ned)s 4777(v)s 6(ariables,)k 5740(ar)s 4(guments,)k
3935 6839(etc.)s 7221(with)s 7703(which)s 8345(the)s 960 3309(b)m 4(uiltin)k
3936 1637(service)s 2369(w)s 2(as)k 2790(in)s 9(v)k 4(ok)k 2(ed.)k
3940 240 fnt31 0 -52(environment)m
3942 960 2829(Dis)m 1283(plays)s 1839(the)s
3943 2187(en)s 2410(vi)s 2590(ron)s 2906(ment)s 3444(v)s 6(ari)k
3944 3803(able)s 4257(set)s 4522(tings)s 5038(with)s 5520(which)s
3945 6162(the)s 6510(b)s 4(uiltin)k 7187(ser)s 7465(vice)s
3946 7919(w)s 2(as)k 960 2589(in)m 1143(v)s 4(ok)k 2(ed.)k
3950 240 fnt31 0 -52(parameter)m gsave
3953 240 fnt83 0 -52(par)m 3(ameter)k
3958 960 2109(Displays)m 1848(the)s 2196(v)s 6(alues)k 2852(of)s
3959 3123(the)s 3471(service)s 4203(con\207guration)s 5536(language)s 6456(parameter)s
3960 7470(speci\207ed.)s gsave
3963 240 fnt31 0 -52(version)m
3965 960 1629(Displays)m 1848(the)s
3966 2196(v)s 3(ersion)k 2954(string)s 3551(and)s 3955(compilation)s
3967 5154(details)s 5828(of)s 6099(the)s 6447(uservd)s 7143(serv)s 3(er)k
3968 7783(program.)s gsave
3971 240 fnt31 0 -52(reset)m
3973 960 1149(Dis)m 1283(plays)s
3974 1838(the)s 2184(de)s 2406(f)s 2(ault)k 2899(re)s
3975 3080(set)s 3403(con)s 3746(\207g)s 3992(u)s 4107(ra)s
3976 4292(tion)s 4719(\(e)s 6(v)k 6(al)k 5179(u)s
3977 5294(at)s 5466(ed)s 5748(when)s gsave
3980 240 fnt31 0 -52(reset)m
3983 6881(is)s 7089(found)s 7704(in)s 7945(a)s 8109(con)s
3984 8452(\207g)s 8698(u)s 8813(ra)s 8998(-)s 960 909(tion)m
3985 1389(\207le,)s 1801(or)s 2060(when)s 2636(an)s 2919(er)s
3986 3104(ror)s 3442(is)s 3652(caught)s 4350(by)s gsave
3990 0 -52(catch\211quit)m
3992 5645(\).)s 0 52(1.0.1)m 4809(User)s 5320(service)s
3993 6052(daemon)s 6867(and)s 7271(client)s 7861(speci\207cation)s
4003 %%PageResources: font Times-Roman
4005 %%+ font Courier-Bold
4006 %%+ font Times-Italic
4008 0.0500 dup scale 10 setlinewidth
4012 240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic
4027 1417 -15423 translate
4028 240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic
4032 240 fnt84 8833 13842(15)m gsave
4035 240 fnt31 0 -52(toplevel)m
4038 960 13024(Displays)m 1848(the)s 2196(top-le)s 6(v)k 3(el)k
4039 3091(def)s 2(ault)k 3812(con\207guration)s 5145(\(the)s 5572(con\207guration)s
4040 6905(data,)s 7410(e)s 6(v)k 6(aluated)k 8372(by)s
4041 8666(the)s 960 12784(serv)m 3(er)k 9(,)k 1638(which)s
4042 2280(calls)s 2768(all)s 3061(the)s 3409(other)s 3960(con\207guration)s
4043 5293(\207les\).)s gsave
4046 240 fnt31 0 -52(override)m
4048 960 12304(Displays)m 1847(the)s
4049 2194(top-le)s 6(v)k 3(el)k 3088(o)s 3(v)k 3(erride)k
4050 3932(con\207guration)s 5264(\(the)s 5690(con\207guration)s 7021(data,)s 7525(e)s 6(v)k 6(aluated)k
4051 8486(by)s 8778(the)s 960 12064(serv)m 3(er)k 9(,)k
4052 1638(which)s 2280(causes)s 2955(all)s 3248(the)s 3596(other)s
4053 4147(con\207guration)s 5480(data)s 5938(to)s 6177(be)s 6459(parsed\).)s
4057 240 fnt31 0 -52(help)m
4059 960 11584(Displays)m 1848(a)s 2014(list)s
4060 2365(of)s 2636(the)s 2984(understood)s 4106(b)s 4(uiltin)k
4061 4783(service)s 5515(names)s 6177(and)s 6581(ar)s 4(guments.)k
4062 480 11321(In)m 736(the)s 1084(fu)s 1278(ture)s 1705(oth)s
4063 2008(er)s 2253(b)s 4(uiltin)k 2930(ser)s 3208(vices)s
4064 3750(may)s 4216(be)s 4498(de)s 4720(\207ned)s 5257(which)s
4065 5899(do)s 6192(more)s 6739(than)s 7208(just)s 7613(print)s
4066 8124(in)s 8307(for)s 8585(-)s 480 11081(ma)m 772(tion.)s
4070 240 fnt31 0 -52(set\211environment)m
4075 240 fnt31 0 -52(no\211set\211environment)m
4079 1024 10311 translate
4081 240 fnt31 0 -52(/etc/environment)m
4083 2686(to)s 2925(set)s 3250(the)s
4084 3598(service)s 4330(user')s 13(s)k 4938(en)s 9(vironment.)k
4085 6242(This)s 6718(adds)s 7208(the)s 7556(o)s 3(v)k 3(erhead)k
4086 8485(of)s 480 10017(in)m 9(v)k 4(oking)k 1372(a)s
4087 1538(shell,)s 2096(b)s 4(ut)k 2458(doesn')s 4(t)k
4088 3218(cause)s 3805(an)s 3(y)k 4202(shell)s 4708(\(de\)mangling)s
4089 6049(of)s 6320(the)s 6668(service')s 13(s)k 7554(ar)s 4(guments.)k
4090 8650(This)s 480 9777(is)m 690(achie)s 6(v)k 3(ed)k
4091 1589(by)s 1883(in)s 9(v)k 4(oking)k gsave
4095 0 -52(.../program)m 1728(arg)s 2304(arg)s 2880(arg)s 3456(\202)s
4101 240 fnt31 0 -52(/bin/sh)m 1152(\211c)s 1584('.)s
4102 2016(/etc/environment;)s 4608(exec)s 5328("$@"')s 6192(\211)s 6480(.../program)s
4103 8208(arg)s 8784(arg)s 9360(arg)s 9936(\202)s
4109 0 -52(no\211set\211environment)m
4111 2342 8862(cancels)m 3096(the)s 3444(ef)s 6(fect)k
4115 240 fnt31 0 -52(set\211environment)m
4121 0 -52(no\211suppress\211args)m
4126 240 fnt31 0 -52(suppress\211args)m
4128 480 8038(Include)m 1253(an)s 3(y)k
4129 1650(ar)s 4(guments)k 2693(gi)s 6(v)k 3(en)k
4130 3273(to)s 3512(the)s 3860(client)s 4450(as)s 4700(ar)s 4(guments)k
4131 5743(to)s 5982(the)s 6330(program)s 7200(in)s 9(v)k 4(ok)k 2(ed)k
4132 8015(as)s 8265(a)s 8431(result)s 480 7798(of)m 749(an)s
4136 240 fnt31 0 -52(execute)m
4141 240 fnt31 0 -52(execute\211from\211directory)m
4147 240 fnt31 0 -52(execute\211from\211path)m
4149 6110(directi)s 6(v)k 3(e.)k
4153 240 fnt31 0 -52(suppress\211args)m
4155 8396(undoes)s 480 7558(the)m 828(ef)s 6(fect)k
4159 240 fnt31 0 -52(no\211suppress\211args)m
4165 0 -52(require\211fd)m gsave
4168 240 fnt83 0 -52(fd\211r)m 3(ang)k 2(e)k
4173 480 6938(In)m 676(sist)s 1054(that)s 1472(the)s
4174 1820(\207ledescrip)s 2808(tor\(s\))s 3373(be)s 3655(opened)s 4405(for)s
4175 4743(read)s 5152(ing)s 5511(resp.)s 6013(writ)s 6397(ing.)s
4176 6807(It)s 7012(is)s 7222(an)s 7505(er)s 7690(ror)s
4177 8028(if)s 8245(an)s 3(y)k 8642(de)s 8864(-)s
4178 480 6698(scrip)m 937(tor)s 1258(mark)s 2(ed)k 2027(as)s
4179 2272(re)s 2453(quired)s 3118(when)s 3689(the)s 4033(ser)s
4180 4311(vice)s 4760(is)s 4966(about)s 5554(to)s 5788(be)s
4181 6066(in)s 6249(v)s 4(ok)k 2(ed)k 6882(\(af)s
4182 7158(ter)s 7465(the)s 7808(con)s 8151(\207g)s 8397(u)s
4183 8512(ra)s 8697(tion)s 480 6458(has)m 850(been)s 1359(parsed\))s
4184 2111(w)s 2(as)k 2532(not)s 2898(spec)s 3316(i)s
4185 3376(\207ed)s 3793(when)s 4369(the)s 4717(client)s 5307(w)s 2(as)k
4186 5728(in)s 5911(v)s 4(ok)k 2(ed.)k 6595(Each)s
4187 7130(\207le)s 7491(de)s 7713(scrip)s 8170(tor)s 8495(has)s
4188 480 6218(a)m 646(sep)s 958(a)s 1064(rate)s 1477(set)s
4189 1742(ting,)s 2221(and)s 2625(the)s 2973(last)s 3364(one)s
4193 240 fnt31 0 -52(require\211fd)m
4204 240 fnt31 0 -52(ignore\211fd)m
4210 240 fnt31 0 -52(null\211fd)m
4215 240 fnt31 0 -52(reject\211fd)m
4218 480 5977(which)m 1122(af)s 1319(fect)s 1676(ed)s 1960(a)s
4219 2126(par)s 2431(tic)s 2662(u)s 2777(lar)s 3088(\207le)s
4220 3449(de)s 3671(scrip)s 4128(tor)s 4453(will)s 4879(tak)s 2(e)k
4221 5331(ef)s 5528(fect.)s 240 fnt83 6049 5979(fd-)m 6302(r)s 3(ang)k 2(e)k
4222 240 fnt82 6909 5977(may)m 7375(be)s 7657(a)s 7823(sin)s
4223 8099(gle)s 8447(num)s 8873(-)s 480 5737(ber)m 9(,)k
4224 883(tw)s 2(o)k 1293(num)s 1719(bers)s 2168(sep)s
4225 2480(a)s 2586(rat)s 2837(ed)s 3121(by)s 3415(a)s
4226 3581(h)s 1(y)k 3814(phen,)s 4387(or)s 4646(one)s
4227 5048(num)s 5474(ber)s 5839(fol)s 6099(lo)s 6(wed)k
4228 6736(by)s 7030(a)s 7196(h)s 1(y)k 7429(phen)s
4229 7952(\(in)s 8214(di)s 8394(cat)s 8672(ing)s 480 5497(all)m
4230 772(de)s 994(scrip)s 1451(tors)s 1858(from)s 2380(that)s
4231 2796(num)s 3222(ber)s 3585(on)s 3822(w)s 2(ards\).)k
4232 4573(It)s 4776(may)s 5240(also)s 5676(be)s 5956(one)s
4233 6357(of)s 6626(the)s 6972(w)s 2(ords)k gsave
4242 240 fnt31 0 -52(stdout)m
4248 240 fnt31 0 -52(stderr)m
4250 1080 5257(.)m 1174(Open-)s 1761(ended)s
4251 2380(\207le)s 2730(de)s 2952(scrip)s 3409(tor)s 3723(rangers)s
4252 4466(are)s 4802(al)s 4969(lo)s 6(wed)k 5596(only)s
4256 240 fnt31 0 -52(reject\211fd)m
4262 0 -52(ignore\211fd)m
4264 8780(,)s 8876(as)s 480 5017(oth)m 783(er)s
4265 968(wise)s 1457(the)s 1799(ser)s 2077(vice)s 2526(pro)s
4266 2838(gram)s 3383(w)s 2(ould)k 4033(\207nd)s 4458(it)s
4267 4590(self)s 5001(with)s 5477(a)s 5638(v)s 3(ery)k
4268 6108(lar)s 4(ge)k 6632(num)s 7058(ber)s 7417(of)s
4269 7683(\207le)s 8038(de)s 8260(scrip)s 8717(tors)s 480 4777(open.)m
4270 1090(When)s 1699(the)s 2027(con)s 2370(\207g)s 2616(u)s
4271 2731(ra)s 2916(tion)s 3325(has)s 3674(been)s 4163(parsed,)s
4272 4874(and)s 5258(be)s 5480(fore)s 5900(the)s 6227(ser)s
4273 6505(vice)s 6939(is)s 7129(about)s 7701(to)s 7920(be)s
4274 8181(e)s 3(x)k 8399(e)s 8501(cut)s 8793(ed,)s
4275 480 4537(stderr)m 1083(\(fd)s 1418(2\))s 1665(must)s 2189(be)s
4276 2470(re)s 2651(quired)s 3320(or)s 3578(al)s 3745(lo)s 6(wed)k
4280 240 fnt31 0 -52(require\211fd)m
4288 6573(\))s 6701(for)s 7038(writ)s 7422(ing;)s
4289 7839(this)s 8234(is)s 8443(so)s 8708(that)s 480 4297(the)m
4290 825(er)s 1010(ror)s 1345(mes)s 1721(sage)s 2198(print)s
4291 2649(ed)s 2930(by)s 3220(the)s 3565(serv)s 3958(er')s 13(s)k
4292 4350(child)s 4882(pro)s 5194(cess)s 5640(if)s 5853(it)s
4293 6042(can)s 6371(not)s gsave
4296 240 fnt31 0 -52(exec)m
4299 7535(ser)s 7813(vice)s 8263(pro)s 8575(gram)s 480 4057(is)m
4300 690(not)s 1056(lost.)s gsave
4303 240 fnt31 0 -52(allow\211fd)m gsave
4307 0 -52(fd\211r)m 3(ang)k 2(e)k
4311 480 3468(Allo)m 6(w)k
4312 1126(the)s 1474(descriptor\(s\))s 2729(to)s 2968(be)s 3250(opened)s
4313 4000(for)s 4338(reading)s 5108(resp.)s 5610(writing,)s 6407(or)s
4314 6666(either)s 7269(if)s 7486(neither)s gsave
4317 240 fnt31 0 -52(read)m
4323 240 fnt31 0 -52(write)m
4325 1040 3228(is)m 1250(speci\207ed.)s
4326 2204(If)s 2434(a)s 2600(particular)s 3574(descriptor)s 4589(not)s
4327 4955(speci\207ed)s 5863(by)s 6157(the)s 6505(client)s 7095(then)s
4328 7564(it)s 7756(will)s 8182(be)s 8464(open)s 480 2988(onto)m
4332 240 fnt31 0 -52(/dev/null)m
4334 1920(\(for)s 2337(reading,)s 3161(writing,)s
4335 3958(or)s 4217(both,)s 4750(depending)s 5801(on)s 6098(whether)s
4339 240 fnt31 0 -52(read)m
4344 240 fnt31 0 -52(write)m
4347 7995(or)s 8254(neither)s 480 2748(w)m 2(as)k 901(speci\207ed\).)s
4351 240 fnt31 0 -52(null\211fd)m gsave
4354 240 fnt83 0 -52(fd\211r)m 3(ang)k 2(e)k
4359 480 2109(Spec)m 938(i)s 998(fy)s 1251(that)s
4360 1669(the)s 2017(de)s 2239(scrip)s 2696(tor\(s\))s 3261(be)s
4361 3543(opened)s 4293(onto)s gsave
4364 240 fnt31 0 -52(/dev/null)m
4367 6071(read)s 6480(ing)s 6839(resp.)s 7341(writ)s 7725(ing,)s
4368 8138(or)s 8397(both)s 8880(if)s 480 1869(nei)m 766(ther)s
4372 240 fnt31 0 -52(read)m
4377 240 fnt31 0 -52(write)m
4380 2529(is)s 2722(spec)s 3140(i)s 3200(\207ed.)s 3646(An)s 3(y)k
4381 4093(spec)s 4511(i)s 4571(\207)s 4696(ca)s 4908(tion)s
4382 5320(of)s 5574(these)s 6104(\207le)s 6448(de)s 6670(scrip)s
4383 7127(tors)s 7519(by)s 7796(the)s 8127(client)s 8700(will)s
4384 480 1629(be)m 762(silent)s 1279(ly)s 1519(ig)s 1698(nored;)s
4385 2355(the)s 2703(client)s 3293(will)s 3719(see)s 4080(its)s
4386 4356(ends)s 4846(of)s 5117(the)s 5465(de)s 5687(scrip)s
4387 6144(tors)s 6553(be)s 6775(ing)s 7134(closed)s 7803(im)s
4388 8055(me)s 8343(di)s 8523(ate)s 8797(ly)s 15(.)k
4392 240 fnt31 0 -52(reject\211fd)m gsave
4395 240 fnt83 0 -52(fd\211r)m 3(ang)k 2(e)k
4400 480 995(Do)m 824(not)s 1187(allo)s 6(w)k 1764(the)s
4401 2109(descriptor\(s\))s 3362(to)s 3598(be)s 3878(speci\207ed)s 4783(by)s
4402 5075(the)s 5420(client.)s 6052(It)s 6254(is)s 6462(an)s
4403 6742(error)s 7263(if)s 7477(an)s 3(y)k 7871(descriptor\(s\))s
4404 480 755(mark)m 2(ed)k 1253(for)s 1591(rejection)s 2483(are)s
4405 2830(speci\207ed)s 3738(when)s 4314(the)s 4662(service)s 5394(is)s
4406 5604(about)s 6196(to)s 6435(be)s 6717(in)s 9(v)k 4(ok)k 2(ed)k
4407 7532(\(after)s 8107(the)s 0 52(User)m 511(service)s 1243(daemon)s
4408 2058(and)s 2462(client)s 3052(speci\207cation)s 8611(1.0.1)s
4418 %%PageResources: font Times-Roman
4420 %%+ font Courier-Bold
4421 %%+ font Times-Italic
4423 0.0500 dup scale 10 setlinewidth
4427 240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic
4442 1417 -15423 translate
4443 240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic
4447 240 fnt84 0 13842(16)m 240 fnt82 480 13251(con\207guration)m 1813(has)s
4448 2183(been)s 2692(parsed\).)s gsave
4451 240 fnt31 0 -52(ignore\211fd)m gsave
4455 0 -52(fd\211r)m 3(ang)k 2(e)k
4459 480 12617(Silent)m 1037(ly)s
4460 1260(ig)s 1439(nore)s 1902(an)s 3(y)k 2281(spec)s
4461 2699(i)s 2759(\207)s 2884(ca)s 3096(tion)s 3507(by)s
4462 3783(the)s 4113(client)s 4685(of)s 4938(those)s 5481(de)s
4463 5703(scrip)s 6160(tor\(s\).)s 6762(The)s 7172(pipes)s 7710(cor)s
4464 8015(re)s 8196(spond)s 8767(ing)s 480 12377(to)m 719(these)s
4465 1266(de)s 1488(scrip)s 1945(tors)s 2354(will)s 2780(be)s
4466 3062(closed)s 3731(just)s 4136(be)s 4358(fore)s 4798(the)s
4467 5146(ser)s 5424(vice)s 5878(is)s 6088(in)s 6271(v)s 4(ok)k 2(ed.)k
4471 240 fnt31 0 -52(disconnect\211hup)m
4476 240 fnt31 0 -52(no\211disconnect\211hup)m
4479 950(es)s 1200(the)s 1548(ser)s 1826(vice')s 13(s)k
4480 2434(pro)s 2746(cess)s 3195(group)s 3807(to)s 4046(get)s
4482 4564 11557 translate
4484 240 fnt31 0 -52(SIGHUP)m
4486 5224(if)s 5441(the)s
4487 5789(client)s 6379(dis)s 6649(con)s 6992(nects)s 7534(be)s
4488 7756(fore)s 8196(the)s 8544(main)s 480 11263(ser)m 758(vice)s
4489 1209(pro)s 1521(cess)s 1966(ter)s 2217(mi)s 2463(nates.)s
4491 3055 11317 translate
4493 240 fnt31 0 -52(no\211disconnect\211hup)m
4495 4813(can)s 5142(cels)s gsave
4496 5560 11317 translate
4499 0 -52(disconnect\211hup)m
4501 6961(.)s 7122(If)s 7348(one)s 7747(of)s
4502 8014(the)s 8358(read)s 8767(ing)s 480 11023(de)m 702(scrip)s
4503 1159(tors)s 1568(spec)s 1986(i)s 2046(\207ed)s 2463(when)s
4504 3039(the)s 3387(client)s 3977(is)s 4187(called)s 4815(gets)s
4505 5251(a)s 5417(read)s 5886(er)s 6071(ror)s 9(,)k
4506 6447(or)s 6706(if)s 6923(the)s 7271(ser)s 7549(vice)s
4507 8003(is)s 8213(dis)s 8483(con)s 8826(-)s 480 10782(nect)m
4508 878(ed)s 1162(for)s 1500(some)s 2061(oth)s 2364(er)s
4509 2609(rea)s 2900(son,)s 3340(then)s 3809(the)s gsave
4510 4157 10836 translate
4515 4817(will)s 5243(be)s 5525(de)s 5747(li)s 6(v)k
4516 5988(ered)s 240 fnt83 6457 10784(be)m 6676(for)s 8(e)k
4517 240 fnt82 7106 10782(the)m 7454(writ)s 7838(ing)s 8197(end\(s\))s
4518 8843(of)s 480 10542(the)m 818(ser)s 1096(vice')s 13(s)k
4519 1694(read)s 2103(ing)s 2452(pipe\(s\))s 3154(are)s 3491(closed,)s
4520 4199(so)s 4455(that)s 4863(the)s 5201(client)s 5781(can)s
4521 6160(dis)s 6430(tin)s 6679(guish)s 7245(dis)s 7515(con)s
4522 7858(nec)s 8183(tion)s 8602(from)s 480 10302(read)m 889(ing)s
4523 1248(EOF)s 1758(on)s 2055(a)s 2221(pipe.)s gsave
4529 480 9668(Resets)m 1155(the)s 1503(e)s 3(x)k 3(ecution)k
4530 2484(settings)s 3265(to)s 3504(the)s 3852(def)s 2(ault.)k
4531 4617(This)s 5093(is)s 5303(equi)s 6(v)k 6(alent)k
4535 240 fnt31 0 -52(cd)m 432(~/)s 0 -292(reject)m
4536 0 -532(no\211set\211environment)m 0 -772(suppress\211args)m 0 -1012(allow\211fd)m 1296(0)s 1584(read)s
4537 0 -1252(allow\211fd)m 1296(1\2112)s 1872(write)s 0 -1492(reject\211fd)m 1440(3\211)s
4538 0 -1732(disconnect\211hup)m
4540 0 7505(If)m 230(no)s gsave
4543 240 fnt31 0 -52(execute)m
4549 240 fnt31 0 -52(execute\211from\211path)m
4555 0 -52(execute\211from\211directory)m
4560 240 fnt31 0 -52(builtin)m
4563 6630(interpreted)s 7722(before)s 8388(all)s 8681(the)s 0 7265(\207les)m
4564 449(are)s 796(read)s 1265(then)s 1734(the)s 2082(request)s
4565 2832(is)s 3042(rejected.)s 9066 670 0 670 240 240 60 0 6241 LoutGr2
4566 newpath 0 ysize 0.3 ft sub moveto
4572 320 fnt84 0 66(4.3.)m 628(Err)s 5(ors)k
4573 1618(in)s 1958(the)s 2458(con\207guration)s 4359(\207le)s
4576 230(a)s 396(syntax)s 1076(error)s 1599(or)s 1858(other)s
4577 2409(problem)s 3266(occurs)s 3941(when)s 4517(processing)s 5593(a)s
4578 5759(con\207guration)s 7092(\207le)s 7453(then)s 7922(a)s 8088(diagnostic)s
4579 0 5539(will)m 422(be)s 699(issued,)s 1399(to)s 1633(where)s 6(v)k 3(er)k
4580 2568(the)s 2911(error)s 3429(messages)s 4378(are)s 4721(currently)s
4581 5632(being)s 6212(sent)s 6652(\(see)s 7087(the)s gsave
4587 8185(f)s 2(amily)k 8855(of)s 0 5299(directi)m 6(v)k 3(es,)k
4588 1026(abo)s 3(v)k 3(e\).)k 0 4891(The)m 428(error)s
4589 951(will)s 1377(cause)s 1964(processing)s 3040(of)s 3311(the)s
4590 3659(con\207guration)s 4992(\207les)s 5441(to)s 5680(cease)s 6253(at)s
4591 6485(that)s 6903(point,)s 7502(unless)s 8151(the)s 8499(error)s
4592 0 4651(w)m 2(as)k 421(inside)s 1048(a)s gsave
4596 0 -52(catch\211quit)m
4598 2275(construct.)s 3255(In)s 3511(this)s 3907(case)s
4599 4374(the)s 4722(settings)s 5503(controlling)s 6605(the)s 6953(program')s 13(s)k
4600 7973(e)s 3(x)k 3(ecution)k 0 4411(will)m 426(be)s
4601 708(reset)s 1218(to)s 1457(the)s 1805(def)s 2(aults)k
4602 2610(as)s 2860(if)s 3077(a)s gsave
4605 240 fnt31 0 -52(reset)m
4608 3803(directi)s 6(v)k 3(e)k 4685(had)s 5089(been)s
4609 5598(issued,)s 6303(and)s 6707(parsing)s 7464(continues)s 8432(after)s
4613 240 fnt31 0 -52(hctac)m
4615 500 4171(.)m 9066 609 0 609 240 240 60 0 3208 LoutGr2
4616 newpath 0 ysize 0.3 ft sub moveto
4622 320 fnt84 0 5(4.4.)m
4625 0 2746(The)m 428(def)s 2(ault)k 1149(con\207guration)s
4626 2482(processing)s 3558(is)s 3768(as)s 4018(if)s 4235(the)s
4627 4583(daemon)s 5398(were)s 5918(parsing)s 6675(an)s 6958(o)s 3(v)k 3(erall)k
4628 7670(con\207guration)s 0 2506(\207le)m 361(whose)s 1029(contents)s 1877(were)s
4629 2397(as)s 2647(follo)s 6(ws:)k 0 52(1.0.1)m 4809(User)s
4630 5320(service)s 6052(daemon)s 6867(and)s 7271(client)s 7861(speci\207cation)s
4641 %%PageResources: font Times-Roman
4643 %%+ font Courier-Bold
4644 %%+ font Times-Italic
4646 0.0500 dup scale 10 setlinewidth
4650 240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic
4665 1417 -15423 translate
4666 240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic
4670 240 fnt84 8831 13842(17)m gsave
4673 240 fnt31 0 -52(reset)m 0 -292(user\211rcfile)m
4674 1728(~/.userv/rc)s 0 -532(errors\211to\211stderr)m 0 -772(include)m 1152(/etc/userv/system.default)s 0 -1012(if)m
4675 432(grep)s 1152(service\211user\211shell)s 3888(/etc/shells)s 432 -1252(errors\211push)m 720 -1492(catch\211quit)m
4676 1008 -1732(include\211ifexist)m gsave
4677 3312 -1680 translate
4679 240 fnt83 0 -52(\207le)m 345(speci\207ed)s 1248(by)s
4680 1530(most)s 2046(r)s 8(ecent)k 2699(user\211r)s 8(c\207le)k
4681 3767(dir)s 8(ective)k
4683 720 -1972(hctac)m 432 -2212(srorre)m 0 -2452(fi)m
4684 0 -2692(include)m 1152(/etc/userv/system.override)s 0 -2932(quit)m
4686 240 fnt82 0 9859(If)m
4687 226(one)s 624(of)s 891(the)s gsave
4690 240 fnt31 0 -52(\211\211override)m
4693 2292(options)s 3044(to)s 3279(the)s 3623(client)s 4209(is)s
4694 4415(used)s 4908(then)s 5373(it)s 5561(will)s 5983(instead)s
4695 6714(be)s 6992(as)s 7238(if)s 7451(the)s 7795(daemon)s
4696 8606(were)s 0 9619(parsing)m 757(an)s 1040(o)s 3(v)k 3(erall)k
4697 1752(con\207guration)s 3085(as)s 3335(follo)s 6(ws:)k gsave
4701 0 -52(reset)m 0 -292(errors\211to\211stderr)m 0 -532(include)m gsave
4704 240 fnt83 0 -52(\207le)m
4705 345(containing)s 1423(con\207gur)s 3(ation)k 2765(data)s 3246(sent)s
4706 3695(by)s 3977(client)s
4710 0 52(User)m 511(service)s
4711 1243(daemon)s 2058(and)s 2462(client)s 3052(speci\207cation)s 8611(1.0.1)s
4722 %%PageResources: font Times-Roman
4724 %%+ font Courier-Bold
4726 0.0500 dup scale 10 setlinewidth
4730 240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic
4745 1417 -15423 translate
4746 240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic
4750 240 fnt84 0 13842(18)m gsave
4752 240 fnt82 9066 688 0 688 240 240 60 LoutGraphic
4754 newpath 0 ysize 0.3 ft sub moveto
4760 340 fnt84 0 70(5.)m 412(Inf)s 8(ormation)k
4761 2257(passed)s 3297(thr)s 6(ough)k 4539(the)s 5070(client/daemon)s
4764 240 fnt82 0 12264(The)m 428(information)s 1613(described)s
4765 2587(belo)s 6(w)k 3220(is)s 3430(the)s 3778(only)s
4766 4258(information)s 5443(which)s 6085(passes)s 6747(between)s 7601(the)s
4767 7949(caller)s 8538(and)s 0 12024(the)m 348(service.)s 0 11616(\213)m
4768 480(The)s 908(service)s 1640(name)s 2214(supplied)s 3083(by)s
4769 3377(the)s 3725(caller)s 4314(is)s 4524(a)s 4(v)k 6(ailable)k
4770 5432(in)s 5675(the)s 6023(con\207guration)s 7356(language)s 8276(for)s
4771 480 11376(deciding)m 1343(whether)s 2158(and)s 2547(which)s 3175(service)s
4772 3892(program)s 4747(to)s 4971(in)s 9(v)k 4(ok)k 2(e,)k
4773 5701(in)s 5929(the)s gsave
4774 6262 11430 translate
4776 240 fnt31 0 -52(service)m
4778 7008(parameter)s 9(,)k
4779 8045(and)s 8434(is)s 8629(used)s 480 11136(by)m 774(the)s
4781 1122 11190 translate
4783 240 fnt31 0 -52(execute\211from\211directory)m
4786 3788 11190 translate
4788 240 fnt31 0 -52(execute\211from\211path)m
4791 5550(con\207guration)s 6883(directi)s 6(v)k 3(es.)k 7906(It)s
4792 8111(is)s 8321(usually)s 480 10896(used)m 977(to)s 1216(select)s
4793 1819(which)s 2461(service)s 3193(program)s 4063(to)s 4302(in)s 9(v)k 4(ok)k 2(e.)k
4794 5043(It)s 5248(is)s 5458(also)s 5896(passed)s 6592(to)s
4795 6831(the)s 7179(service)s 7911(program)s 8781(in)s 480 10656(the)m
4799 240 fnt31 0 -52(USERV_SERVICE)m
4801 2189(en)s 9(vironment)k 3449(v)s 6(ariable.)k
4802 0 10225(\213)m 480(File)s 902(descriptors)s 1995(speci\207ed)s 2897(by)s
4803 3185(the)s 3528(client)s 4112(and)s 4510(allo)s 6(wed)k
4804 5313(according)s 6304(to)s 6537(the)s 6879(con\207guration)s 8206(language)s
4805 480 9985(will)m 906(be)s 1188(connected.)s 2262(Each)s 2797(\207le)s
4806 3158(descriptor)s 4173(is)s 4383(opened)s 5133(for)s 5471(reading)s
4807 6241(or)s 6500(writing.)s 7294(Communication)s 8893(is)s 480 9745(via)m
4808 832(pipes,)s 1444(one)s 1846(end)s 2250(of)s 2521(each)s
4809 3016(pipe)s 3484(being)s 4069(open)s 4592(on)s 4889(the)s
4810 5237(appropriate)s 6381(\207le)s 6742(descriptor)s 7757(in)s 8000(the)s
4811 8348(service)s 480 9505(program)m 1347(\(when)s 1999(it)s 2188(is)s
4812 2394(in)s 9(v)k 4(ok)k 2(ed\))k 3276(and)s
4813 3677(the)s 4022(other)s 4569(end)s 4970(being)s 5552(held)s
4814 6019(by)s 6309(the)s 6654(client)s 7241(process,)s 8062(which)s
4815 8700(will)s 480 9265(read)m 942(and)s 1339(write)s 1878(\207les)s
4816 2320(it)s 2505(opens)s 3108(on)s 3398(behalf)s 4060(of)s
4817 4324(its)s 4593(caller)s 5175(or)s 5427(\207le)s 5781(descriptors)s
4818 6873(it)s 7058(is)s 7261(passed)s 7950(by)s 8237(its)s
4819 8506(caller)s 13(.)k 480 9025(Data)m 991(may)s 1457(be)s
4820 1739(passed)s 2435(into)s 2860(the)s 3208(service)s 3940(through)s
4821 4742(reading)s 5512(pipes)s 6068(and)s 6472(out)s 6838(of)s
4822 7109(it)s 7301(through)s 8103(writing)s 480 8785(pipes.)m 1083(These)s
4823 1703(pipes)s 2252(can)s 2634(remain)s 3347(open)s 3864(only)s
4824 4337(until)s 4823(the)s 5164(service)s 5889(and)s 6287(client)s
4825 6870(ha)s 4(v)k 3(e)k 7364(terminated,)s 8485(or)s
4826 8737(can)s 480 8545(be)m 762(made)s 1336(to)s 1575(stay)s
4827 2014(open)s 2537(after)s 3033(the)s 3381(client)s 3971(has)s
4828 4341(terminated)s 5420(and)s 5824(\(if)s 6120(the)s 6468(service)s
4829 7200(program)s 8070(forks\))s 8689(the)s 480 8305(main)m 998(service)s
4830 1712(process)s 2462(has)s 2814(e)s 3(xited;)k 3489(the)s
4831 3820(beha)s 4(viour)k 4815(is)s 5007(controlled)s 6016(by)s
4832 6292(options)s 7031(passed)s 7709(to)s 7930(the)s 8260(client)s
4833 8832(by)s 480 8065(its)m 751(caller)s 13(.)k 1426(The)s
4834 1848(caller)s 2432(can)s 2816(arrange)s 3582(that)s 3995(a)s
4835 4156(writing)s 4893(pipe)s 5356(be)s 5633(connected)s 6655(to)s
4836 6889(a)s 7050(pipe)s 7512(or)s 7766(similar)s 8482(object)s
4837 480 7825(and)m 884(cause)s 1471(attempts)s 2331(to)s 2570(write)s
4838 3116(to)s 3355(that)s 3773(descriptor)s 4788(by)s 5082(the)s
4839 5430(service)s 6162(to)s 6401(generate)s 7266(a)s gsave
4848 240 fnt31 0 -52(EPIPE)m
4854 240 fnt31 0 -52(SIGPIPE)m
4856 1431(is)s 1628(caught)s 2313(or)s
4857 2559(ignored\))s 3405(in)s 3635(the)s 3970(service.)s 4797(Lik)s 2(e)k 6(wise,)k
4858 5759(the)s 6094(service)s 6813(can)s 7189(close)s 7722(\207ledescriptors)s
4859 480 7345(speci\207ed)m 1373(for)s 1696(reading,)s 2505(which)s 3132(will)s
4860 3543(cause)s 4115(the)s 4448(corresponding)s 5855(\207ledescriptors)s 7244(passed)s
4861 7925(by)s 8204(the)s 8537(caller)s 480 7105(to)m 716(be)s
4862 995(closed,)s 1709(so)s 1972(that)s 2387(if)s 2600(these)s
4863 3144(are)s 3488(pipes)s 4040(processes)s 5004(which)s 5643(write)s
4864 6185(to)s 6421(them)s 6956(will)s 7378(recei)s 6(v)k 3(e)k
4868 240 fnt31 0 -52(SIGPIPE)m
4873 240 fnt31 0 -52(EPIPE)m
4876 980 6865(.)m 0 6460(\213)m 480(If)s gsave
4879 240 fnt31 0 -52(no\211suppress\211args)m
4882 2363(is)s 2568(set)s 2888(then)s 3353(ar)s 4(guments)k
4883 4391(passed)s 5082(to)s 5316(the)s 5660(client)s 6245(by)s
4884 6534(its)s 6805(caller)s 7390(will)s 7811(be)s 8088(passed)s
4885 8779(on,)s 480 6220(v)m 3(erbatim,)k 1433(to)s 1672(the)s
4886 2020(service.)s 0 5784(\213)m 480(F)s 3(a)k 716(tal)s
4887 1009(sig)s 1281(nals)s 1717(and)s 2121(sys)s 2418(tem)s
4888 2836(call)s 3235(f)s 2(ail)k 3545(ures)s 3994(e)s 3(x)k
4889 4212(pe)s 4434(ri)s 4573(enced)s 5189(by)s 5483(the)s
4890 5831(client)s 6421(will)s 6847(re)s 7028(sult)s 7433(in)s
4891 7676(the)s 8024(dis)s 8294(con)s 8637(nec)s 8962(-)s
4892 480 5544(tion)m 909(of)s 1180(the)s 1528(ser)s 1806(vice)s
4893 2260(from)s 2784(the)s 3132(client)s 3722(and)s 4126(pos)s
4894 4450(si)s 4603(bly)s 4963(some)s 5524(of)s 5795(the)s
4895 6143(com)s 6555(mu)s 6856(ni)s 7036(ca)s 7248(tion)s
4896 7677(\207le)s 8038(de)s 8260(scrip)s 8717(tors)s 480 5304(de)m
4897 702(scribed)s 1450(abo)s 3(v)k 3(e;)k 2128(if)s
4901 240 fnt31 0 -52(disconnect\211hup)m
4903 3806(is)s 4016(set)s 4341(then)s
4904 4810(the)s 5158(ser)s 5436(vice)s 5890(will)s 6316(also)s
4905 6754(be)s 7036(sent)s 7481(a)s gsave
4908 240 fnt31 0 -52(SIGHUP)m
4911 8247(.)s 0 4868(\213)m 480(The)s 908(v)s 6(alue)k
4912 1476(of)s 1747(the)s gsave
4915 240 fnt31 0 -52(LOGNAME)m
4921 240 fnt31 0 -52(USER)m
4923 3593(\))s 3721(en)s 9(vironment)k
4924 4981(v)s 6(ariable)k 5800(as)s 6050(passed)s 6746(to)s
4925 6985(the)s 7333(client)s 7923(will)s 8349(be)s 480 4628(used)m
4926 977(as)s 1227(the)s 1575(login)s 2124(name)s 2698(of)s
4927 2969(the)s 3317(calling)s 4020(user)s 4478(if)s 4695(the)s
4928 5043(uid)s 5407(of)s 5678(the)s 6026(calling)s 6729(process)s
4929 7497(matches)s 8331(the)s 8679(uid)s 480 4388(corresponding)m 1902(to)s
4930 2141(that)s 2559(login)s 3108(name.)s 3730(Otherwise)s 4768(the)s
4931 5116(calling)s 5819(uid')s 13(s)k 6335(passw)s 2(ord)k
4932 7295(entry)s 7840(will)s 8266(be)s 8548(used)s 480 4148(to)m
4933 708(determine)s 1708(the)s 2045(calling)s 2737(user')s 13(s)k
4934 3334(login)s 3872(name.)s 4543(This)s 5007(login)s 5545(name)s
4935 6108(and)s 6501(the)s 6838(calling)s 7530(uid)s 7883(are)s
4936 8218(a)s 4(v)k 6(ailable)k 480 3908(in)m 723(the)s
4937 1071(con\207guration)s 2404(language)s 3324(in)s 3567(the)s gsave
4941 0 -52(calling\211user)m
4943 5176(parameter)s 6190(and)s 6594(are)s 6941(passed)s
4944 7637(to)s 7876(the)s 8224(service)s 480 3668(program)m 1334(in)s
4945 1561(en)s 9(vironment)k 2805(v)s 6(ariables)k gsave
4954 240 fnt31 0 -52(USERV_UID)m
4957 6178(The)s 6590(shell)s 7080(corresponding)s 8486(to)s 8708(that)s
4958 480 3428(login)m 1023(name)s 1591(\(according)s 2659(to)s 2892(the)s
4959 3233(passw)s 2(ord)k 4187(entry\))s 4799(is)s 5003(a)s 4(v)k 6(ailable)k
4960 5904(as)s 6148(in)s 6384(the)s 6726(con\207guration)s 8052(language')s 13(s)k
4964 240 fnt31 0 -52(calling\211user\211shell)m
4966 2342 3188(parameter)m 13(.)k 3447(If)s
4967 3677(no)s 3970(rele)s 6(v)k 6(ant)k 4787(passw)s 2(ord)k
4968 5747(entry)s 6292(can)s 6681(be)s 6963(found)s 7580(then)s
4969 8049(no)s 8342(service)s 480 2948(will)m 906(be)s 1188(in)s 9(v)k 4(ok)k 2(ed.)k
4970 0 2542(\213)m 480(The)s 908(numeric)s 1744(v)s 6(alues)k
4971 2400(and)s 2804(te)s 3(xtual)k 3506(names)s 4168(for)s
4972 4506(calling)s 5209(gid)s 5573(and)s 5977(supplementary)s 7439(group)s
4973 8051(list)s 8402(are)s 480 2302(a)m 4(v)k 6(ailable)k
4974 1380(in)s 1615(the)s 1955(con\207guration)s 3280(language)s 4192(in)s
4978 240 fnt31 0 -52(calling\211group)m
4980 6119(parameter)s 7125(and)s
4981 7521(are)s 7860(passed)s 8548(to)s 8778(the)s 480 2062(service)m
4982 1212(in)s 1455(en)s 9(vironment)k 2715(v)s 6(ariables.)k
4983 3735(If)s 3965(no)s 4258(name)s 4832(can)s 5221(be)s
4984 5503(found)s 6120(for)s 6458(a)s 6624(numeric)s 7460(group)s
4985 8072(to)s 8311(which)s 480 1822(the)m 828(calling)s 1531(process)s
4986 2299(belongs)s 3095(then)s 3564(no)s 3857(service)s 4589(will)s
4987 5015(be)s 5297(in)s 9(v)k 4(ok)k 2(ed.)k
4988 0 1367(\213)m 480(The)s 908(name)s 1482(of)s 1753(the)s
4989 2101(current)s 2837(w)s 2(orking)k 3686(directory)s 4602(in)s
4990 4845(which)s 5487(the)s 5835(client)s 6425(w)s 2(as)k
4991 6846(in)s 9(v)k 4(ok)k 2(ed)k 7661(is)s
4992 7871(passed,)s 8616(if)s 480 1127(a)m 4(v)k 6(ailable)k
4993 1388(and)s 1792(not)s 2158(hidden)s 2867(using)s gsave
4997 0 -52(\211\211hidecwd)m
4999 4340(,)s 4447(to)s 4686(the)s 5034(service)s
5000 5766(program)s 6636(in)s 6879(the)s gsave
5003 240 fnt31 0 -52(USERV_CWD)m
5006 8188(v)s 6(ariable.)k 480 887(This)m 946(grants)s 1570(no)s
5007 1852(special)s 2560(access)s 3210(to)s 3438(that)s 3846(directory)s
5008 4751(unless)s 5389(it)s 5571(is)s 5770(a)s 5925(subdirectory)s
5009 7164(of)s 7424(a)s 7579(directory)s 8484(which)s 0 52(1.0.1)m
5010 4809(User)s 5320(service)s 6052(daemon)s 6867(and)s 7271(client)s
5011 7861(speci\207cation)s
5021 %%PageResources: font Times-Roman
5023 %%+ font Courier-Bold
5024 %%+ font Times-Italic
5026 0.0500 dup scale 10 setlinewidth
5030 240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic
5045 1417 -15423 translate
5046 240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic
5050 240 fnt84 8832 13842(19)m 240 fnt82 480 13251(is)m 690(e)s 3(x)k 3(ecutable)k
5051 1762(\(searchable\))s 2977(b)s 4(ut)k 3339(not)s 3705(readable)s
5052 4570(by)s 4864(the)s 5212(service)s 5944(user)s 13(.)k
5053 0 12794(\213)m 480(Settings)s 1301(speci\207ed)s 2209(by)s 2503(the)s
5054 2851(caller)s 3440(using)s 4012(the)s gsave
5055 4360 12848 translate
5057 240 fnt31 0 -52(\211\211defvar)m
5061 240 fnt83 0 -52(name)m
5066 240 fnt83 0 -52(value)m
5071 6432(option)s 7101(to)s 7340(the)s 7688(client)s 8278(are)s
5072 480 12554(a)m 4(v)k 6(ailable)k 1388(in)s 1631(the)s
5073 1979(con\207guration)s 3312(language)s 4232(as)s 4482(the)s 4830(corresponding)s
5075 6252 12608 translate
5077 240 fnt31 0 -52(u\211)m gsave
5080 240 fnt83 0 -52(name)m
5085 8116(and)s 8520(are)s 480 12314(passed)m 1176(to)s 1415(the)s
5086 1763(service)s 2495(program)s 3365(in)s 3608(en)s 9(vironment)k
5087 4868(v)s 6(ariables)k gsave
5088 5775 12368 translate
5090 240 fnt31 0 -52(USERV_U_)m gsave
5098 7082(.)s 0 11859(\213)m 480(If)s 710(the)s
5099 1058(calling)s 1761(user)s 2219(is)s 2429(root)s 2874(or)s
5100 3133(the)s 3481(same)s 4028(as)s 4278(the)s 4626(service)s
5101 5358(user)s 5816(then)s 6285(options)s 7041(may)s 7507(be)s
5102 7789(gi)s 6(v)k 3(en)k 8369(to)s 8608(the)s
5103 480 11619(client)m 1070(which)s 1712(bypass)s 2415(the)s 2763(usual)s
5104 3323(security)s 4133(features;)s 5000(in)s 5243(this)s 5639(case)s
5105 6106(other)s 6657(information)s 7842(may)s 8308(pass)s 480 11379(between)m
5106 1334(the)s 1682(caller)s 2271(and)s 2675(the)s 3023(service.)s
5107 0 52(User)m 511(service)s 1243(daemon)s 2058(and)s 2462(client)s
5108 3052(speci\207cation)s 8611(1.0.1)s
5118 %%PageResources: font Times-Roman
5120 %%+ font Courier-Bold
5121 %%+ font Times-Italic
5123 0.0500 dup scale 10 setlinewidth
5127 240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic
5142 1417 -15423 translate
5143 240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic
5147 240 fnt84 0 13842(20)m gsave
5149 240 fnt82 9066 687 0 687 240 240 60 LoutGraphic
5151 newpath 0 ysize 0.3 ft sub moveto
5157 340 fnt84 0 69(6.)m 412(A)s 8(pplications)k
5158 2309(and)s 2935(notes)s 3765(on)s 4204(use)s
5162 240 fnt82 9066 669 0 669 240 240 60 LoutGraphic
5164 newpath 0 ysize 0.3 ft sub moveto
5171 0 66(6.1.)m 628(Examples)s
5173 240 fnt82 0 11188(The)m 428(companion)s
5174 1549(package,)s gsave
5175 2440 11242 translate
5177 240 fnt31 0 -52(userv\211utils)m
5179 3541(,)s 3648(contains)s
5180 4496(a)s 4662(selection)s 5568(of)s 5839(e)s 3(xample)k
5181 6702(services,)s 7578(some)s 8139(of)s 8410(which)s 0 10948(are)m
5182 347(useful)s 986(tools)s 1502(in)s 1745(their)s 2242(o)s 6(wn)k
5183 2706(right.)s 3261(See)s 3662(the)s gsave
5184 4010 11002 translate
5186 240 fnt31 0 -52(README)m
5189 4670(in)s 4913(its)s 5189(top-le)s 6(v)k 3(el)k
5190 6084(directory)s 7000(for)s 7338(details.)s 9066 670 0 670 240 240 60 0 9924 LoutGr2
5191 newpath 0 ysize 0.3 ft sub moveto
5197 320 fnt84 0 66(6.2.)m
5198 628(Standard)s 1977(ser)s 3(vices)k 3110(and)s 3697(dir)s 5(ectory)k
5201 0 9462(In)m 250(later)s 726(v)s 3(ersions)k
5202 1565(of)s 1829(this)s 2219(speci\207cation)s 3477(standard)s 4339(service)s
5203 5064(names)s 5720(and)s 6117(interf)s 2(aces)k 7087(for)s
5204 7418(common)s 8306(services)s 0 9222(such)m 496(as)s 746(mail)s
5205 1225(deli)s 6(v)k 3(ery)k 2053(and)s 2457(WWW)s
5206 3193(CGI)s 3661(scripts)s 4335(may)s 4801(be)s 5083(speci\207ed.)s
5210 240 fnt31 0 -52(userv)m
5212 500 8814(-us)m 783(ing)s 1142(ap)s
5213 1361(pli)s 1607(ca)s 1819(tions)s 2334(and)s 2737(sys)s
5214 3034(tem)s 3451(ser)s 3729(vices)s 4270(which)s 4911(hide)s
5218 240 fnt31 0 -52(userv)m
5220 5938(be)s 6160(hind)s 6643(wrap)s
5221 7114(per)s 7478(scripts)s 8151(may)s 8616(need)s 0 8574(to)m
5222 225(store)s 731(in)s 914(for)s 1192(ma)s 1484(tion)s
5223 1899(in)s 2128(the)s 2462(user')s 13(s)k 3056(\207lespace)s
5224 3934(to)s 4159(pre)s 4460(serv)s 3(e)k 5003(the)s
5225 5337(cor)s 5642(rect)s 6045(place)s 6545(ment)s 7069(of)s
5226 7326(the)s 7660(se)s 7855(cu)s 8076(ri)s 8215(ty)s
5227 8441(perim)s 8998(-)s 0 8334(iters.)m 514(Such)s 1050(ap)s
5228 1269(pli)s 1515(ca)s 1727(tions)s 2243(should)s 2940(usu)s
5229 3268(al)s 3435(ly)s 3675(do)s 3968(so)s 4234(in)s
5230 4477(a)s 4643(di)s 4823(rec)s 5107(to)s 5286(ry)s
5231 5539(\(cre)s 5905(at)s 6077(ed)s 6361(by)s 6655(them\))s
5235 240 fnt31 0 -52(~/.userv/)m gsave
5238 240 fnt83 0 -52(service)m
5243 0 8094(where)m 240 fnt83 640 8096(ser)m 937(vice)s 240 fnt82
5244 1374 8094(is)m 1584(the)s 1932(ser)s 2210(vice)s 2664(name)s
5245 3238(or)s 3497(ap)s 3716(pli)s 3962(ca)s 4174(tion)s
5246 4603(in)s 4846(ques)s 5276(tion.)s 0 7686(If)m 230(desired,)s
5247 1027(a)s 1193(dot-directory)s 2494(inside)s gsave
5250 240 fnt31 0 -52(~/.userv)m
5253 3982(may)s 4448(be)s 4730(used)s 5227(to)s 5466(a)s 4(v)k 4(oid)k
5254 6048(the)s 6396(user)s 6854(becoming)s 7851(confused)s 8773(by)s
5255 0 7446(\207nding)m 724(parts)s 1231(of)s 1493(a)s 1651(semi-pri)s 6(vile)k 3(ged)k
5256 3190(application')s 13(s)k 4454(internal)s 5230(state)s 5714(in)s
5257 5949(their)s 6437(\207lespace,)s 7372(and/or)s 8034(discourage)s 0 7206(them)m
5258 538(from)s 1062(\207ddling)s 1860(with)s 2342(and)s 2746(thus)s
5259 3196(corrupting)s 4245(it.)s 0 6798(Ho)m 6(we)k 6(v)k 3(er)k 9(,)k
5263 240 fnt31 0 -52(userv)m
5265 1520(applications)s 2726(should)s 3423(of)s
5266 3694(course)s 4374(not)s 4740(rely)s 5165(for)s 5503(their)s
5267 6000(global)s 6653(inte)s 3(grity)k 7513(and)s 7917(security)s
5268 8727(on)s 0 6558(the)m 348(inte)s 3(grity)k 1208(of)s
5269 1479(the)s 1827(data)s 2285(on)s 2582(the)s 2930(user')s 13(s)k
5270 3538(side)s 3979(of)s 4250(the)s 4598(security)s 5408(boundary)s 15(.)k
5271 9066 670 0 670 240 240 60 0 5534 LoutGr2
5272 newpath 0 ysize 0.3 ft sub moveto
5278 320 fnt84 0 66(6.3.)m 628(Reducing)s 1997(the)s 2497(number)s
5279 3655(of)s 4018(absolutely)s 5474(pri)s 3(vileged)k 6908(subsystems)s
5282 0 5072(Currently)m 970(most)s 1495(Unix)s 2029(systems)s 2837(ha)s 4(v)k 3(e)k
5283 3338(man)s 3(y)k 3921(components)s 5129(which)s 5771(need)s
5284 6281(to)s 6520(run)s 6896(as)s 7146(root,)s 7638(e)s 6(v)k 3(en)k
5285 8138(though)s 0 4832(most)m 525(of)s 796(their)s 1293(acti)s 6(vity)k
5286 2057(does)s 2547(not)s 2913(strictly)s 3629(require)s 4361(it.)s
5287 4597(This)s 5073(gi)s 6(v)k 3(es)k 5620(rise)s
5288 6020(to)s 6259(a)s 6425(lar)s 4(ge)k 6954(and)s
5289 7358(comple)s 3(x)k 8234(body)s 8768(of)s 0 4592(code)m
5290 508(which)s 1150(must)s 1675(be)s 1957(trusted)s 2665(with)s
5291 3147(the)s 3495(security)s 4305(of)s 4576(the)s 4924(system.)s
5292 0 4184(If)m 230(the)s 3(y)k 693(were)s 1213(to)s
5296 240 fnt31 0 -52(userv)m
5298 2327(,)s 2434(man)s 3(y)k
5299 3017(of)s 3288(these)s 3835(sub)s 4161(sys)s 4458(tems)s
5300 4960(w)s 2(ould)k 5615(no)s 5908(longer)s 6579(need)s
5301 7089(an)s 3(y)k 7486(un)s 7723(usu)s 8051(al)s
5302 8278(pri)s 6(v)k 8652(-)s 0 3944(i)m 60(le)s 3(ge.)k
5306 240 fnt31 0 -52(cron)m
5308 455 3536(and)m gsave
5311 240 fnt31 0 -52(at)m
5317 240 fnt31 0 -52(lpr)m
5319 1509(and)s 1907(the)s
5320 2249(system')s 13(s)k 3117(mail)s 3591(transfer)s 4373(agent)s
5324 240 fnt31 0 -52(sendmail)m
5335 240 fnt31 0 -52(exim)m
5338 7229(the)s 7572(lik)s 2(e\))k 8050(all)s 8337(f)s 2(all)k
5339 8701(into)s 0 3296(this)m 396(cate)s 3(gory)k 15(,)k
5343 240 fnt31 0 -52(userv)m
5345 2531(-based)s 3213(v)s 3(ersions)k
5346 4058(of)s 4329(these)s 4876(programs)s 5830(are)s 6177(not)s
5347 6543(currently)s 7459(a)s 4(v)k 6(ailable.)k 9066 670 0 670 240 240 60 0 2272 LoutGr2
5348 newpath 0 ysize 0.3 ft sub moveto
5355 0 66(6.4.)m 628(Do)s 1092(not)s 1615(gi)s 3(v)k 3(e)k
5356 2234(away)s 3019(excessi)s 3(v)k 3(e)k 4312(pri)s 3(vilege)k
5360 320 fnt31 0 -70(userv)m
5362 6577(-using)s 7484(facilities)s
5365 0 1810(There)m 613(is)s 823(a)s 989(danger)s 1700(that)s
5366 2118(people)s 2812(reimplementing)s 4378(the)s 4726(f)s 2(acilities)k
5367 5595(I)s 5730(mention)s 6571(abo)s 3(v)k 3(e)k
5371 240 fnt31 0 -52(userv)m
5373 8325(will)s 0 1570(discard)m
5374 731(much)s 1303(of)s 1557(the)s 1888(security)s 2680(bene\207t)s
5375 3374(by)s 3651(using)s 4206(a)s 4355(nai)s 6(v)k 3(e)k
5376 4902(implementation)s 6442(technique.)s 7459(This)s 7918(will)s 8326(become)s
5377 0 1330(clearer)m 708(with)s 1190(an)s 1473(e)s 3(xample:)k
5378 0 922(Consider)m 924(the)s gsave
5381 240 fnt31 0 -52(lpr)m
5384 2546(In)s 2802(current)s 3538(systems)s 4346(this)s 4742(needs)s
5385 5338(to)s 5577(ha)s 4(v)k 3(e)k 6078(an)s
5386 6361(absolutely)s 7398(pri)s 6(vile)k 3(ged)k 0 52(1.0.1)m
5387 4809(User)s 5320(service)s 6052(daemon)s 6867(and)s 7271(client)s
5388 7861(speci\207cation)s
5398 %%PageResources: font Times-Roman
5400 %%+ font Courier-Bold
5401 %%+ font Times-Italic
5403 0.0500 dup scale 10 setlinewidth
5407 240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic
5422 1417 -15423 translate
5423 240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic
5427 240 fnt84 8839 13842(21)m 240 fnt82 0 13254(component)m 1124(in)s
5428 1367(order)s 1931(to)s 2170(support)s 2948(delayed)s 3750(printing)s
5429 4560(without)s 5351(cop)s 2(ying:)k 6227(when)s 6803(the)s
5430 7151(user)s 7609(queues)s 8325(a)s 8491(\207le)s 0 13014(to)m
5431 239(be)s 521(printed)s 1256(the)s 1604(\207lename)s 2483(is)s
5432 2693(stored)s 3335(in)s 3578(the)s 3926(print)s 4437(queue,)s
5433 5116(rather)s 5732(than)s 6201(a)s 6367(cop)s 2(y)k
5434 6885(of)s 7156(it,)s 7395(and)s 7799(the)s 8147(printer)s
5435 0 12774(daemon)m 813(accesses)s 1671(the)s 2016(\207le)s 2375(directly)s
5436 3155(when)s 3729(it)s 3918(is)s 4126(ready)s 4708(to)s
5437 4945(print)s 5453(the)s 5799(job)s 9(.)k 6197(In)s
5438 6451(order)s 7012(that)s 7428(the)s 7773(user)s 8229(can)s
5439 8615(print)s 0 12534(\207les)m 449(which)s 1091(are)s 1438(not)s
5440 1804(w)s 2(orld-readable)k 3304(the)s 3652(daemon)s 4467(is)s
5441 4677(gi)s 6(v)k 3(en)k 5257(root)s 5702(pri)s 6(vile)k 3(ge)k
5442 6598(so)s 6864(that)s 7282(it)s 7474(can)s 7863(open)s
5443 8386(the)s 8734(\207le)s 0 12294(in)m 243(the)s 591(conte)s 3(xt)k
5444 1352(of)s 1623(the)s 1971(user)s 9(,)k 2467(rather)s
5445 3083(than)s 3552(its)s 3828(o)s 6(wn.)k 0 11886(A)m
5446 212(simple-minded)s 1686(approach)s 2602(to)s 2823(con)s 9(v)k 3(erting)k
5447 3868(this)s 4246(scheme)s 5001(to)s 5222(use)s gsave
5448 5579 11940 translate
5453 6120(might)s 6720(in)s 9(v)k 4(olv)k 3(e)k
5454 7460(gi)s 6(ving)k 8101(the)s 8430(printer)s 0 11646(daemon)m
5456 1233 11700 translate
5458 240 fnt31 0 -52(lp)m
5460 1489(user\))s 2010(the)s
5461 2354(ability)s 3013(to)s 3248(read)s 3712(the)s 4055(\207le)s
5462 4412(by)s 4701(allo)s 6(wing)k 5581(them)s 6114(to)s
5464 6720 11700 translate
5466 240 fnt31 0 -52(cat)m
5468 7076(\(or)s 7409(a)s
5469 7570(special-purpose)s 0 11406(\207le-reading)m 1140(program\))s 2063(as)s 2299(an)s 3(y)k
5470 2681(user)s 13(.)k 3155(The)s gsave
5471 3569 11460 translate
5473 240 fnt31 0 -52(lpr)m
5476 3914(program)s 4769(w)s 2(ould)k 5410(use)s 5770(a)s
5478 5922 11460 translate
5480 240 fnt31 0 -52(userv)m
5482 6467(service)s 7184(to)s 7409(store)s
5483 7914(the)s 8247(\207lename)s 0 11166(in)m 243(the)s 591(printer)s
5484 1287(daemon')s 13(s)k 2255(queues,)s 3027(and)s 3431(the)s
5485 3779(daemon)s 4594(w)s 2(ould)k 5249(read)s 5718(the)s
5486 6066(\207le)s 6427(later)s 6910(when)s 7486(it)s 7678(felt)s
5487 8055(lik)s 2(e)k 8467(it.)s 0 10758(Ho)m 6(we)k 6(v)k 3(er)k 9(,)k
5488 960(this)s 1356(w)s 2(ould)k 2011(allo)s 6(w)k
5489 2590(the)s 2938(printer)s 3634(daemon)s 4449(to)s 4688(read)s
5490 5157(an)s 3(y)k 5554(\207le)s 5915(on)s 6212(the)s
5491 6560(system,)s 7331(whether)s 8161(or)s 8420(not)s 0 10518(someone)m
5492 907(had)s 1311(ask)s 2(ed)k 1912(for)s 2250(it)s
5493 2442(to)s 2681(be)s 2963(printed.)s 3744(Since)s 4331(man)s 3(y)k
5494 4914(\207les)s 5363(will)s 5789(contain)s 6550(passw)s 2(ords)k
5495 7596(and)s 8000(other)s 0 10278(security-critical)m 1551(information)s 2736(this)s
5496 3132(is)s 3342(nearly)s 3993(as)s 4243(bad)s 4647(as)s
5497 4897(gi)s 6(ving)k 5556(the)s 5904(daemon)s 6719(root)s
5498 7164(access)s 7825(in)s 8068(the)s 8416(\207rst)s 0 10038(place.)m
5499 608(An)s 3(y)k 1072(security)s 1882(holes)s 2438(in)s
5500 2681(the)s 3029(print)s 3540(serv)s 3(er)k 4180(which)s
5501 4822(allo)s 6(w)k 5401(a)s 5567(user)s 6025(to)s
5502 6264(e)s 3(x)k 3(ecute)k 7044(commands)s 8132(as)s
5504 8730 10092 translate
5506 240 fnt31 0 -52(lp)m
5508 0 9798(user)m 458(will)s
5509 884(gi)s 6(v)k 3(e)k 1343(the)s 1691(user)s
5510 2149(the)s 2497(ability)s 3161(to)s 3400(read)s 3869(an)s 3(y)k
5511 4266(\207le)s 4627(on)s 4924(the)s 5272(system.)s 0 9390(Instead,)m
5512 790(it)s 975(is)s 1178(necessary)s 2153(to)s 2385(k)s 2(eep)k
5513 2881(a)s 3040(record)s 3700(of)s 3964(which)s 4599(\207les)s
5514 5040(the)s 5381(daemon)s 6189(has)s 6552(been)s 7053(ask)s 2(ed)k
5515 7647(to)s 7879(print)s 240 fnt83 8382 9392(outside)m 240 fnt82
5516 0 9150(the)m 348(control)s 1080(of)s 1351(the)s 1699(print)s
5517 2210(daemon.)s 3072(This)s 3548(record)s 4216(could)s 4806(be)s
5518 5088(k)s 2(ept)k 5558(by)s 5852(a)s 6018(ne)s 6(w)k
5519 6465(root-pri)s 6(vile)k 3(ged)k 7947(component,)s 0 8910(b)m 4(ut)k
5520 352(this)s 737(is)s 936(not)s 1291(necessary:)s 2315(the)s
5521 2652(record)s 3309(of)s 3569(which)s 4200(\207les)s 4638(a)s
5522 4794(user)s 5241(has)s 5600(ask)s 2(ed)k 6190(to)s
5523 6418(be)s 6689(printed)s 7413(can)s 7791(be)s 8062(k)s 2(ept)k
5524 8521(under)s 0 8670(the)m 348(control)s 1080(of)s 1351(the)s
5525 1699(user)s 2157(in)s 2400(question.)s 3315(The)s 3743(submission)s
5526 4877(program)s gsave
5529 240 fnt31 0 -52(lpr)m
5531 6107(will)s 6533(mak)s 2(e)k
5532 7105(a)s 7271(record)s 7939(in)s 8182(an)s 8465(area)s
5533 0 8430(under)m 605(the)s 953(user')s 13(s)k 1561(control)s
5534 2293(before)s 2959(communicating)s 4500(with)s 4982(the)s 5330(print)s
5535 5841(serv)s 3(er)k 9(,)k 6519(and)s 6923(the)s
5536 7271(print)s 7782(serv)s 3(er)k 8422(w)s 2(ould)k
5537 0 8190(be)m 279(gi)s 6(v)k 3(en)k 855(the)s
5538 1199(ability)s 1859(to)s 2094(run)s 2466(a)s 2628(special)s
5539 3342(\207le-reading)s 4493(program)s 5359(which)s 5997(w)s 2(ould)k
5540 6648(only)s 7124(allo)s 6(w)k 7699(\207les)s 8144(to)s
5541 8379(be)s 8657(read)s 0 7950(which)m 642(were)s 1162(listed)s
5542 1737(in)s 1980(the)s 2328(user')s 13(s)k 2936(\207le)s
5543 3297(of)s 3568(things)s 4204(the)s 3(y')k 12(d)k
5544 4858(ask)s 2(ed)k 5459(to)s 5698(print.)s 0 7542(No)m 6(w)k
5545 502(security)s 1300(holes)s 1844(in)s 2075(most)s 2588(of)s
5546 2846(the)s 3182(printing)s 3980(system)s 4692(do)s 4973(not)s
5547 5327(critically)s 6215(af)s 6(fect)k 6799(the)s 7135(security)s
5548 7933(of)s 8192(the)s 8527(entire)s 0 7302(system:)m 770(the)s 3(y)k
5549 1233(only)s 1713(allo)s 6(w)k 2292(the)s 2640(attack)s 2(er)k
5550 3453(to)s 3692(read)s 4161(and)s 4565(interfere)s 5428(with)s
5551 5910(print)s 6421(jobs.)s 6924(Bugs)s 7468(in)s 7711(the)s
5552 8059(programs)s 0 7062(run)m 373(by)s 664(the)s 1009(print)s
5553 1517(serv)s 3(er)k 2154(to)s 2390(read)s 2856(users')s
5554 3456(\207les)s 3902(\(and)s 4382(to)s 4618(remo)s 3(v)k 3(e)k
5555 5382(entries)s 6066(from)s 6587(the)s 6932(list)s 7280(of)s
5556 7548(\207les)s 7994(when)s 8567(it)s 8756(has)s 0 6822(done)m
5557 522(with)s 1004(them\))s 1610(will)s 2036(still)s 2448(be)s
5558 2730(serious,)s 3514(b)s 4(ut)k 3876(this)s 4272(program)s
5559 5142(can)s 5531(be)s 5813(quite)s 6347(simple.)s 0 6414(Similar)m
5560 762(considerations)s 2194(apply)s 2780(to)s 3019(man)s 3(y)k
5564 240 fnt31 0 -52(userv)m
5566 4102(-based)s 4784(v)s 3(ersions)k
5567 5629(of)s 5900(f)s 2(acilities)k 6769(which)s 7411(currently)s
5568 8327(run)s 0 6174(as)m 250(root.)s 0 5766(It)m 198(is)s
5569 401(debatable)s 1366(whether)s 2189(the)s 2530(user)s 4(-controlled)k
5570 4023(state)s 4509(should)s 5199(be)s 5474(k)s 2(ept)k
5571 5937(in)s 6173(the)s 6514(user')s 13(s)k 7115(\207lespace)s
5572 8000(\(in)s 8315(dot\207les,)s 0 5526(say\))m 440(or)s 692(k)s 2(ept)k
5573 1155(in)s 1391(a)s 1550(separate)s 2381(area)s 2831(set)s
5574 3149(aside)s 3688(for)s 4019(the)s 4360(purpose;)s 5223(ho)s 6(we)k 6(v)k 3(er)k 9(,)k
5575 6123(using)s 6688(the)s 7029(user')s 13(s)k 7630(home)s
5576 8210(directory)s 0 5286(\(and)m 483(possibly)s 1335(creating)s 2157(a)s
5577 2323(separate)s 3161(subdirectory)s 4410(of)s 4681(it)s 4873(as)s
5578 5123(a)s 5289(dot\207le)s 5956(to)s 6195(contain)s 6956(subsystem)s
5579 8013(state\))s 0 5046(has)m 370(fe)s 6(wer)k 967(implications)s
5580 2199(for)s 2537(the)s 2885(rest)s 3289(of)s 3560(the)s
5581 3908(system)s 4632(and)s 5036(mak)s 2(es)k 5696(it)s
5582 5888(entirely)s 6671(clear)s 7194(where)s 7834(the)s 8182(security)s
5583 0 4806(boundaries)m 1101(lie.)s 9066 670 0 670 240 240 60 0 3782 LoutGr2
5584 newpath 0 ysize 0.3 ft sub moveto
5590 320 fnt84 0 66(6.5.)m gsave
5596 1375(can)s 1929(often)s 2695(r)s 5(eplace)k
5600 320 fnt31 0 -70(sudo)m
5602 4292(,)s 4444(b)s 6(ut)k
5606 320 fnt31 0 -70(really)m
5613 240 fnt31 0 -52(userv)m
5616 559 3320(is)m 768(not)s 1133(in)s 1316(tend)s 1726(ed)s
5617 2009(as)s 2258(a)s 2423(general-)s 3194(purpose)s 4007(sys)s
5618 4304(tem)s 4721(ad)s 4945(min)s 5314(is)s 5464(tra)s
5619 5715(tion)s 6143(tool)s 6569(with)s 7050(which)s 7691(sys)s
5620 7988(tem)s 8405(ad)s 8629(min)s 8998(-)s 0 3080(is)m
5621 150(tra)s 401(tors)s 801(can)s 1181(e)s 3(x)k
5622 1399(e)s 1501(cute)s 1946(ar)s 2131(bi)s 2311(trary)s
5623 2806(pro)s 3118(grams)s 3744(lik)s 2(e)k 4147(te)s 3(xt)k
5624 4553(ed)s 4777(i)s 4837(tors)s 5236(as)s 5477(root)s
5625 5913(\(or)s 6242(oth)s 6545(er)s 6781(sys)s 7078(tem)s
5626 7487(users\))s 8097(when)s 8663(the)s 3(y)k 0 2840(need)m
5627 501(to.)s 782(It)s 978(is)s 1179(un)s 1416(suit)s
5628 1761(able)s 2205(for)s 2534(this)s 2921(pur)s 3240(pose)s
5629 3726(pre)s 4027(cise)s 4394(ly)s 4625(be)s 4847(cause)s
5630 5424(it)s 5607(en)s 5830(forces)s 6455(a)s 6612(strong)s
5631 7254(sep)s 7566(a)s 7672(ra)s 7857(tion)s 8276(be)s
5632 8498(tween)s 0 2600(the)m 348(call)s 687(ing)s 1046(and)s
5633 1450(the)s 1798(called)s 2426(pro)s 2738(gram,)s 3336(which)s
5634 3978(is)s 4188(un)s 4425(de)s 4647(sir)s 4885(able)s
5635 5339(in)s 5582(this)s 5978(con)s 6321(te)s 3(xt.)k
5636 0 2192(Ho)m 6(we)k 6(v)k 3(er)k 9(,)k
5637 951(its)s 1217(use)s 1582(when)s 2148(restricted)s 3084(to)s
5638 3313(running)s 4101(particular)s 5065(programs)s 6009(in)s 6243(particular)s
5639 7207(w)s 2(ays)k 7738(is)s 7938(v)s 3(ery)k
5640 8404(similar)s 0 1924(to)m 239(man)s 3(y)k 822(common)s
5641 1717(uses)s 2180(of)s gsave
5644 240 fnt31 0 -52(sudo)m
5647 2851 2013(1)m 240 fnt82 2911 1924(.)m gsave
5650 240 fnt31 0 -52(userv)m
5653 3575(is)s 3785(generally)s 4728(much)s 5317(better)s 5920(than)s
5654 6389(restricted)s gsave
5657 240 fnt31 0 -52(sudo)m
5659 7734(,)s 7841(because)s
5660 8654(it)s 0 1684(protects)m 796(the)s 1132(called)s 1748(program)s
5661 2607(much)s 3184(more)s 3719(strongly)s 4545(from)s 5058(bad)s
5662 5450(en)s 9(vironmental)k 6865(conditions)s 7902(set)s 8215(up)s
5663 8496(by)s 8778(the)s 1134 0 0 0 240 240 60 0 1177 LoutGr2
5664 0 0 moveto xsize 0 lineto stroke
5668 122 fnt82 0 982(1)m gsave
5674 192 fnt82 425 912(is)m 593(a)s 726(program)s
5675 1422(which)s 1936(allo)s 4(ws)k 2472(users)s 2905(to)s
5676 3097(e)s 2(x)k 2(ecute)k 3723(certain)s 4289(programs)s
5677 5052(as)s 5252(root,)s 5646(according)s 6444(to)s 6636(con\207guration)s
5678 7703(\207les)s 8062(speci\207ed)s 8789(by)s 0 682(the)m 279(system)s
5679 858(administrator)s 10(.)k 240 fnt82 0 52(User)m 511(service)s
5680 1243(daemon)s 2058(and)s 2462(client)s 3052(speci\207cation)s 8611(1.0.1)s
5691 %%PageResources: font Times-Roman
5693 %%+ font Courier-Bold
5695 0.0500 dup scale 10 setlinewidth
5699 240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic
5714 1417 -15423 translate
5715 240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic
5719 240 fnt84 0 13842(22)m 240 fnt82 0 13254(caller)m 13(.)k
5720 604(Most)s 1140(programs)s 2077(that)s 2479(one)s 2864(might)s
5721 3466(w)s 2(ant)k 3972(to)s 4195(run)s 4554(via)s
5722 4890(restricted)s gsave
5723 5818 13308 translate
5725 240 fnt31 0 -52(sudo)m
5727 6218(,)s 6309(ha)s 4(v)k 3(e)k
5728 6793(not)s 7143(been)s 7635(designed)s 8528(to)s 8750(run)s
5729 0 13014(in)m 243(a)s 409(partially)s 1258(hostile)s 1951(en)s 9(vironment.)k
5731 3255 13068 translate
5733 240 fnt31 0 -52(userv)m
5735 3815(allo)s 6(ws)k 4484(these)s
5736 5031(programs)s 5985(to)s 6224(be)s 6506(run)s 6882(in)s
5737 7125(a)s 7291(safer)s 7814(en)s 9(vironment)k 0 12774(and)m
5738 404(should)s 1101(be)s 1383(used)s 1880(instead.)s 9066 671 0 671 240 240 60 0 11749 LoutGr2
5739 newpath 0 ysize 0.3 ft sub moveto
5746 0 66(6.6.)m 628(Err)s 5(or)k 1499(handling)s 2778(and)s
5747 3365(input)s 4170(str)s 5(eams)k 5301(\(eg)s 5784(stdin\))s
5750 0 11287(When)m 610(the)s 938(service)s 1651(program)s 2501(is)s
5751 2692(reading)s 3442(from)s 3947(a)s 4093(\207le)s 4435(descriptor)s
5752 5430(connected)s 6439(to)s 6658(the)s 6987(calling)s 7670(side,)s
5753 8143(the)s 8471(fd)s 8708(that)s 0 11047(the)m 348(service)s
5754 1080(program)s 1950(refers)s 2543(to)s 2782(a)s 2948(pipe)s
5755 3416(set)s 3741(up)s 4034(by)s gsave
5756 4328 11101 translate
5758 240 fnt31 0 -52(userv)m
5761 4888(and)s 5292(not)s 5658(to)s 5897(the)s 6245(same)s
5762 6792(object)s 7436(as)s 7686(w)s 2(as)k 8107(presented)s
5763 0 10807(by)m 294(the)s 642(caller)s 13(.)k 0 10399(Therefore)m
5764 988(if)s 1195(there)s 1718(is)s 1918(some)s 2469(kind)s
5765 2943(of)s 3205(error)s 3718(it)s 3900(is)s 4100(possible)s
5766 4930(for)s 5258(the)s 5597(service-side)s 6783(fd)s 7030(to)s
5767 7259(gi)s 6(v)k 3(e)k 7708(premature)s 8722(end)s
5768 0 10159(of)m 271(\207le.)s 680(If)s 910(it)s 1102(is)s
5769 1312(important)s 2301(to)s 2540(tell)s 2899(whether)s 3729(all)s
5770 4022(of)s 4293(the)s 4641(intended)s 5523(data)s 5981(has)s
5771 6351(been)s 6860(recei)s 6(v)k 3(ed)k 7718(by)s
5772 8012(the)s 8360(service)s 0 9919(program,)m 917(the)s 1265(datastream)s
5773 2359(must)s 2884(contain)s 3645(an)s 3928(e)s 3(xplicit)k
5774 4701(end-of-\207le)s 5765(indication)s 6778(of)s 7049(some)s 7610(kind.)s
5775 0 9511(F)m 3(or)k 385(e)s 3(xample,)k 1294(consider)s
5779 240 fnt31 0 -52(userv)m
5781 2876(service)s 3603(for)s
5782 3936(submitting)s 5008(a)s 5169(mail)s 5643(message,)s 6556(where)s
5783 7191(message)s 8052(is)s 8257(supplied)s 0 9271(on)m 297(the)s
5784 645(service')s 13(s)k 1531(stdin.)s 2100(Ho)s 6(we)k 6(v)k 3(er)k 9(,)k
5785 3060(if)s 3277(the)s 3625(calling)s 4328(process)s 5096(is)s
5786 5306(interrupted)s 6412(before)s 7078(it)s 7270(has)s 7640(written)s
5787 8373(all)s 8666(of)s 0 9031(the)m 347(message,)s 1262(the)s
5788 1608(service)s 2339(program)s 3207(will)s 3631(get)s 3982(EOF)s
5789 4490(on)s 4785(the)s 5132(message)s 5996(data.)s 6496(In)s
5790 6751(a)s 6915(nai)s 6(v)k 3(e)k 7478(arrangement)s
5791 8730(this)s 0 8791(w)m 2(ould)k 655(cause)s 1242(a)s
5792 1408(half-complete)s 2790(message)s 3656(to)s 3895(be)s 4177(sent.)s
5793 4666(T)s 19(o)k 4966(pre)s 6(v)k 3(ent)k
5794 5734(this,)s 6186(it)s 6378(is)s 6588(necessary)s 7571(to)s
5795 7810(adopt)s 8402(some)s 0 8551(kind)m 484(of)s 755(e)s 3(xplicit)k
5796 1528(end)s 1932(indication;)s 3000(for)s 3338(e)s 3(xample,)k
5797 4252(the)s 4600(end)s 5004(of)s 5275(the)s 5623(message)s
5798 6489(could)s 7079(be)s 7361(signalled)s 8282(by)s 8576(a)s
5799 8742(dot)s 0 8311(on)m 297(a)s 463(line)s 877(by)s
5800 1171(itself,)s 1754(and)s 2158(dots)s 2608(doubled,)s 3487(as)s
5801 3737(in)s 3980(SMTP)s 26(.)k 4683(Then)s 5232(the)s
5802 5580(service)s 6312(program)s 7182(w)s 2(ould)k 7837(kno)s 6(w)k
5803 8418(when)s 0 8071(the)m 348(entire)s 947(message)s 1813(had)s
5804 2217(been)s 2726(recei)s 6(v)k 3(ed,)k 3633(and)s
5805 4037(could)s 4627(a)s 4(v)k 4(oid)k 5209(queueing)s
5806 6140(incomplete)s 7258(messages.)s 9066 670 0 670 240 240 60 0 7047 LoutGr2
5807 newpath 0 ysize 0.3 ft sub moveto
5813 320 fnt84 0 66(6.7.)m 628(Don't)s
5814 1488(gi)s 3(v)k 3(e)k 2107(access)s 3013(to)s
5815 3352(general-pur)s 3(pose)k 5640(utilities)s
5817 0 6585(Do)m 346(not)s
5818 712(specify)s 1456(general)s 2214(purpose)s 3028(programs)s 3982(lik)s 2(e)k
5822 240 fnt31 0 -52(mv)m
5827 240 fnt31 0 -52(cat)m
5833 240 fnt31 0 -52(execute\211)m
5835 6377(directi)s 6(v)k 3(es)k
5836 7347(without)s 8138(careful)s 0 6345(thought)m 792(about)s 1384(their)s
5837 1881(ar)s 4(guments,)k 2980(and)s 3384(certainly)s 4273(not)s
5841 240 fnt31 0 -52(no\211suppress\211args)m
5843 6518(is)s 6728(speci\207ed.)s
5844 7682(If)s 7912(you)s 8327(do)s 8620(so)s 8886(it)s
5845 0 6105(will)m 426(gi)s 6(v)k 3(e)k 885(the)s
5846 1233(caller)s 1822(much)s 2411(more)s 2958(pri)s 6(vilige)k
5847 3817(than)s 4286(you)s 4701(probably)s 5606(intend.)s 0 5697(It)m
5848 205(is)s 415(a)s 581(shame)s 1248(that)s 1666(I)s
5849 1801(ha)s 4(v)k 3(e)k 2302(to)s 2541(say)s
5850 2914(this)s 3310(here,)s 3828(b)s 4(ut)k 4190(ine)s 3(xperienced)k
5851 5586(administrators)s 7003(ha)s 4(v)k 3(e)k 7504(made)s
5852 8078(similar)s 0 5457(mistak)m 2(es)k 885(with)s 1367(programs)s
5853 2321(lik)s 2(e)k gsave
5856 240 fnt31 0 -52(sudo)m
5859 0 52(1.0.1)m 4809(User)s 5320(service)s 6052(daemon)s 6867(and)s
5860 7271(client)s 7861(speci\207cation)s
5869 %%DocumentNeededResources: font Courier-Bold
5870 %%+ font Times-Roman
5871 %%+ font Times-Italic
5873 %%DocumentSuppliedResources: procset LoutStartUp
5874 %%+ procset LoutMarginNotes