chiark / gitweb /
@@ -1,6 +1,7 @@
[userv.git] / spec.ps
1 %!PS-Adobe-3.0
2 %%Creator: Basser Lout Version 3.10 (November 1996)
3 %%CreationDate: Sun Aug 13 13:16:53 2000
4 %%DocumentData: Binary
5 %%DocumentNeededResources: (atend)
6 %%DocumentMedia: Plain 595 842 0 white ()
7 %%DocumentSuppliedResources: (atend)
8 %%Pages: (atend)
9 %%BoundingBox: 0 0 595 842
10 %%EndComments
11
12 %%BeginProlog
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
19 /in { 1440 mul } def
20 /cm { 567 mul } def
21 /pt { 20 mul } def
22 /em { 120 mul } def
23 /sp { louts mul } def
24 /vs { loutv mul } def
25 /ft { loutf mul } def
26 /dg {           } def
27
28 /LoutGraphic {
29   /louts exch def
30   /loutv exch def
31   /loutf exch def
32   /ymark exch def
33   /xmark exch def
34   /ysize exch def
35   /xsize exch def
36 } def
37
38 /LoutGr2 { gsave translate LoutGraphic gsave } def
39
40 /LoutFont
41 { findfont exch scalefont setfont
42 } bind def
43
44 /LoutRecode {
45   { findfont dup length dict begin
46     {1 index /FID ne {def} {pop pop} ifelse} forall
47     /Encoding exch def
48     currentdict end definefont pop
49   }
50   stopped pop
51 } bind def
52
53 /BeginEPSF {
54   /LoutEPSFState save def
55   /dict_count countdictstack def
56   /op_count count 1 sub def
57   userdict begin
58   /showpage { } def
59   0 setgray 0 setlinecap
60   1 setlinewidth 0 setlinejoin
61   10 setmiterlimit [] 0 setdash newpath
62   /languagelevel where
63   { pop languagelevel
64     1 ne
65     { false setstrokeadjust false setoverprint
66     } if
67   } if
68 } bind def
69
70 /EndEPSF {
71   count op_count sub { pop } repeat
72   countdictstack dict_count sub { end } repeat
73   LoutEPSFState restore
74 } bind def
75 %%EndResource
76
77 %%BeginResource encoding vec2
78 /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
111 ] def
112 %%EndResource
113
114 %%BeginResource: procset LoutMarginNotes
115 % @PrependGraphic file /usr/lib/lout/include/dl.lpg
116
117 % path for @FullWidthRule symbol
118 /LoutRule
119 { 0 0 moveto xsize 0 lineto
120 } def
121
122 % path for @Box symbol
123 /LoutBox
124 { 0 0 moveto xsize 0 lineto
125   xsize ysize lineto 0 ysize lineto
126   closepath
127 } def
128
129 % path for @CurveBox symbol
130 /LoutCurveBox
131 { xmark 0 moveto
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
136   closepath
137 } def
138
139 % path for @ShadowBox symbol
140 /LoutShadowBox
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
146   closepath
147 } def
148
149 % set up dictionary containing margin note data: parity LoutMargSet -
150 /LoutMargSet
151 { /LoutMargDict 12 dict def
152   LoutMargDict begin
153     /parity exch def
154     /matr matrix currentmatrix def
155     /rightx xsize 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
160   end
161 } def
162
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
165 /LoutMargShift
166 { LoutMargDict begin
167
168     % y coordinate of top of note, in margin coords, before vertical adjust
169     0 ysize transform matr itransform exch pop
170
171     % decide whether left or right margin based on type and parity
172     exch [ 0 1 parity 1 parity sub ] exch get 0 eq
173     {
174       % left margin: adjust top of note downwards if overlaps previous note
175       lefty min
176
177       % bottom of note is new lefty position and also translate position
178       ysize sub dup /lefty exch def
179
180       % want right edge of note at coordinate zero
181       xsize neg exch
182     }
183     {
184       % right margin: adjust top of note downwards if overlaps previous note
185       righty min
186
187       % bottom of note is new righty position and also translate position
188       ysize sub dup /righty exch def
189
190       % want left edge of note at coordinate rightx
191       rightx exch
192     } ifelse
193
194     % stack now contains coord of bottom left corner in margin coordinates
195     matr setmatrix translate
196   end
197 } def
198
199 % create LoutPageDict with left, right, foot, top for @Place symbol users
200 /LoutPageSet
201 {
202   /LoutPageDict 5 dict def
203   LoutPageDict begin
204     /matr matrix currentmatrix def
205     /left 0 def
206     /right xsize def
207     /foot 0 def
208     /top ysize def
209   end
210
211 } def
212
213 %%EndResource
214
215 %%EndProlog
216
217 %%BeginSetup
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
230 %%EndSetup
231
232 %%Page: 1 1
233 %%BeginPageSetup
234 %%PageResources: font Times-Roman
235 %%+ font Times-Bold
236 %%+ font Courier-Bold
237 %%+ font Times-Italic
238 /pgsave save def
239 0.0500 dup scale 10 setlinewidth
240 %%EndPageSetup
241
242 gsave
243 0 0 translate
244 240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic
245 gsave
246 LoutPageSet
247 grestore
248 gsave
249 0 16840 translate
250 0.0000 rotate
251
252 grestore
253
254 grestore
255 gsave
256 0 16840 translate
257 0.0000 rotate
258 gsave
259 1417 -15423 translate
260 240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic
261 gsave
262 1 LoutMargSet
263 grestore
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
266 3093(Jackson)s gsave
267 3770 13061 translate
268 0.6953 1.0000 scale
269 200 fnt31 1031 -43(<ian@davenant.greenend.org.uk>)m 
270 grestore
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
274 xsize 0 rlineto
275 0 0.1 ft rlineto
276 xsize neg 0 rlineto
277 closepath fill
278 grestore
279 320 fnt84 0 5(0.1.)m 628(Abstract)s 
280 grestore
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
288 xsize 0 rlineto
289 0 0.1 ft rlineto
290 xsize neg 0 rlineto
291 closepath fill
292 grestore
293 320 fnt84
294 0 66(0.2.)m 628(Copyright)s 2109(Notice)s 
295 grestore
296 gsave
297 0 9457 translate
298 0.6953 1.0000 scale
299 240 fnt31 0 -52(userv)m
300
301 grestore
302 560 9403(is)m 770(Cop)s 2(yright)k 1799(1996-2000)s 2893(Ian)s
303 3255(Jackson.)s gsave
304 0 9049 translate
305 0.6953 1.0000 scale
306 240 fnt31 0 -52(userv)m 
307 grestore
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
333 gsave
334 7697 7272 translate
335 0.6953 1.0000 scale
336 240 fnt31 0 -52(userv)m 
337 grestore
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
345 xsize 0 rlineto
346 0 0.1 ft rlineto
347 xsize neg 0 rlineto
348 closepath fill
349 grestore
350 320 fnt84 0 6(0.3.)m
351 628(Contents)s 
352 grestore
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
375 4781(to)s gsave
376 5020 1527 translate
377 0.6953 1.0000 scale
378 240 fnt31 0 -52(userv)m 
379 grestore
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 
383 grestore
384
385 grestore
386
387 pgsave restore
388 showpage
389
390 %%Page: 2 2
391 %%BeginPageSetup
392 %%PageResources: font Times-Roman
393 %%+ font Times-Bold
394 %%+ font Courier-Bold
395 /pgsave save def
396 0.0500 dup scale 10 setlinewidth
397 %%EndPageSetup
398 gsave
399 0 0 translate
400 240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic
401 gsave
402 LoutPageSet
403 grestore
404 gsave
405 0 16840 translate
406 0.0000 rotate
407
408 grestore
409
410 grestore
411 gsave
412 0 16840 translate
413 0.0000 rotate
414 gsave
415 1417 -15423 translate
416 240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic
417 gsave
418 0 LoutMargSet
419 grestore
420 240 fnt84 0 13842(2)m 240 fnt82 0 13252(6.5.)m gsave
421 1200 13306 translate
422 0.6953 1.0000 scale
423 240 fnt31
424 0 -52(userv)m 
425 grestore
426 1760(can)s 2149(often)s 2697(replace)s gsave
427 3442 13306 translate
428 0.6953 1.0000 scale
429 240 fnt31
430 0 -52(sudo)m 
431 grestore
432 3842(,)s 3949(b)s 4(ut)k 4311(not)s
433 gsave
434 4677 13306 translate
435 0.6953 1.0000 scale
436 240 fnt31 0 -52(really)m 
437 grestore
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
444
445 grestore
446
447 grestore
448
449 pgsave restore
450 showpage
451
452 %%Page: 3 3
453 %%BeginPageSetup
454 %%PageResources: font Times-Roman
455 %%+ font Times-Bold
456 %%+ font Courier-Bold
457 /pgsave save def
458 0.0500 dup scale 10 setlinewidth
459 %%EndPageSetup
460 gsave
461 0 0 translate
462 240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic
463 gsave
464 LoutPageSet
465 grestore
466 gsave
467 0 16840 translate
468 0.0000 rotate
469
470 grestore
471
472 grestore
473 gsave
474 0 16840 translate
475 0.0000 rotate
476 gsave
477 1417 -15423 translate
478 240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic
479 gsave
480 1 LoutMargSet
481 grestore
482 240 fnt84 8953 13842(3)m gsave
483 0 12792 translate
484 240 fnt82 9066 622 0 622 240 240 60 LoutGraphic
485 gsave
486 newpath 0 ysize 0.3 ft sub moveto
487 xsize 0 rlineto
488 0 0.2 ft rlineto
489 xsize neg 0 rlineto
490 closepath fill
491 grestore
492 340 fnt84 0 4(1.)m 412(Intr)s 6(oduction)k
493
494 grestore
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
507 5482 11664 translate
508 0.6953 1.0000 scale
509 240 fnt31 0 -52(AF_UNIX)m 
510 grestore
511 6242(sock)s 2(et)k
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
530 8611(1.0.1)s 
531 grestore
532
533 grestore
534
535 pgsave restore
536 showpage
537
538 %%Page: 4 4
539 %%BeginPageSetup
540 %%PageResources: font Times-Roman
541 %%+ font Times-Bold
542 %%+ font Courier-Bold
543 %%+ font Times-Italic
544 /pgsave save def
545 0.0500 dup scale 10 setlinewidth
546 %%EndPageSetup
547 gsave
548 0 0 translate
549 240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic
550 gsave
551 LoutPageSet
552 grestore
553 gsave
554 0 16840 translate
555 0.0000 rotate
556
557 grestore
558
559 grestore
560 gsave
561 0 16840 translate
562 0.0000 rotate
563 gsave
564 1417 -15423 translate
565 240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic
566 gsave
567 0 LoutMargSet
568 grestore
569 240 fnt84 0 13842(4)m gsave
570 0 12729 translate
571 240 fnt82 9066 688 0 688 240 240 60 LoutGraphic
572 gsave
573 newpath 0 ysize 0.3 ft sub moveto
574 xsize 0 rlineto
575 0 0.2 ft rlineto
576 xsize neg 0 rlineto
577 closepath fill
578 grestore
579 340 fnt84 0 70(2.)m 412(Client)s
580 1382(pr)s 6(ogram)k 2737(usage)s 
581 grestore
582 gsave
583 480 12081 translate
584 0.6953 1.0000 scale
585 240 fnt31 0 -52(userv)m
586 gsave
587 864 0 translate
588 1.4219 1.0000 scale
589 240 fnt83 0 -52(options)m 
590 grestore
591 2003([\211\211])s gsave
592 2723 0 translate
593 1.4219 1.0000 scale
594 240 fnt83 0 -52(service\211user)m
595
596 grestore
597 gsave
598 4591 0 translate
599 1.4219 1.0000 scale
600 240 fnt83 0 -52(service\211name)m 
601 grestore
602 6594([)s gsave
603 6738 0 translate
604 1.4219 1.0000 scale
605 240 fnt83 0 -52(ar)m 8(gument)k
606
607 grestore
608 8181(\202])s 0 -305(userv)m gsave
609 864 -253 translate
610 1.4219 1.0000 scale
611 240 fnt83 0 -52(options)m 
612 grestore
613 2003(\211B|\211\211builtin)s
614 3875([\211\211])s gsave
615 4595 -253 translate
616 1.4219 1.0000 scale
617 240 fnt83 0 -52(b)m 4(uiltin\211service)k 
618 grestore
619 6742([)s
620 gsave
621 6886 -253 translate
622 1.4219 1.0000 scale
623 240 fnt83 0 -52(info\211ar)m 8(gument)k 
624 grestore
625 9029(\202])s 
626 grestore
627 240 fnt83
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
633 1508 11020 translate
634 0.6953 1.0000 scale
635 240 fnt31 0 -52(\211)m
636
637 grestore
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
648 xsize 0 rlineto
649 0 0.1 ft rlineto
650 xsize neg 0 rlineto
651 closepath fill
652 grestore
653 320 fnt84 0 66(2.1.)m
654 628(Options)s 
655 grestore
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
662 gsave
663 120 8238 translate
664 0.6953 1.0000 scale
665 240 fnt31 0 -52(\211B)m 
666 grestore
667 gsave
668 120 7998 translate
669 0.6953 1.0000 scale
670 240 fnt31 0 -52(\211\211builtin)m 
671 grestore
672 480 7704(Re)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
677 7068(the)s gsave
678 7410 7758 translate
679 0.6953 1.0000 scale
680 240 fnt31 0 -52(\211\211override)m 
681 grestore
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
685 gsave
686 3504 7517 translate
687 0.6953 1.0000 scale
688 240 fnt31 0 -52(execute\211builtin)m 
689 grestore
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
695 3469 7277 translate
696 0.6953 1.0000 scale
697 240 fnt31
698 0 -52(\211)m 
699 grestore
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
720 822 6315 translate
721 0.6953 1.0000 scale
722 240 fnt31
723 0 -52(\211\211override)m 
724 grestore
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
738 gsave
739 7091 5835 translate
740 0.6953 1.0000 scale
741 240 fnt31 0 -52(execute\211builtin)m 
742 grestore
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
748 8697 5541(s.)m gsave
749 120 5201 translate
750 0.6953 1.0000 scale
751 240 fnt31 0 -52(\211f)m gsave
752 288 0 translate
753 1.4219 1.0000 scale
754 240 fnt83 0 -52(fd)m
755
756 grestore
757 561([)s gsave
758 705 0 translate
759 1.4219 1.0000 scale
760 240 fnt83 0 -52(modi\207er)m 2(s)k 
761 grestore
762 1961(]=)s
763 gsave
764 2249 0 translate
765 1.4219 1.0000 scale
766 240 fnt83 0 -52(\207lename)m 
767 grestore
768
769 grestore
770 gsave
771 120 4961 translate
772 0.6953 1.0000 scale
773 240 fnt31 0 -52(\211\211file)m gsave
774 1008 0 translate
775 1.4219 1.0000 scale
776 240 fnt83
777 0 -52(fd)m 
778 grestore
779 1281([)s gsave
780 1425 0 translate
781 1.4219 1.0000 scale
782 240 fnt83 0 -52(modi\207er)m 2(s)k
783
784 grestore
785 2681(]=)s gsave
786 2969 0 translate
787 1.4219 1.0000 scale
788 240 fnt83 0 -52(\207lename)m 
789 grestore
790
791 grestore
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
803 4417 4241 translate
804 0.6953 1.0000 scale
805 240 fnt31 0 -52(cat)m
806
807 grestore
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
811 1384 4001 translate
812 0.6953 1.0000 scale
813 240 fnt31 0 -52(cat)m
814
815 grestore
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
827 8519 3520 translate
828 0.6953 1.0000 scale
829 240 fnt31 0 -52(stdin)m
830
831 grestore
832 9019(,)s gsave
833 480 3280 translate
834 0.6953 1.0000 scale
835 240 fnt31 0 -52(stdout)m 
836 grestore
837 1126 3226(or)m gsave
838 1370 3280 translate
839 0.6953 1.0000 scale
840 240 fnt31
841 0 -52(stderr)m 
842 grestore
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
860 1114(are:)s gsave
861 600 2078 translate
862 0.6953 1.0000 scale
863 240 fnt31 0 -52(read)m 
864 grestore
865 gsave
866 960 1838 translate
867 0.6953 1.0000 scale
868 240 fnt31 0 -52(O_RDONLY)m
869
870 grestore
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
874 6967 1838 translate
875 0.6953 1.0000 scale
876 240 fnt31 0 -52(write)m 
877 grestore
878 7527(or)s
879 7786(things)s 8422(that)s 960 1544(imply)m 1572(it.)s gsave
880 600 1358 translate
881 0.6953 1.0000 scale
882 240 fnt31
883 0 -52(write)m 
884 grestore
885 1134 0 0 0 240 240 60 0 947 LoutGr2
886 0 0 moveto xsize 0 lineto stroke
887 grestore
888
889 grestore
890 122 fnt82 0 752(1)m gsave
891 58 725 translate
892 0.6953 1.0000 scale
893 192 fnt31 0 -42(userv)m
894
895 grestore
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 
900 grestore
901
902 grestore
903
904 pgsave restore
905 showpage
906
907 %%Page: 5 5
908 %%BeginPageSetup
909 %%PageResources: font Times-Roman
910 %%+ font Times-Bold
911 %%+ font Courier-Bold
912 %%+ font Times-Italic
913 /pgsave save def
914 0.0500 dup scale 10 setlinewidth
915 %%EndPageSetup
916 gsave
917 0 0 translate
918 240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic
919 gsave
920 LoutPageSet
921 grestore
922 gsave
923 0 16840 translate
924 0.0000 rotate
925
926 grestore
927
928 grestore
929 gsave
930 0 16840 translate
931 0.0000 rotate
932 gsave
933 1417 -15423 translate
934 240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic
935 gsave
936 1 LoutMargSet
937 grestore
938 240 fnt84 8953 13844(5)m gsave
939 960 13308 translate
940 0.6953 1.0000 scale
941 240 fnt31 0 -52(O_WRONLY)m 
942 grestore
943 240 fnt82
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
948 8222 13308 translate
949 0.6953 1.0000 scale
950 240 fnt31 0 -52(truncate)m 
951 grestore
952 960 13014(or)m gsave
953 1219 13068 translate
954 0.6953 1.0000 scale
955 240 fnt31
956 0 -52(create)m 
957 grestore
958 1819(.)s gsave
959 1923 13068 translate
960 0.6953 1.0000 scale
961 240 fnt31 0 -52(write)m 
962 grestore
963 2483(or)s
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
966 6693 13068 translate
967 0.6953 1.0000 scale
968 240 fnt31
969 0 -52(read)m 
970 grestore
971 7093(.)s gsave
972 600 12828 translate
973 0.6953 1.0000 scale
974 240 fnt31 0 -52(overwrite)m 
975 grestore
976 960 12534(Equi)m 6(v)k 6(alent)k
977 2044(to)s gsave
978 2283 12588 translate
979 0.6953 1.0000 scale
980 240 fnt31 0 -52(write,create,truncate)m 
981 grestore
982 4385(.)s gsave
983 600 12348 translate
984 0.6953 1.0000 scale
985 240 fnt31
986 0 -52(create)m 
987 grestore
988 gsave
989 600 12108 translate
990 0.6953 1.0000 scale
991 240 fnt31 0 -52(creat)m 
992 grestore
993 gsave
994 960 11868 translate
995 0.6953 1.0000 scale
996 240 fnt31 0 -52(O_CREAT)m
997
998 grestore
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
1002 0.6953 1.0000 scale
1003 240 fnt31 0 -52(write)m
1004
1005 grestore
1006 5744(.)s gsave
1007 600 11628 translate
1008 0.6953 1.0000 scale
1009 240 fnt31 0 -52(exclusive)m 
1010 grestore
1011 gsave
1012 600 11388 translate
1013 0.6953 1.0000 scale
1014 240 fnt31 0 -52(excl)m
1015
1016 grestore
1017 gsave
1018 960 11148 translate
1019 0.6953 1.0000 scale
1020 240 fnt31 0 -52(O_EXCL)m 
1021 grestore
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
1026 0.6953 1.0000 scale
1027 240 fnt31 0 -52(write)m 
1028 grestore
1029 5833(and)s gsave
1030 6237 11148 translate
1031 0.6953 1.0000 scale
1032 240 fnt31
1033 0 -52(create)m 
1034 grestore
1035 6837(.)s 6941(May)s 7434(not)s 7800(be)s
1036 8082(used)s 8579(with)s gsave
1037 960 10908 translate
1038 0.6953 1.0000 scale
1039 240 fnt31 0 -52(truncate)m 
1040 grestore
1041 1761 10854(.)m
1042 gsave
1043 600 10668 translate
1044 0.6953 1.0000 scale
1045 240 fnt31 0 -52(truncate)m 
1046 grestore
1047 gsave
1048 600 10428 translate
1049 0.6953 1.0000 scale
1050 240 fnt31 0 -52(trunc)m 
1051 grestore
1052 gsave
1053 960 10188 translate
1054 0.6953 1.0000 scale
1055 240 fnt31
1056 0 -52(O_TRUNC)m 
1057 grestore
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
1061 0.6953 1.0000 scale
1062 240 fnt31
1063 0 -52(write)m 
1064 grestore
1065 5543(.)s 5647(May)s 6140(not)s 6506(be)s
1066 6788(used)s 7285(with)s gsave
1067 7767 10188 translate
1068 0.6953 1.0000 scale
1069 240 fnt31 0 -52(exclusive)m 
1070 grestore
1071 8668(.)s
1072 gsave
1073 600 9948 translate
1074 0.6953 1.0000 scale
1075 240 fnt31 0 -52(append)m 
1076 grestore
1077 gsave
1078 960 9708 translate
1079 0.6953 1.0000 scale
1080 240 fnt31 0 -52(O_APPEND)m 
1081 grestore
1082 1761 9654(:)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
1085 5800 9708 translate
1086 0.6953 1.0000 scale
1087 240 fnt31 0 -52(write)m
1088
1089 grestore
1090 6360(\(b)s 4(ut)k 6801(not)s gsave
1091 7167 9708 translate
1092 0.6953 1.0000 scale
1093 240 fnt31 0 -52(create)m
1094
1095 grestore
1096 7767(\).)s gsave
1097 600 9468 translate
1098 0.6953 1.0000 scale
1099 240 fnt31 0 -52(sync)m 
1100 grestore
1101 gsave
1102 960 9228 translate
1103 0.6953 1.0000 scale
1104 240 fnt31 0 -52(O_SYNC)m
1105
1106 grestore
1107 1560 9174(:)m 1666(Do)s 2012(writes)s 2646(synchronously)s 15(.)k
1108 4132(Implies)s gsave
1109 4899 9228 translate
1110 0.6953 1.0000 scale
1111 240 fnt31 0 -52(write)m 
1112 grestore
1113 5399(.)s gsave
1114 600 8988 translate
1115 0.6953 1.0000 scale
1116 240 fnt31
1117 0 -52(wait)m 
1118 grestore
1119 gsave
1120 600 8748 translate
1121 0.6953 1.0000 scale
1122 240 fnt31 0 -52(nowait)m 
1123 grestore
1124 gsave
1125 600 8508 translate
1126 0.6953 1.0000 scale
1127 240 fnt31 0 -52(close)m
1128
1129 grestore
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
1136 600 7788 translate
1137 0.6953 1.0000 scale
1138 240 fnt31 0 -52(fd)m
1139
1140 grestore
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
1145 8112 7548 translate
1146 0.6953 1.0000 scale
1147 240 fnt31
1148 0 -52(read)m 
1149 grestore
1150 8572(and)s gsave
1151 960 7307 translate
1152 0.6953 1.0000 scale
1153 240 fnt31 0 -52(write)m 
1154 grestore
1155 1520 7253(must)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
1160 960 7067 translate
1161 0.6953 1.0000 scale
1162 240 fnt31 0 -52(stdin)m 
1163 grestore
1164 1460 7013(,)m
1165 gsave
1166 1567 7067 translate
1167 0.6953 1.0000 scale
1168 240 fnt31 0 -52(stdout)m 
1169 grestore
1170 2227(or)s gsave
1171 2486 7067 translate
1172 0.6953 1.0000 scale
1173 240 fnt31 0 -52(stderr)m
1174
1175 grestore
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
1180 3152 6802 translate
1181 0.6953 1.0000 scale
1182 240 fnt31 0 -52(read)m
1183
1184 grestore
1185 3602(or)s gsave
1186 3851 6802 translate
1187 0.6953 1.0000 scale
1188 240 fnt31 0 -52(write)m 
1189 grestore
1190 4401(are)s 4738(used)s
1191 5226(it)s 5408(is)s 5608(as)s 5848(if)s gsave
1192 6055 6802 translate
1193 0.6953 1.0000 scale
1194 240 fnt31
1195 0 -52(write)m 
1196 grestore
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
1202 962 6322 translate
1203 0.6953 1.0000 scale
1204 240 fnt31 0 -52(stdin)m 
1205 grestore
1206 1462(\))s 1590(it)s
1207 1782(is)s 1992(as)s 2242(if)s gsave
1208 2459 6322 translate
1209 0.6953 1.0000 scale
1210 240 fnt31 0 -52(overwrite)m
1211
1212 grestore
1213 3420(had)s 3824(been)s 4333(speci\207ed)s 5241(\(or)s gsave
1214 5579 6322 translate
1215 0.6953 1.0000 scale
1216 240 fnt31
1217 0 -52(write)m 
1218 grestore
1219 6139(if)s 6356(only)s gsave
1220 6836 6322 translate
1221 0.6953 1.0000 scale
1222 240 fnt31 0 -52(fd)m
1223
1224 grestore
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
1227 2283 6082 translate
1228 0.6953 1.0000 scale
1229 240 fnt31 0 -52(O_NOCTTY)m
1230
1231 grestore
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
1241 2167(If)s gsave
1242 2396 5362 translate
1243 0.6953 1.0000 scale
1244 240 fnt31 0 -52(wait)m 
1245 grestore
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
1268 8566 4161 translate
1269 0.6953 1.0000 scale
1270 240 fnt31
1271 0 -52(close)m 
1272 grestore
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
1277 744 3681 translate
1278 0.6953 1.0000 scale
1279 240 fnt31 0 -52(cat)m
1280
1281 grestore
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
1284 gsave
1285 5182 3681 translate
1286 0.6953 1.0000 scale
1287 240 fnt31 0 -52(SIGPIPE)m 
1288 grestore
1289 5935(\(or)s gsave
1290 6265 3681 translate
1291 0.6953 1.0000 scale
1292 240 fnt31 0 -52(EPIPE)m
1293
1294 grestore
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
1301 1485 3201 translate
1302 0.6953 1.0000 scale
1303 240 fnt31 0 -52(nowait)m 
1304 grestore
1305 2145(is)s
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
1319 2283 2241 translate
1320 0.6953 1.0000 scale
1321 240 fnt31 0 -52(\211\211signals)m
1322 1440(stdout)s 
1323 grestore
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
1330 gsave
1331 8656 2001 translate
1332 0.6953 1.0000 scale
1333 240 fnt31 0 -52(wait)m 
1334 grestore
1335 480 1707(for)m 818(writing)s 1561(\207le)s
1336 1922(descriptors)s 3021(and)s gsave
1337 3425 1761 translate
1338 0.6953 1.0000 scale
1339 240 fnt31 0 -52(close)m 
1340 grestore
1341 3985(for)s
1342 4323(reading)s 5093(ones.)s gsave
1343 120 1367 translate
1344 0.6953 1.0000 scale
1345 240 fnt31 0 -52(\211w)m gsave
1346 288 0 translate
1347 1.4219 1.0000 scale
1348 240 fnt83
1349 0 -52(fd)m 
1350 grestore
1351 561(=)s gsave
1352 705 0 translate
1353 1.4219 1.0000 scale
1354 240 fnt83 0 -52(action)m 
1355 grestore
1356
1357 grestore
1358 gsave
1359 120 1127 translate
1360 0.6953 1.0000 scale
1361 240 fnt31
1362 0 -52(\211\211fdwait)m gsave
1363 1152 0 translate
1364 1.4219 1.0000 scale
1365 240 fnt83 0 -52(fd)m 
1366 grestore
1367 1425(=)s gsave
1368 1569 0 translate
1369 1.4219 1.0000 scale
1370 240 fnt83
1371 0 -52(action)m 
1372 grestore
1373
1374 grestore
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
1380 8611(1.0.1)s 
1381 grestore
1382
1383 grestore
1384
1385 pgsave restore
1386 showpage
1387
1388 %%Page: 6 6
1389 %%BeginPageSetup
1390 %%PageResources: font Times-Roman
1391 %%+ font Times-Bold
1392 %%+ font Courier-Bold
1393 %%+ font Times-Italic
1394 /pgsave save def
1395 0.0500 dup scale 10 setlinewidth
1396 %%EndPageSetup
1397 gsave
1398 0 0 translate
1399 240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic
1400 gsave
1401 LoutPageSet
1402 grestore
1403 gsave
1404 0 16840 translate
1405 0.0000 rotate
1406
1407 grestore
1408
1409 grestore
1410 gsave
1411 0 16840 translate
1412 0.0000 rotate
1413 gsave
1414 1417 -15423 translate
1415 240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic
1416 gsave
1417 0 LoutMargSet
1418 grestore
1419 240 fnt84 0 13842(6)m gsave
1420 480 13305 translate
1421 0.6953 1.0000 scale
1422 240 fnt31 0 -52(wait)m 
1423 grestore
1424 240 fnt82
1425 880 13251(,)m gsave
1426 981 13305 translate
1427 0.6953 1.0000 scale
1428 240 fnt31 0 -52(nowait)m 
1429 grestore
1430 1634(or)s gsave
1431 1886 13305 translate
1432 0.6953 1.0000 scale
1433 240 fnt31
1434 0 -52(close)m 
1435 grestore
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
1443 0.6953 1.0000 scale
1444 240 fnt31 0 -52(\211\211file)m
1445
1446 grestore
1447 7232(or)s gsave
1448 7491 13065 translate
1449 0.6953 1.0000 scale
1450 240 fnt31 0 -52(\211\211fdwait)m 
1451 grestore
1452 8352(option)s 480 12771(-)m
1453 608(e)s 6(v)k 3(en)k 1108(by)s 1402(a)s
1454 gsave
1455 1568 12825 translate
1456 0.6953 1.0000 scale
1457 240 fnt31 0 -52(\211\211file)m 
1458 grestore
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
1464 120 12201 translate
1465 0.6953 1.0000 scale
1466 240 fnt31 0 -52(\211D)m
1467 gsave
1468 288 0 translate
1469 1.4219 1.0000 scale
1470 240 fnt83 0 -52(name)m 
1471 grestore
1472 1016(=)s gsave
1473 1160 0 translate
1474 1.4219 1.0000 scale
1475 240 fnt83 0 -52(value)m
1476
1477 grestore
1478
1479 grestore
1480 gsave
1481 120 11961 translate
1482 0.6953 1.0000 scale
1483 240 fnt31 0 -52(\211\211defvar)m gsave
1484 1296 0 translate
1485 1.4219 1.0000 scale
1486 240 fnt83 0 -52(name)m 
1487 grestore
1488 2024(=)s
1489 gsave
1490 2168 0 translate
1491 1.4219 1.0000 scale
1492 240 fnt83 0 -52(value)m 
1493 grestore
1494
1495 grestore
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
1505 gsave
1506 4998 11481 translate
1507 0.6953 1.0000 scale
1508 240 fnt31 0 -52(u\211)m gsave
1509 288 0 translate
1510 1.4219 1.0000 scale
1511 240 fnt83 0 -52(name)m 
1512 grestore
1513
1514 grestore
1515 5764(and)s
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
1519 gsave
1520 2402 11241 translate
1521 0.6953 1.0000 scale
1522 240 fnt31 0 -52(USERV_U_)m gsave
1523 1152 0 translate
1524 1.4219 1.0000 scale
1525 240 fnt83 0 -52(name)m 
1526 grestore
1527
1528 grestore
1529 3709(.)s
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
1540 gsave
1541 120 10416 translate
1542 0.6953 1.0000 scale
1543 240 fnt31 0 -52(\211t)m gsave
1544 432 0 translate
1545 1.4219 1.0000 scale
1546 240 fnt83 0 -52(seconds)m 
1547 grestore
1548
1549 grestore
1550 gsave
1551 120 10176 translate
1552 0.6953 1.0000 scale
1553 240 fnt31
1554 0 -52(\211\211timeout)m gsave
1555 1440 0 translate
1556 1.4219 1.0000 scale
1557 240 fnt83 0 -52(seconds)m 
1558 grestore
1559
1560 grestore
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
1573 120 9061 translate
1574 0.6953 1.0000 scale
1575 240 fnt31 0 -52(\211S)m 
1576 grestore
1577 240 fnt83
1578 380 9009(method)m gsave
1579 120 8821 translate
1580 0.6953 1.0000 scale
1581 240 fnt31 0 -52(\211\211signals)m 
1582 grestore
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
1590 3203 8340 translate
1591 0.6953 1.0000 scale
1592 240 fnt31 0 -52(_exit)m 
1593 grestore
1594 3703(,)s 3810(so)s
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
1600 7676(the)s gsave
1601 8008 8100 translate
1602 0.6953 1.0000 scale
1603 240 fnt31 0 -52(wait)m 
1604 grestore
1605 8451(f)s 2(amily)k
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
1618 8654(254.)s gsave
1619 600 6898 translate
1620 0.6953 1.0000 scale
1621 240 fnt31 0 -52(number)m 
1622 grestore
1623 gsave
1624 600 6658 translate
1625 0.6953 1.0000 scale
1626 240 fnt31 0 -52(number\211nocore)m
1627
1628 grestore
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
1633 2359(If)s gsave
1634 2589 6178 translate
1635 0.6953 1.0000 scale
1636 240 fnt31 0 -52(number)m 
1637 grestore
1638 3249(is)s 3459(used)s
1639 3956(rather)s 4572(than)s gsave
1640 5041 6178 translate
1641 0.6953 1.0000 scale
1642 240 fnt31 0 -52(number\211nocore)m 
1643 grestore
1644 6402(then)s
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
1647 3602 5938 translate
1648 0.6953 1.0000 scale
1649 240 fnt31
1650 0 -52(number)m 
1651 grestore
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
1655 gsave
1656 600 5458 translate
1657 0.6953 1.0000 scale
1658 240 fnt31 0 -52(highbit)m 
1659 grestore
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
1668 600 4738 translate
1669 0.6953 1.0000 scale
1670 240 fnt31 0 -52(stdout)m
1671
1672 grestore
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
1708 120 1730 translate
1709 0.6953 1.0000 scale
1710 240 fnt31 0 -52(\211H)m 
1711 grestore
1712 gsave
1713 120 1490 translate
1714 0.6953 1.0000 scale
1715 240 fnt31
1716 0 -52(\211\211hidecwd)m 
1717 grestore
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 
1725 grestore
1726
1727 grestore
1728
1729 pgsave restore
1730 showpage
1731
1732 %%Page: 7 7
1733 %%BeginPageSetup
1734 %%PageResources: font Times-Roman
1735 %%+ font Times-Bold
1736 %%+ font Courier-Bold
1737 %%+ font Times-Italic
1738 /pgsave save def
1739 0.0500 dup scale 10 setlinewidth
1740 %%EndPageSetup
1741 gsave
1742 0 0 translate
1743 240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic
1744 gsave
1745 LoutPageSet
1746 grestore
1747 gsave
1748 0 16840 translate
1749 0.0000 rotate
1750
1751 grestore
1752
1753 grestore
1754 gsave
1755 0 16840 translate
1756 0.0000 rotate
1757 gsave
1758 1417 -15423 translate
1759 240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic
1760 gsave
1761 1 LoutMargSet
1762 grestore
1763 240 fnt84 8951 13844(7)m gsave
1764 120 13337 translate
1765 0.6953 1.0000 scale
1766 240 fnt31 0 -52(\211P)m 
1767 grestore
1768 gsave
1769 120 13097 translate
1770 0.6953 1.0000 scale
1771 240 fnt31
1772 0 -52(\211\211sigpipe)m 
1773 grestore
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
1776 4509(a)s gsave
1777 4665 12857 translate
1778 0.6953 1.0000 scale
1779 240 fnt31 0 -52(SIGPIPE)m 
1780 grestore
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
1792 0.6953 1.0000 scale
1793 240 fnt31
1794 0 -52(stdout)m 
1795 grestore
1796 8830(is)s 480 12083(in)m 723(use.)s gsave
1797 120 11793 translate
1798 0.6953 1.0000 scale
1799 240 fnt31
1800 0 -52(\211h)m 
1801 grestore
1802 gsave
1803 120 11553 translate
1804 0.6953 1.0000 scale
1805 240 fnt31 0 -52(\211\211help)m 
1806 grestore
1807 gsave
1808 120 11313 translate
1809 0.6953 1.0000 scale
1810 240 fnt31 0 -52(\211\211copyright)m
1811
1812 grestore
1813 gsave
1814 480 11073 translate
1815 0.6953 1.0000 scale
1816 240 fnt31 0 -52(\211h)m 
1817 grestore
1818 740 11019(or)m gsave
1819 999 11073 translate
1820 0.6953 1.0000 scale
1821 240 fnt31 0 -52(\211\211help)m
1822
1823 grestore
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
1827 0.6953 1.0000 scale
1828 240 fnt31 0 -52(\211\211copyright)m 
1829 grestore
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
1834 xsize 0 rlineto
1835 0 0.1 ft rlineto
1836 xsize neg 0 rlineto
1837 closepath fill
1838 grestore
1839 320 fnt84 0 66(2.2.)m
1840 628(Security-o)s 3(v)k 3(erriding)k 3373(options)s 
1841 grestore
1842 0 9187(There)m
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
1853 gsave
1854 120 8353 translate
1855 0.6953 1.0000 scale
1856 240 fnt31 0 -52(\211\211override)m gsave
1857 1584 0 translate
1858 1.4219 1.0000 scale
1859 240 fnt83 0 -52(con\207gur)m 3(ation\211data)k
1860
1861 grestore
1862
1863 grestore
1864 gsave
1865 120 8113 translate
1866 0.6953 1.0000 scale
1867 240 fnt31 0 -52(\211\211override\211file)m gsave
1868 2304 0 translate
1869 1.4219 1.0000 scale
1870 240 fnt83 0 -52(\207lename)m 
1871 grestore
1872
1873 grestore
1874 480 7819(Do)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
1896 120 6326 translate
1897 0.6953 1.0000 scale
1898 240 fnt31 0 -52(\211\211spoof\211user)m
1899 gsave
1900 1872 0 translate
1901 1.4219 1.0000 scale
1902 240 fnt83 0 -52(user)m 
1903 grestore
1904
1905 grestore
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
1917 6411 5606 translate
1918 0.6953 1.0000 scale
1919 240 fnt31 0 -52(\211\211spoof\211user)m
1920
1921 grestore
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
1926 6636 5366 translate
1927 0.6953 1.0000 scale
1928 240 fnt31
1929 0 -52(\211)m 
1930 grestore
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 
1936 grestore
1937
1938 grestore
1939
1940 pgsave restore
1941 showpage
1942
1943 %%Page: 8 8
1944 %%BeginPageSetup
1945 %%PageResources: font Times-Roman
1946 %%+ font Times-Bold
1947 %%+ font Courier-Bold
1948 /pgsave save def
1949 0.0500 dup scale 10 setlinewidth
1950 %%EndPageSetup
1951 gsave
1952 0 0 translate
1953 240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic
1954 gsave
1955 LoutPageSet
1956 grestore
1957 gsave
1958 0 16840 translate
1959 0.0000 rotate
1960
1961 grestore
1962
1963 grestore
1964 gsave
1965 0 16840 translate
1966 0.0000 rotate
1967 gsave
1968 1417 -15423 translate
1969 240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic
1970 gsave
1971 0 LoutMargSet
1972 grestore
1973 240 fnt84 0 13842(8)m gsave
1974 0 12726 translate
1975 240 fnt82 9066 688 0 688 240 240 60 LoutGraphic
1976 gsave
1977 newpath 0 ysize 0.3 ft sub moveto
1978 xsize 0 rlineto
1979 0 0.2 ft rlineto
1980 xsize neg 0 rlineto
1981 closepath fill
1982 grestore
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 
1986 grestore
1987 240 fnt82
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
2012 gsave
2013 1773 10301 translate
2014 0.6953 1.0000 scale
2015 240 fnt31 0 -52(init)m 
2016 grestore
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
2021 2653(a)s gsave
2022 2819 10061 translate
2023 0.6953 1.0000 scale
2024 240 fnt31 0 -52(SIGPIPE)m 
2025 grestore
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
2030 0.6953 1.0000 scale
2031 240 fnt31
2032 0 -52(SIGHUP)m 
2033 grestore
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
2037 xsize 0 rlineto
2038 0 0.1 ft rlineto
2039 xsize neg 0 rlineto
2040 closepath fill
2041 grestore
2042 320 fnt84 0 66(3.1.)m 628(File)s
2043 1216(descriptors)s 
2044 grestore
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
2049 2318 8095 translate
2050 0.6953 1.0000 scale
2051 240 fnt31
2052 0 -52(/dev/null)m 
2053 grestore
2054 3219(.)s 3322(The)s gsave
2055 3750 8095 translate
2056 0.6953 1.0000 scale
2057 240 fnt31 0 -52(userv)m
2058
2059 grestore
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
2071 4760 7207 translate
2072 0.6953 1.0000 scale
2073 240 fnt31 0 -52(SIGPIPE)m
2074
2075 grestore
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
2078 gsave
2079 1548 6967 translate
2080 0.6953 1.0000 scale
2081 240 fnt31 0 -52(EOF)m 
2082 grestore
2083 1908(if)s 2125(the)s 2473(client-side)s
2084 3523(\207le)s 3884(descriptor)s 4899(gets)s gsave
2085 5335 6967 translate
2086 0.6953 1.0000 scale
2087 240 fnt31 0 -52(EOF)m
2088
2089 grestore
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
2095 1441 6319 translate
2096 0.6953 1.0000 scale
2097 240 fnt31
2098 0 -52(SIGPIPE)m 
2099 grestore
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
2124 352(a)s gsave
2125 518 4471 translate
2126 0.6953 1.0000 scale
2127 240 fnt31 0 -52(SIGPIPE)m 
2128 grestore
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
2141 950 3343 translate
2142 0.6953 1.0000 scale
2143 240 fnt31 0 -52(SIGPIPE)m
2144
2145 grestore
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
2151 4013 2695 translate
2152 0.6953 1.0000 scale
2153 240 fnt31 0 -52(disconnect\211hup)m
2154
2155 grestore
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
2173 6189 1158 translate
2174 0.6953 1.0000 scale
2175 240 fnt31 0 -52(wait)m 
2176 grestore
2177 6589(,)s
2178 gsave
2179 6696 1158 translate
2180 0.6953 1.0000 scale
2181 240 fnt31 0 -52(nowait)m 
2182 grestore
2183 7356(or)s gsave
2184 7615 1158 translate
2185 0.6953 1.0000 scale
2186 240 fnt31 0 -52(close)m
2187
2188 grestore
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 
2195 grestore
2196
2197 grestore
2198
2199 pgsave restore
2200 showpage
2201
2202 %%Page: 9 9
2203 %%BeginPageSetup
2204 %%PageResources: font Times-Roman
2205 %%+ font Times-Bold
2206 %%+ font Courier-Bold
2207 %%+ font Times-Italic
2208 /pgsave save def
2209 0.0500 dup scale 10 setlinewidth
2210 %%EndPageSetup
2211 gsave
2212 0 0 translate
2213 240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic
2214 gsave
2215 LoutPageSet
2216 grestore
2217 gsave
2218 0 16840 translate
2219 0.0000 rotate
2220
2221 grestore
2222
2223 grestore
2224 gsave
2225 0 16840 translate
2226 0.0000 rotate
2227 gsave
2228 1417 -15423 translate
2229 240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic
2230 gsave
2231 1 LoutMargSet
2232 grestore
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
2242 0.6953 1.0000 scale
2243 240 fnt31 0 -52(SIGHUP)m 
2244 grestore
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
2250 xsize 0 rlineto
2251 0 0.1 ft rlineto
2252 xsize neg 0 rlineto
2253 closepath fill
2254 grestore
2255 320 fnt84 0 5(3.2.)m
2256 628(En)s 12(vir)k 5(onment)k 
2257 grestore
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
2261 gsave
2262 120 11160 translate
2263 0.6953 1.0000 scale
2264 240 fnt31 0 -52(USERV_USER)m 
2265 grestore
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
2270 0.6953 1.0000 scale
2271 240 fnt31 0 -52(LOGNAME)m 
2272 grestore
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
2276 gsave
2277 480 10680 translate
2278 0.6953 1.0000 scale
2279 240 fnt31 0 -52(USER)m 
2280 grestore
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
2294 0.6953 1.0000 scale
2295 240 fnt31 0 -52(LOGNAME)m 
2296 grestore
2297 8747(nor)s gsave
2298 480 9960 translate
2299 0.6953 1.0000 scale
2300 240 fnt31
2301 0 -52(USER)m 
2302 grestore
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
2310 120 9480 translate
2311 0.6953 1.0000 scale
2312 240 fnt31
2313 0 -52(USERV_UID)m 
2314 grestore
2315 480 9186(The)m 908(uid)s 1272(of)s 1543(the)s
2316 1891(calling)s 2594(process.)s gsave
2317 120 9000 translate
2318 0.6953 1.0000 scale
2319 240 fnt31 0 -52(USERV_GID)m 
2320 grestore
2321 480 8706(The)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
2328 120 8280 translate
2329 0.6953 1.0000 scale
2330 240 fnt31 0 -52(USERV_GROUP)m 
2331 grestore
2332 480 7986(The)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
2337 8010 8040 translate
2338 0.6953 1.0000 scale
2339 240 fnt31 0 -52(USERV_GID)m 
2340 grestore
2341 8911(.)s
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
2347 gsave
2348 120 7320 translate
2349 0.6953 1.0000 scale
2350 240 fnt31 0 -52(USERV_CWD)m 
2351 grestore
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
2358 4732 6840 translate
2359 0.6953 1.0000 scale
2360 240 fnt31 0 -52(\211\211hidecwd)m 
2361 grestore
2362 5692(\210ag)s
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
2367 gsave
2368 120 6360 translate
2369 0.6953 1.0000 scale
2370 240 fnt31 0 -52(USERV_SERVICE)m 
2371 grestore
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
2374 gsave
2375 120 5880 translate
2376 0.6953 1.0000 scale
2377 240 fnt31 0 -52(USERV_U_)m gsave
2378 1152 0 translate
2379 1.4219 1.0000 scale
2380 240 fnt83 0 -52(name)m 
2381 grestore
2382
2383 grestore
2384 480 5586(The)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
2388 gsave
2389 0 5377 translate
2390 0.6953 1.0000 scale
2391 240 fnt31 0 -52(HOME)m 
2392 grestore
2393 400 5323(,)m gsave
2394 507 5377 translate
2395 0.6953 1.0000 scale
2396 240 fnt31 0 -52(PATH)m
2397
2398 grestore
2399 907(,)s gsave
2400 1014 5377 translate
2401 0.6953 1.0000 scale
2402 240 fnt31 0 -52(SHELL)m 
2403 grestore
2404 1514(,)s gsave
2405 1621 5377 translate
2406 0.6953 1.0000 scale
2407 240 fnt31
2408 0 -52(LOGNAME)m 
2409 grestore
2410 2381(and)s gsave
2411 2785 5377 translate
2412 0.6953 1.0000 scale
2413 240 fnt31 0 -52(USER)m 
2414 grestore
2415 3245(will)s
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 
2420 grestore
2421
2422 grestore
2423
2424 pgsave restore
2425 showpage
2426
2427 %%Page: 10 10
2428 %%BeginPageSetup
2429 %%PageResources: font Times-Roman
2430 %%+ font Times-Bold
2431 %%+ font Times-Italic
2432 %%+ font Courier-Bold
2433 /pgsave save def
2434 0.0500 dup scale 10 setlinewidth
2435 %%EndPageSetup
2436 gsave
2437 0 0 translate
2438 240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic
2439 gsave
2440 LoutPageSet
2441 grestore
2442 gsave
2443 0 16840 translate
2444 0.0000 rotate
2445
2446 grestore
2447
2448 grestore
2449 gsave
2450 0 16840 translate
2451 0.0000 rotate
2452 gsave
2453 1417 -15423 translate
2454 240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic
2455 gsave
2456 0 LoutMargSet
2457 grestore
2458 240 fnt84 0 13842(10)m gsave
2459 0 12725 translate
2460 240 fnt82 9066 689 0 689 240 240 60 LoutGraphic
2461 gsave
2462 newpath 0 ysize 0.3 ft sub moveto
2463 xsize 0 rlineto
2464 0 0.2 ft rlineto
2465 xsize neg 0 rlineto
2466 closepath fill
2467 grestore
2468 340 fnt84 0 70(4.)m 412(Ser)s 3(vice-side)k
2469 2219(con\207guration)s 
2470 grestore
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
2500 gsave
2501 2569 9893 translate
2502 0.6953 1.0000 scale
2503 240 fnt31 0 -52(/etc/userv/system.default)m 
2504 grestore
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
2509 gsave
2510 3771 9653 translate
2511 0.6953 1.0000 scale
2512 240 fnt31 0 -52(~/.userv/rc)m 
2513 grestore
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
2517 gsave
2518 0 9413 translate
2519 0.6953 1.0000 scale
2520 240 fnt31 0 -52(/etc/shells)m 
2521 grestore
2522 1101 9359(.)m 1205(Finally)s 1936(it)s
2523 2128(will)s 2554(read)s gsave
2524 3023 9413 translate
2525 0.6953 1.0000 scale
2526 240 fnt31 0 -52(/etc/userv/system.override)m 
2527 grestore
2528 5626(.)s
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
2537 xsize 0 rlineto
2538 0 0.1 ft rlineto
2539 xsize neg 0 rlineto
2540 closepath fill
2541 grestore
2542 320 fnt84 0 66(4.1.)m 628(Con\207guration)s 2618(\207le)s 3100(syntax)s
2543
2544 grestore
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
2550 1560 7039 translate
2551 0.6953 1.0000 scale
2552 240 fnt31 0 -52(#)m
2553
2554 grestore
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
2566 120 6079 translate
2567 0.6953 1.0000 scale
2568 240 fnt31
2569 0 -52(\\n)m 
2570 grestore
2571 480 5785(ne)m 6(wline)k gsave
2572 120 5599 translate
2573 0.6953 1.0000 scale
2574 240 fnt31 0 -52(\\t)m
2575
2576 grestore
2577 480 5305(tab)m gsave
2578 120 5119 translate
2579 0.6953 1.0000 scale
2580 240 fnt31 0 -52(\\r)m 
2581 grestore
2582 480 4825(carriage)m 1304(return)s
2583 gsave
2584 120 4639 translate
2585 0.6953 1.0000 scale
2586 240 fnt31 0 -52(\\)m gsave
2587 144 0 translate
2588 1.4219 1.0000 scale
2589 240 fnt83 0 -52(OOO)m 
2590 grestore
2591
2592 grestore
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
2596 120 4159 translate
2597 0.6953 1.0000 scale
2598 240 fnt31 0 -52(\\x)m gsave
2599 288 0 translate
2600 1.4219 1.0000 scale
2601 240 fnt83 0 -52(XX)m
2602
2603 grestore
2604
2605 grestore
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
2608 120 3679 translate
2609 0.6953 1.0000 scale
2610 240 fnt31
2611 0 -52(\\)m gsave
2612 144 0 translate
2613 1.4219 1.0000 scale
2614 240 fnt83 0 -52(punctuation)m 
2615 grestore
2616
2617 grestore
2618 240 fnt82 480 3385(literal)m
2619 1090(punctuation)s 2277(character)s 3211(\(e)s 3(g)k gsave
2620 3566 3439 translate
2621 0.6953 1.0000 scale
2622 240 fnt31
2623 0 -52(\\\\)m 
2624 grestore
2625 3766(,)s gsave
2626 3873 3439 translate
2627 0.6953 1.0000 scale
2628 240 fnt31 0 -52(\\")m 
2629 grestore
2630 4073(\))s
2631 gsave
2632 120 3198 translate
2633 0.6953 1.0000 scale
2634 240 fnt31 0 -52(\\)m gsave
2635 144 0 translate
2636 1.4219 1.0000 scale
2637 240 fnt83 0 -52(ne)m 3(wline)k
2638
2639 grestore
2640
2641 grestore
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
2651 gsave
2652 7427 2156 translate
2653 0.6953 1.0000 scale
2654 240 fnt31 0 -52(~/)m 
2655 grestore
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
2661 xsize 0 rlineto
2662 0 0.1 ft rlineto
2663 xsize neg 0 rlineto
2664 closepath fill
2665 grestore
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
2668
2669 grestore
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 
2672 grestore
2673
2674 grestore
2675
2676 pgsave restore
2677 showpage
2678
2679 %%Page: 11 11
2680 %%BeginPageSetup
2681 %%PageResources: font Times-Roman
2682 %%+ font Times-Bold
2683 %%+ font Courier-Bold
2684 %%+ font Times-Italic
2685 /pgsave save def
2686 0.0500 dup scale 10 setlinewidth
2687 %%EndPageSetup
2688 gsave
2689 0 0 translate
2690 240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic
2691 gsave
2692 LoutPageSet
2693 grestore
2694 gsave
2695 0 16840 translate
2696 0.0000 rotate
2697
2698 grestore
2699
2700 grestore
2701 gsave
2702 0 16840 translate
2703 0.0000 rotate
2704 gsave
2705 1417 -15423 translate
2706 240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic
2707 gsave
2708 1 LoutMargSet
2709 grestore
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
2714 gsave
2715 120 12342 translate
2716 0.6953 1.0000 scale
2717 240 fnt31 0 -52(cd)m gsave
2718 432 0 translate
2719 1.4219 1.0000 scale
2720 240 fnt83 0 -52(pathname)m 
2721 grestore
2722
2723 grestore
2724 480 12048(Change)m
2725 1268(directory)s 2184(in)s 2427(the)s 2775(service)s 3507(program.)s
2726 gsave
2727 4421 12102 translate
2728 0.6953 1.0000 scale
2729 240 fnt31 0 -52(cd)m 
2730 grestore
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
2734 2316(to.)s gsave
2735 2666 11862 translate
2736 0.6953 1.0000 scale
2737 240 fnt31 0 -52(cd)m 
2738 grestore
2739 2926(should)s 3623(not)s
2740 3989(be)s 4271(used)s 4768(between)s gsave
2741 5622 11862 translate
2742 0.6953 1.0000 scale
2743 240 fnt31 0 -52(execute\211from\211directory)m
2744
2745 grestore
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
2755 120 10748 translate
2756 0.6953 1.0000 scale
2757 240 fnt31 0 -52(eof)m 
2758 grestore
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
2765 0.6953 1.0000 scale
2766 240 fnt31 0 -52(if)m
2767
2768 grestore
2769 2505(,)s gsave
2770 2612 10268 translate
2771 0.6953 1.0000 scale
2772 240 fnt31 0 -52(catch\211quit)m 
2773 grestore
2774 3673(or)s gsave
2775 3932 10268 translate
2776 0.6953 1.0000 scale
2777 240 fnt31
2778 0 -52(errors\211push)m 
2779 grestore
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
2785 gsave
2786 480 9788 translate
2787 0.6953 1.0000 scale
2788 240 fnt31 0 -52(eof)m 
2789 grestore
2790 840 9734(to)m 1079(be)s 1361(read.)s
2791 gsave
2792 120 9444 translate
2793 0.6953 1.0000 scale
2794 240 fnt31 0 -52(quit)m 
2795 grestore
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
2799 480 8910(of)m gsave
2800 751 8964 translate
2801 0.6953 1.0000 scale
2802 240 fnt31 0 -52(quit)m 
2803 grestore
2804 1211(is)s 1421(subject)s
2805 2158(to)s 2397(the)s gsave
2806 2745 8964 translate
2807 0.6953 1.0000 scale
2808 240 fnt31 0 -52(catch\211quit)m 
2809 grestore
2810 3806(control)s
2811 4538(construct.)s gsave
2812 120 8570 translate
2813 0.6953 1.0000 scale
2814 240 fnt31 0 -52(include)m gsave
2815 1152 0 translate
2816 1.4219 1.0000 scale
2817 240 fnt83 0 -52(\207lename)m
2818
2819 grestore
2820
2821 grestore
2822 gsave
2823 120 8330 translate
2824 0.6953 1.0000 scale
2825 240 fnt31 0 -52(include\211ifexist)m gsave
2826 2304 0 translate
2827 1.4219 1.0000 scale
2828 240 fnt83 0 -52(\207lename)m 
2829 grestore
2830
2831 grestore
2832 480 8036(Read)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
2840 6923(unless)s gsave
2841 7565 7850 translate
2842 0.6953 1.0000 scale
2843 240 fnt31 0 -52(include\211ifexist)m 
2844 grestore
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
2850 120 7216 translate
2851 0.6953 1.0000 scale
2852 240 fnt31 0 -52(include\211lookup)m gsave
2853 2160 0 translate
2854 1.4219 1.0000 scale
2855 240 fnt83
2856 0 -52(par)m 3(ameter)k 
2857 grestore
2858 gsave
2859 3724 0 translate
2860 1.4219 1.0000 scale
2861 240 fnt83 0 -52(dir)m 8(ectory)k
2862
2863 grestore
2864
2865 grestore
2866 gsave
2867 120 6976 translate
2868 0.6953 1.0000 scale
2869 240 fnt31 0 -52(include\211lookup\211all)m gsave
2870 2736 0 translate
2871 1.4219 1.0000 scale
2872 240 fnt83 0 -52(par)m 3(ameter)k
2873
2874 grestore
2875 gsave
2876 4300 0 translate
2877 1.4219 1.0000 scale
2878 240 fnt83 0 -52(dir)m 8(ectory)k 
2879 grestore
2880
2881 grestore
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
2887 gsave
2888 1870 6496 translate
2889 0.6953 1.0000 scale
2890 240 fnt31 0 -52(if)m 
2891 grestore
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
2898 3487 6256 translate
2899 0.6953 1.0000 scale
2900 240 fnt31 0 -52(include\211lookup)m
2901
2902 grestore
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
2906 962 6016 translate
2907 0.6953 1.0000 scale
2908 240 fnt31 0 -52(include\211lookup\211all)m 
2909 grestore
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
2917 480 5536 translate
2918 0.6953 1.0000 scale
2919 240 fnt31
2920 0 -52(:default)m 
2921 grestore
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
2927 8566 5536 translate
2928 0.6953 1.0000 scale
2929 240 fnt31
2930 0 -52(:none)m 
2931 grestore
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
2935 5029 5296 translate
2936 0.6953 1.0000 scale
2937 240 fnt31 0 -52(:default)m 
2938 grestore
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
2943 2981 5056 translate
2944 0.6953 1.0000 scale
2945 240 fnt31 0 -52(:default)m
2946
2947 grestore
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
2962 8567 4336 translate
2963 0.6953 1.0000 scale
2964 240 fnt31
2965 0 -52(:.)m 
2966 grestore
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
2971 gsave
2972 480 3856 translate
2973 0.6953 1.0000 scale
2974 240 fnt31 0 -52(:\211)m 
2975 grestore
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
2979 6620(with)s gsave
2980 7102 3856 translate
2981 0.6953 1.0000 scale
2982 240 fnt31 0 -52(:empty)m 
2983 grestore
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
2988 120 3222 translate
2989 0.6953 1.0000 scale
2990 240 fnt31
2991 0 -52(include\211directory)m gsave
2992 2592 0 translate
2993 1.4219 1.0000 scale
2994 240 fnt83 0 -52(dir)m 8(ectory)k 
2995 grestore
2996
2997 grestore
2998 480 2928(Read)m
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
3017 120 1628 translate
3018 0.6953 1.0000 scale
3019 240 fnt31 0 -52(error)m gsave
3020 864 0 translate
3021 1.4219 1.0000 scale
3022 240 fnt83 0 -52(te)m 4(xt)k
3023 404(\202)s 
3024 grestore
3025
3026 grestore
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 
3040 grestore
3041
3042 grestore
3043
3044 pgsave restore
3045 showpage
3046
3047 %%Page: 12 12
3048 %%BeginPageSetup
3049 %%PageResources: font Times-Roman
3050 %%+ font Times-Bold
3051 %%+ font Courier-Bold
3052 %%+ font Times-Italic
3053 /pgsave save def
3054 0.0500 dup scale 10 setlinewidth
3055 %%EndPageSetup
3056 gsave
3057 0 0 translate
3058 240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic
3059 gsave
3060 LoutPageSet
3061 grestore
3062 gsave
3063 0 16840 translate
3064 0.0000 rotate
3065
3066 grestore
3067
3068 grestore
3069 gsave
3070 0 16840 translate
3071 0.0000 rotate
3072 gsave
3073 1417 -15423 translate
3074 240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic
3075 gsave
3076 0 LoutMargSet
3077 grestore
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
3088 gsave
3089 120 12434 translate
3090 0.6953 1.0000 scale
3091 240 fnt31 0 -52(message)m gsave
3092 1152 0 translate
3093 1.4219 1.0000 scale
3094 240 fnt83 0 -52(te)m 4(xt)k
3095 404(\202)s 
3096 grestore
3097
3098 grestore
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
3114 gsave
3115 120 10068 translate
3116 0.6953 1.0000 scale
3117 240 fnt31 0 -52(user\211rcfile)m gsave
3118 1728 0 translate
3119 1.4219 1.0000 scale
3120 240 fnt83 0 -52(\207lename)m 
3121 grestore
3122
3123 grestore
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
3128 6627 9828 translate
3129 0.6953 1.0000 scale
3130 240 fnt31
3131 0 -52(~/.userv/rc)m 
3132 grestore
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
3137 7564 9588 translate
3138 0.6953 1.0000 scale
3139 240 fnt31 0 -52(system.default)m
3140
3141 grestore
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
3147 1071 9108 translate
3148 0.6953 1.0000 scale
3149 240 fnt31 0 -52(system.override)m 
3150 grestore
3151 2632(\207le,)s
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
3156 120 8474 translate
3157 0.6953 1.0000 scale
3158 240 fnt31
3159 0 -52(errors\211to\211stderr)m 
3160 grestore
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
3164 gsave
3165 120 7840 translate
3166 0.6953 1.0000 scale
3167 240 fnt31 0 -52(errors\211to\211file)m 
3168 grestore
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
3176 gsave
3177 120 6966 translate
3178 0.6953 1.0000 scale
3179 240 fnt31 0 -52(errors\211to\211syslog)m 
3180 grestore
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
3185 gsave
3186 4215 6726 translate
3187 0.6953 1.0000 scale
3188 240 fnt31 0 -52(syslog)m 
3189 grestore
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
3192 6996 6726 translate
3193 0.6953 1.0000 scale
3194 240 fnt31
3195 0 -52(user)m 
3196 grestore
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
3199 gsave
3200 690 6486 translate
3201 0.6953 1.0000 scale
3202 240 fnt31 0 -52(error)m 
3203 grestore
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
3215 gsave
3216 120 4466 translate
3217 0.6953 1.0000 scale
3218 240 fnt31 0 -52(if)m gsave
3219 432 0 translate
3220 1.4219 1.0000 scale
3221 240 fnt83 0 -52(condition)m 
3222 grestore
3223
3224 grestore
3225 gsave
3226 120 4226 translate
3227 0.6953 1.0000 scale
3228 240 fnt31
3229 0 -52(elif)m gsave
3230 720 0 translate
3231 1.4219 1.0000 scale
3232 240 fnt83 0 -52(condition)m 
3233 grestore
3234
3235 grestore
3236 gsave
3237 120 3986 translate
3238 0.6953 1.0000 scale
3239 240 fnt31 0 -52(else)m
3240
3241 grestore
3242 gsave
3243 120 3746 translate
3244 0.6953 1.0000 scale
3245 240 fnt31 0 -52(fi)m 
3246 grestore
3247 480 3452(Lines)m 1062(follo)s 6(wing)k
3248 gsave
3249 2039 3506 translate
3250 0.6953 1.0000 scale
3251 240 fnt31 0 -52(if)m 
3252 grestore
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
3268 600 2545 translate
3269 0.6953 1.0000 scale
3270 240 fnt31 0 -52(glob)m
3271 gsave
3272 720 0 translate
3273 1.4219 1.0000 scale
3274 240 fnt83 0 -52(par)m 3(ameter)k 
3275 grestore
3276 gsave
3277 2284 0 translate
3278 1.4219 1.0000 scale
3279 240 fnt83 0 -52(glob\211pattern)m
3280
3281 grestore
3282 4178(\202)s 
3283 grestore
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
3290 gsave
3291 600 1825 translate
3292 0.6953 1.0000 scale
3293 240 fnt31 0 -52(range)m gsave
3294 864 0 translate
3295 1.4219 1.0000 scale
3296 240 fnt83 0 -52(par)m 3(ameter)k
3297
3298 grestore
3299 gsave
3300 2428 0 translate
3301 1.4219 1.0000 scale
3302 240 fnt83 0 -52(min)m 
3303 grestore
3304 gsave
3305 3073 0 translate
3306 1.4219 1.0000 scale
3307 240 fnt83 0 -52(max)m 
3308 grestore
3309
3310 grestore
3311 960 1531(The)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
3318 2839 1345 translate
3319 0.6953 1.0000 scale
3320 240 fnt31 0 -52($)m 
3321 grestore
3322 2999(to)s
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
3325 gsave
3326 600 1104 translate
3327 0.6953 1.0000 scale
3328 240 fnt31 0 -52(grep)m gsave
3329 720 0 translate
3330 1.4219 1.0000 scale
3331 240 fnt83 0 -52(par)m 3(ameter)k
3332
3333 grestore
3334 gsave
3335 2284 0 translate
3336 1.4219 1.0000 scale
3337 240 fnt83 0 -52(\207lename)m 
3338 grestore
3339
3340 grestore
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 
3347 grestore
3348
3349 grestore
3350
3351 pgsave restore
3352 showpage
3353
3354 %%Page: 13 13
3355 %%BeginPageSetup
3356 %%PageResources: font Times-Roman
3357 %%+ font Times-Bold
3358 %%+ font Courier-Bold
3359 %%+ font Times-Italic
3360 /pgsave save def
3361 0.0500 dup scale 10 setlinewidth
3362 %%EndPageSetup
3363 gsave
3364 0 0 translate
3365 240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic
3366 gsave
3367 LoutPageSet
3368 grestore
3369 gsave
3370 0 16840 translate
3371 0.0000 rotate
3372
3373 grestore
3374
3375 grestore
3376 gsave
3377 0 16840 translate
3378 0.0000 rotate
3379 gsave
3380 1417 -15423 translate
3381 240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic
3382 gsave
3383 1 LoutMargSet
3384 grestore
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
3391 gsave
3392 600 12824 translate
3393 0.6953 1.0000 scale
3394 240 fnt31 0 -52(!)m gsave
3395 288 0 translate
3396 1.4219 1.0000 scale
3397 240 fnt83 0 -52(condition)m 
3398 grestore
3399
3400 grestore
3401 960 12530(The)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
3405 0.6953 1.0000 scale
3406 240 fnt31
3407 0 -52(&)m 
3408 grestore
3409 2143(and)s gsave
3410 2547 12344 translate
3411 0.6953 1.0000 scale
3412 240 fnt31 0 -52(|)m 
3413 grestore
3414 gsave
3415 1440 11864 translate
3416 0.6953 1.0000 scale
3417 240 fnt31
3418 0 -52(\()m gsave
3419 288 0 translate
3420 1.4219 1.0000 scale
3421 240 fnt83 0 -52(condition)m 
3422 grestore
3423 0 -292(&)m gsave
3424 288 -240 translate
3425 1.4219 1.0000 scale
3426 240 fnt83
3427 0 -52(condition)m 
3428 grestore
3429 0 -532(&)m gsave
3430 288 -480 translate
3431 1.4219 1.0000 scale
3432 240 fnt83 0 -52(condition)m 
3433 grestore
3434 0 -772(\202)m
3435 0 -1012(\))m 
3436 grestore
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
3439 4908(where)s gsave
3440 5548 10652 translate
3441 0.6953 1.0000 scale
3442 240 fnt31 0 -52(|)m 
3443 grestore
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
3453 2006(are:)s gsave
3454 600 9664 translate
3455 0.6953 1.0000 scale
3456 240 fnt31 0 -52(service)m 
3457 grestore
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
3461 600 9184 translate
3462 0.6953 1.0000 scale
3463 240 fnt31 0 -52(calling\211user)m
3464
3465 grestore
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
3469 7225 8944 translate
3470 0.6953 1.0000 scale
3471 240 fnt31
3472 0 -52(USERV_USER)m 
3473 grestore
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
3477 600 8464 translate
3478 0.6953 1.0000 scale
3479 240 fnt31 0 -52(calling\211group)m 
3480 grestore
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
3491 600 7504 translate
3492 0.6953 1.0000 scale
3493 240 fnt31 0 -52(calling\211user\211shell)m 
3494 grestore
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
3500 2431 7024 translate
3501 0.6953 1.0000 scale
3502 240 fnt31 0 -52(USERV_USER)m
3503
3504 grestore
3505 3432(,)s 3539(abo)s 3(v)k 3(e\).)k gsave
3506 600 6784 translate
3507 0.6953 1.0000 scale
3508 240 fnt31
3509 0 -52(service\211user)m 
3510 grestore
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
3516 600 6064 translate
3517 0.6953 1.0000 scale
3518 240 fnt31 0 -52(service\211group)m 
3519 grestore
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
3524 gsave
3525 600 5344 translate
3526 0.6953 1.0000 scale
3527 240 fnt31 0 -52(service\211user\211shell)m 
3528 grestore
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
3532 600 4864 translate
3533 0.6953 1.0000 scale
3534 240 fnt31
3535 0 -52(u\211)m gsave
3536 288 0 translate
3537 1.4219 1.0000 scale
3538 240 fnt83 0 -52(name)m 
3539 grestore
3540
3541 grestore
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
3546 8049 4624 translate
3547 0.6953 1.0000 scale
3548 240 fnt31
3549 0 -52(\211\211defvar)m 
3550 grestore
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
3558 8512(and)s gsave
3559 960 3904 translate
3560 0.6953 1.0000 scale
3561 240 fnt31 0 -52(include\211lookup)m 
3562 grestore
3563 2421 3850(on)m 2718(it)s
3564 2910(will)s 3336(read)s 3805(the)s gsave
3565 4153 3904 translate
3566 0.6953 1.0000 scale
3567 240 fnt31 0 -52(:none)m
3568
3569 grestore
3570 4713(\207le,)s 5125(or)s gsave
3571 5384 3904 translate
3572 0.6953 1.0000 scale
3573 240 fnt31 0 -52(:default)m 
3574 grestore
3575 6245(if)s
3576 gsave
3577 6462 3904 translate
3578 0.6953 1.0000 scale
3579 240 fnt31 0 -52(:none)m 
3580 grestore
3581 7022(is)s 7232(not)s 7598(found.)s
3582 gsave
3583 120 3481 translate
3584 0.6953 1.0000 scale
3585 240 fnt31 0 -52(errors\211push)m 
3586 grestore
3587 240 fnt83 1281 3429(\207lename)m gsave
3588 120 3241 translate
3589 0.6953 1.0000 scale
3590 240 fnt31
3591 0 -52(srorre)m 
3592 grestore
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
3598 2862 2761 translate
3599 0.6953 1.0000 scale
3600 240 fnt31
3601 0 -52(errors\211push)m 
3602 grestore
3603 4023(and)s gsave
3604 4427 2761 translate
3605 0.6953 1.0000 scale
3606 240 fnt31 0 -52(srorre)m 
3607 grestore
3608 5027(.)s
3609 gsave
3610 120 2367 translate
3611 0.6953 1.0000 scale
3612 240 fnt31 0 -52(catch\211quit)m 
3613 grestore
3614 gsave
3615 120 2127 translate
3616 0.6953 1.0000 scale
3617 240 fnt31 0 -52(hctac)m 
3618 grestore
3619 480 1833(An)m 3(y)k
3620 935(use)s 1301(of)s gsave
3621 1563 1887 translate
3622 0.6953 1.0000 scale
3623 240 fnt31 0 -52(quit)m 
3624 grestore
3625 2013(inside)s
3626 gsave
3627 2631 1887 translate
3628 0.6953 1.0000 scale
3629 240 fnt31 0 -52(catch\211quit)m 
3630 grestore
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
3633 gsave
3634 7795 1887 translate
3635 0.6953 1.0000 scale
3636 240 fnt31 0 -52(hctac)m 
3637 grestore
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
3640 gsave
3641 4285 1647 translate
3642 0.6953 1.0000 scale
3643 240 fnt31 0 -52(catch\211quit)m 
3644 grestore
3645 5346(will)s 5772(be)s 6054(considered)s
3646 7148(\207nished)s 7964(if)s 8181(a)s gsave
3647 8347 1647 translate
3648 0.6953 1.0000 scale
3649 240 fnt31 0 -52(quit)m
3650
3651 grestore
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
3654 3541 1407 translate
3655 0.6953 1.0000 scale
3656 240 fnt31 0 -52(catch\211quit)m 
3657 grestore
3658 4602(the)s
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
3661 8770(the)s gsave
3662 480 1167 translate
3663 0.6953 1.0000 scale
3664 240 fnt31 0 -52(reset)m 
3665 grestore
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
3669 5537 1167 translate
3670 0.6953 1.0000 scale
3671 240 fnt31 0 -52(hctac)m 
3672 grestore
3673 6037(.)s
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
3677 4416(the)s gsave
3678 4764 927 translate
3679 0.6953 1.0000 scale
3680 240 fnt31 0 -52(catch\211quit)m 
3681 grestore
3682 5765(,)s 5872(while)s
3683 6459(looking)s 7244(for)s 7582(the)s gsave
3684 7930 927 translate
3685 0.6953 1.0000 scale
3686 240 fnt31 0 -52(hctac)m
3687
3688 grestore
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 
3691 grestore
3692
3693 grestore
3694
3695 pgsave restore
3696 showpage
3697
3698 %%Page: 14 14
3699 %%BeginPageSetup
3700 %%PageResources: font Times-Roman
3701 %%+ font Times-Bold
3702 %%+ font Courier-Bold
3703 %%+ font Times-Italic
3704 /pgsave save def
3705 0.0500 dup scale 10 setlinewidth
3706 %%EndPageSetup
3707 gsave
3708 0 0 translate
3709 240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic
3710 gsave
3711 LoutPageSet
3712 grestore
3713 gsave
3714 0 16840 translate
3715 0.0000 rotate
3716
3717 grestore
3718
3719 grestore
3720 gsave
3721 0 16840 translate
3722 0.0000 rotate
3723 gsave
3724 1417 -15423 translate
3725 240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic
3726 gsave
3727 0 LoutMargSet
3728 grestore
3729 240 fnt84 0 13842(14)m 240 fnt82 480 13254(an)m 763(error)s
3730 1286(or)s gsave
3731 1545 13308 translate
3732 0.6953 1.0000 scale
3733 240 fnt31 0 -52(quit)m 
3734 grestore
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
3750 gsave
3751 120 11181 translate
3752 0.6953 1.0000 scale
3753 240 fnt31 0 -52(reject)m 
3754 grestore
3755 480 10887(Reject)m 1150(the)s 1498(request.)s
3756 gsave
3757 2292 10941 translate
3758 0.6953 1.0000 scale
3759 240 fnt31 0 -52(execute)m 
3760 grestore
3761 2992(,)s gsave
3762 3099 10941 translate
3763 0.6953 1.0000 scale
3764 240 fnt31 0 -52(execute\211from\211directory)m
3765
3766 grestore
3767 5361(and)s gsave
3768 5765 10941 translate
3769 0.6953 1.0000 scale
3770 240 fnt31 0 -52(execute\211from\211path)m 
3771 grestore
3772 7527(will)s 7953(change)s
3773 480 10647(this)m 876(setting.)s gsave
3774 120 10307 translate
3775 0.6953 1.0000 scale
3776 240 fnt31 0 -52(execute)m gsave
3777 1152 0 translate
3778 1.4219 1.0000 scale
3779 240 fnt83
3780 0 -52(pr)m 10(o)k 2(gr)k 3(am)k 
3781 grestore
3782 2461([)s
3783 gsave
3784 2605 0 translate
3785 1.4219 1.0000 scale
3786 240 fnt83 0 -52(ar)m 8(gument)k 
3787 grestore
3788 4048(\202])s 
3789 grestore
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
3796 2411 9827 translate
3797 0.6953 1.0000 scale
3798 240 fnt31
3799 0 -52(no\211suppress\211args)m 
3800 grestore
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
3811 5132(path.)s gsave
3812 120 8953 translate
3813 0.6953 1.0000 scale
3814 240 fnt31 0 -52(execute\211from\211directory)m gsave
3815 3312 0 translate
3816 1.4219 1.0000 scale
3817 240 fnt83 0 -52(pathname)m
3818
3819 grestore
3820 4789([)s gsave
3821 4933 0 translate
3822 1.4219 1.0000 scale
3823 240 fnt83 0 -52(ar)m 8(gument)k 
3824 grestore
3825 6376(\202])s
3826
3827 grestore
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
3863 120 6398 translate
3864 0.6953 1.0000 scale
3865 240 fnt31 0 -52(execute\211from\211path)m 
3866 grestore
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
3870 gsave
3871 5094 6158 translate
3872 0.6953 1.0000 scale
3873 240 fnt31 0 -52(PATH)m 
3874 grestore
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
3878 1649 5917 translate
3879 0.6953 1.0000 scale
3880 240 fnt31
3881 0 -52(/)m 
3882 grestore
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
3887 7730(the)s gsave
3888 8065 5917 translate
3889 0.6953 1.0000 scale
3890 240 fnt31 0 -52(\211\211override)m 
3891 grestore
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
3899 120 5043 translate
3900 0.6953 1.0000 scale
3901 240 fnt31
3902 0 -52(execute\211builtin)m gsave
3903 2304 0 translate
3904 1.4219 1.0000 scale
3905 240 fnt83 0 -52(service\211name)m 
3906 grestore
3907 gsave
3908 4307 0 translate
3909 1.4219 1.0000 scale
3910 240 fnt83 0 -52(service\211ar)m 8(guments)k
3911
3912 grestore
3913
3914 grestore
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
3928 gsave
3929 600 3843 translate
3930 0.6953 1.0000 scale
3931 240 fnt31 0 -52(execute)m 
3932 grestore
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
3937 gsave
3938 600 3123 translate
3939 0.6953 1.0000 scale
3940 240 fnt31 0 -52(environment)m 
3941 grestore
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
3947 gsave
3948 600 2403 translate
3949 0.6953 1.0000 scale
3950 240 fnt31 0 -52(parameter)m gsave
3951 1440 0 translate
3952 1.4219 1.0000 scale
3953 240 fnt83 0 -52(par)m 3(ameter)k
3954
3955 grestore
3956
3957 grestore
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
3961 600 1923 translate
3962 0.6953 1.0000 scale
3963 240 fnt31 0 -52(version)m 
3964 grestore
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
3969 600 1443 translate
3970 0.6953 1.0000 scale
3971 240 fnt31 0 -52(reset)m 
3972 grestore
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
3978 6323 1203 translate
3979 0.6953 1.0000 scale
3980 240 fnt31 0 -52(reset)m
3981
3982 grestore
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
3987 4644 963 translate
3988 0.6953 1.0000 scale
3989 240 fnt31
3990 0 -52(catch\211quit)m 
3991 grestore
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 
3994 grestore
3995
3996 grestore
3997
3998 pgsave restore
3999 showpage
4000
4001 %%Page: 15 15
4002 %%BeginPageSetup
4003 %%PageResources: font Times-Roman
4004 %%+ font Times-Bold
4005 %%+ font Courier-Bold
4006 %%+ font Times-Italic
4007 /pgsave save def
4008 0.0500 dup scale 10 setlinewidth
4009 %%EndPageSetup
4010 gsave
4011 0 0 translate
4012 240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic
4013 gsave
4014 LoutPageSet
4015 grestore
4016 gsave
4017 0 16840 translate
4018 0.0000 rotate
4019
4020 grestore
4021
4022 grestore
4023 gsave
4024 0 16840 translate
4025 0.0000 rotate
4026 gsave
4027 1417 -15423 translate
4028 240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic
4029 gsave
4030 1 LoutMargSet
4031 grestore
4032 240 fnt84 8833 13842(15)m gsave
4033 600 13318 translate
4034 0.6953 1.0000 scale
4035 240 fnt31 0 -52(toplevel)m 
4036 grestore
4037 240 fnt82
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
4044 600 12598 translate
4045 0.6953 1.0000 scale
4046 240 fnt31 0 -52(override)m 
4047 grestore
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
4054 gsave
4055 600 11878 translate
4056 0.6953 1.0000 scale
4057 240 fnt31 0 -52(help)m 
4058 grestore
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
4067 gsave
4068 120 10791 translate
4069 0.6953 1.0000 scale
4070 240 fnt31 0 -52(set\211environment)m 
4071 grestore
4072 gsave
4073 120 10551 translate
4074 0.6953 1.0000 scale
4075 240 fnt31 0 -52(no\211set\211environment)m 
4076 grestore
4077 480 10257(Runs)m
4078 gsave
4079 1024 10311 translate
4080 0.6953 1.0000 scale
4081 240 fnt31 0 -52(/etc/environment)m 
4082 grestore
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
4092 960 9591 translate
4093 0.6953 1.0000 scale
4094 240 fnt31
4095 0 -52(.../program)m 1728(arg)s 2304(arg)s 2880(arg)s 3456(\202)s
4096
4097 grestore
4098 480 9346(as)m gsave
4099 960 9160 translate
4100 0.6953 1.0000 scale
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 
4104 grestore
4105 gsave
4106 480 8916 translate
4107 0.6953 1.0000 scale
4108 240 fnt31
4109 0 -52(no\211set\211environment)m 
4110 grestore
4111 2342 8862(cancels)m 3096(the)s 3444(ef)s 6(fect)k
4112 4040(of)s gsave
4113 4311 8916 translate
4114 0.6953 1.0000 scale
4115 240 fnt31 0 -52(set\211environment)m 
4116 grestore
4117 5812(.)s gsave
4118 120 8572 translate
4119 0.6953 1.0000 scale
4120 240 fnt31
4121 0 -52(no\211suppress\211args)m 
4122 grestore
4123 gsave
4124 120 8332 translate
4125 0.6953 1.0000 scale
4126 240 fnt31 0 -52(suppress\211args)m 
4127 grestore
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
4133 gsave
4134 1030 7852 translate
4135 0.6953 1.0000 scale
4136 240 fnt31 0 -52(execute)m 
4137 grestore
4138 1730(,)s gsave
4139 1834 7852 translate
4140 0.6953 1.0000 scale
4141 240 fnt31 0 -52(execute\211from\211directory)m
4142
4143 grestore
4144 4094(or)s gsave
4145 4351 7852 translate
4146 0.6953 1.0000 scale
4147 240 fnt31 0 -52(execute\211from\211path)m 
4148 grestore
4149 6110(directi)s 6(v)k 3(e.)k
4150 gsave
4151 7038 7852 translate
4152 0.6953 1.0000 scale
4153 240 fnt31 0 -52(suppress\211args)m 
4154 grestore
4155 8396(undoes)s 480 7558(the)m 828(ef)s 6(fect)k
4156 1424(of)s gsave
4157 1695 7612 translate
4158 0.6953 1.0000 scale
4159 240 fnt31 0 -52(no\211suppress\211args)m 
4160 grestore
4161 3297(.)s gsave
4162 120 7237 translate
4163 0.6953 1.0000 scale
4164 240 fnt31
4165 0 -52(require\211fd)m gsave
4166 1584 0 translate
4167 1.4219 1.0000 scale
4168 240 fnt83 0 -52(fd\211r)m 3(ang)k 2(e)k
4169
4170 grestore
4171 2940(read|write)s 
4172 grestore
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
4190 3766(of)s gsave
4191 4037 6272 translate
4192 0.6953 1.0000 scale
4193 240 fnt31 0 -52(require\211fd)m 
4194 grestore
4195 5038(,)s gsave
4196 5145 6272 translate
4197 0.6953 1.0000 scale
4198 240 fnt31
4199 0 -52(allow\211fd)m 
4200 grestore
4201 5946(,)s gsave
4202 6053 6272 translate
4203 0.6953 1.0000 scale
4204 240 fnt31 0 -52(ignore\211fd)m 
4205 grestore
4206 6954(,)s
4207 gsave
4208 7061 6272 translate
4209 0.6953 1.0000 scale
4210 240 fnt31 0 -52(null\211fd)m 
4211 grestore
4212 7821(or)s gsave
4213 8080 6272 translate
4214 0.6953 1.0000 scale
4215 240 fnt31 0 -52(reject\211fd)m
4216
4217 grestore
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
4234 7604 5551 translate
4235 0.6953 1.0000 scale
4236 240 fnt31
4237 0 -52(stdin)m 
4238 grestore
4239 8104(,)s gsave
4240 8209 5551 translate
4241 0.6953 1.0000 scale
4242 240 fnt31 0 -52(stdout)m 
4243 grestore
4244 8867(or)s
4245 gsave
4246 480 5311 translate
4247 0.6953 1.0000 scale
4248 240 fnt31 0 -52(stderr)m 
4249 grestore
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
4253 6065(with)s gsave
4254 6536 5311 translate
4255 0.6953 1.0000 scale
4256 240 fnt31 0 -52(reject\211fd)m 
4257 grestore
4258 7486(and)s gsave
4259 7879 5311 translate
4260 0.6953 1.0000 scale
4261 240 fnt31
4262 0 -52(ignore\211fd)m 
4263 grestore
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
4277 4381(\()s gsave
4278 4454 4591 translate
4279 0.6953 1.0000 scale
4280 240 fnt31 0 -52(require\211fd)m 
4281 grestore
4282 5514(or)s gsave
4283 5772 4591 translate
4284 0.6953 1.0000 scale
4285 240 fnt31
4286 0 -52(allow\211fd)m 
4287 grestore
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
4294 6734 4351 translate
4295 0.6953 1.0000 scale
4296 240 fnt31 0 -52(exec)m 
4297 grestore
4298 7190(the)s
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
4301 120 3767 translate
4302 0.6953 1.0000 scale
4303 240 fnt31 0 -52(allow\211fd)m gsave
4304 1296 0 translate
4305 1.4219 1.0000 scale
4306 240 fnt83
4307 0 -52(fd\211r)m 3(ang)k 2(e)k 
4308 grestore
4309 2652([read|write])s 
4310 grestore
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
4315 8209 3522 translate
4316 0.6953 1.0000 scale
4317 240 fnt31 0 -52(read)m
4318
4319 grestore
4320 8669(nor)s gsave
4321 480 3282 translate
4322 0.6953 1.0000 scale
4323 240 fnt31 0 -52(write)m 
4324 grestore
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
4329 gsave
4330 959 3042 translate
4331 0.6953 1.0000 scale
4332 240 fnt31 0 -52(/dev/null)m 
4333 grestore
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
4336 gsave
4337 6928 3042 translate
4338 0.6953 1.0000 scale
4339 240 fnt31 0 -52(read)m 
4340 grestore
4341 7328(,)s gsave
4342 7435 3042 translate
4343 0.6953 1.0000 scale
4344 240 fnt31 0 -52(write)m
4345
4346 grestore
4347 7995(or)s 8254(neither)s 480 2748(w)m 2(as)k 901(speci\207ed\).)s
4348 gsave
4349 120 2408 translate
4350 0.6953 1.0000 scale
4351 240 fnt31 0 -52(null\211fd)m gsave
4352 1152 0 translate
4353 1.4219 1.0000 scale
4354 240 fnt83 0 -52(fd\211r)m 3(ang)k 2(e)k
4355
4356 grestore
4357 2508([read|write])s 
4358 grestore
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
4362 4772 2163 translate
4363 0.6953 1.0000 scale
4364 240 fnt31 0 -52(/dev/null)m 
4365 grestore
4366 5733(for)s
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
4369 gsave
4370 1181 1923 translate
4371 0.6953 1.0000 scale
4372 240 fnt31 0 -52(read)m 
4373 grestore
4374 1624(nor)s gsave
4375 1986 1923 translate
4376 0.6953 1.0000 scale
4377 240 fnt31 0 -52(write)m
4378
4379 grestore
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
4389 gsave
4390 120 1289 translate
4391 0.6953 1.0000 scale
4392 240 fnt31 0 -52(reject\211fd)m gsave
4393 1440 0 translate
4394 1.4219 1.0000 scale
4395 240 fnt83 0 -52(fd\211r)m 3(ang)k 2(e)k
4396
4397 grestore
4398
4399 grestore
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 
4409 grestore
4410
4411 grestore
4412
4413 pgsave restore
4414 showpage
4415
4416 %%Page: 16 16
4417 %%BeginPageSetup
4418 %%PageResources: font Times-Roman
4419 %%+ font Times-Bold
4420 %%+ font Courier-Bold
4421 %%+ font Times-Italic
4422 /pgsave save def
4423 0.0500 dup scale 10 setlinewidth
4424 %%EndPageSetup
4425 gsave
4426 0 0 translate
4427 240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic
4428 gsave
4429 LoutPageSet
4430 grestore
4431 gsave
4432 0 16840 translate
4433 0.0000 rotate
4434
4435 grestore
4436
4437 grestore
4438 gsave
4439 0 16840 translate
4440 0.0000 rotate
4441 gsave
4442 1417 -15423 translate
4443 240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic
4444 gsave
4445 0 LoutMargSet
4446 grestore
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
4449 120 12911 translate
4450 0.6953 1.0000 scale
4451 240 fnt31 0 -52(ignore\211fd)m gsave
4452 1440 0 translate
4453 1.4219 1.0000 scale
4454 240 fnt83
4455 0 -52(fd\211r)m 3(ang)k 2(e)k 
4456 grestore
4457
4458 grestore
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
4468 gsave
4469 120 12037 translate
4470 0.6953 1.0000 scale
4471 240 fnt31 0 -52(disconnect\211hup)m 
4472 grestore
4473 gsave
4474 120 11797 translate
4475 0.6953 1.0000 scale
4476 240 fnt31 0 -52(no\211disconnect\211hup)m 
4477 grestore
4478 480 11503(Caus)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
4481 4398(a)s gsave
4482 4564 11557 translate
4483 0.6953 1.0000 scale
4484 240 fnt31 0 -52(SIGHUP)m 
4485 grestore
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
4490 gsave
4491 3055 11317 translate
4492 0.6953 1.0000 scale
4493 240 fnt31 0 -52(no\211disconnect\211hup)m 
4494 grestore
4495 4813(can)s 5142(cels)s gsave
4496 5560 11317 translate
4497 0.6953 1.0000 scale
4498 240 fnt31
4499 0 -52(disconnect\211hup)m 
4500 grestore
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
4511 0.6953 1.0000 scale
4512 240 fnt31
4513 0 -52(SIGHUP)m 
4514 grestore
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
4524 120 9962 translate
4525 0.6953 1.0000 scale
4526 240 fnt31
4527 0 -52(reset)m 
4528 grestore
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
4532 6347(to:)s gsave
4533 960 9482 translate
4534 0.6953 1.0000 scale
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 
4539 grestore
4540 0 7505(If)m 230(no)s gsave
4541 523 7559 translate
4542 0.6953 1.0000 scale
4543 240 fnt31 0 -52(execute)m
4544
4545 grestore
4546 1223(,)s gsave
4547 1330 7559 translate
4548 0.6953 1.0000 scale
4549 240 fnt31 0 -52(execute\211from\211path)m 
4550 grestore
4551 3032(,)s gsave
4552 3139 7559 translate
4553 0.6953 1.0000 scale
4554 240 fnt31
4555 0 -52(execute\211from\211directory)m 
4556 grestore
4557 5401(or)s gsave
4558 5660 7559 translate
4559 0.6953 1.0000 scale
4560 240 fnt31 0 -52(builtin)m 
4561 grestore
4562 6420(is)s
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
4567 xsize 0 rlineto
4568 0 0.1 ft rlineto
4569 xsize neg 0 rlineto
4570 closepath fill
4571 grestore
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 
4574 grestore
4575 0 5779(If)m
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
4582 7430 5593 translate
4583 0.6953 1.0000 scale
4584 240 fnt31
4585 0 -52(errors\211)m 
4586 grestore
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
4593 1214 4705 translate
4594 0.6953 1.0000 scale
4595 240 fnt31
4596 0 -52(catch\211quit)m 
4597 grestore
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
4603 3243 4465 translate
4604 0.6953 1.0000 scale
4605 240 fnt31 0 -52(reset)m
4606
4607 grestore
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
4610 gsave
4611 0 4225 translate
4612 0.6953 1.0000 scale
4613 240 fnt31 0 -52(hctac)m 
4614 grestore
4615 500 4171(.)m 9066 609 0 609 240 240 60 0 3208 LoutGr2
4616 newpath 0 ysize 0.3 ft sub moveto
4617 xsize 0 rlineto
4618 0 0.1 ft rlineto
4619 xsize neg 0 rlineto
4620 closepath fill
4621 grestore
4622 320 fnt84 0 5(4.4.)m
4623 628(Defaults)s 
4624 grestore
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
4631
4632 grestore
4633
4634 grestore
4635
4636 pgsave restore
4637 showpage
4638
4639 %%Page: 17 17
4640 %%BeginPageSetup
4641 %%PageResources: font Times-Roman
4642 %%+ font Times-Bold
4643 %%+ font Courier-Bold
4644 %%+ font Times-Italic
4645 /pgsave save def
4646 0.0500 dup scale 10 setlinewidth
4647 %%EndPageSetup
4648 gsave
4649 0 0 translate
4650 240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic
4651 gsave
4652 LoutPageSet
4653 grestore
4654 gsave
4655 0 16840 translate
4656 0.0000 rotate
4657
4658 grestore
4659
4660 grestore
4661 gsave
4662 0 16840 translate
4663 0.0000 rotate
4664 gsave
4665 1417 -15423 translate
4666 240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic
4667 gsave
4668 1 LoutMargSet
4669 grestore
4670 240 fnt84 8831 13842(17)m gsave
4671 480 13335 translate
4672 0.6953 1.0000 scale
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
4678 1.4219 1.0000 scale
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 
4682 grestore
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 
4685 grestore
4686 240 fnt82 0 9859(If)m
4687 226(one)s 624(of)s 891(the)s gsave
4688 1235 9913 translate
4689 0.6953 1.0000 scale
4690 240 fnt31 0 -52(\211\211override)m
4691
4692 grestore
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
4698 480 9433 translate
4699 0.6953 1.0000 scale
4700 240 fnt31
4701 0 -52(reset)m 0 -292(errors\211to\211stderr)m 0 -532(include)m gsave
4702 1152 -480 translate
4703 1.4219 1.0000 scale
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 
4707 grestore
4708 0 -772(quit)m 
4709 grestore
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
4712
4713 grestore
4714
4715 grestore
4716
4717 pgsave restore
4718 showpage
4719
4720 %%Page: 18 18
4721 %%BeginPageSetup
4722 %%PageResources: font Times-Roman
4723 %%+ font Times-Bold
4724 %%+ font Courier-Bold
4725 /pgsave save def
4726 0.0500 dup scale 10 setlinewidth
4727 %%EndPageSetup
4728 gsave
4729 0 0 translate
4730 240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic
4731 gsave
4732 LoutPageSet
4733 grestore
4734 gsave
4735 0 16840 translate
4736 0.0000 rotate
4737
4738 grestore
4739
4740 grestore
4741 gsave
4742 0 16840 translate
4743 0.0000 rotate
4744 gsave
4745 1417 -15423 translate
4746 240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic
4747 gsave
4748 0 LoutMargSet
4749 grestore
4750 240 fnt84 0 13842(18)m gsave
4751 0 12726 translate
4752 240 fnt82 9066 688 0 688 240 240 60 LoutGraphic
4753 gsave
4754 newpath 0 ysize 0.3 ft sub moveto
4755 xsize 0 rlineto
4756 0 0.2 ft rlineto
4757 xsize neg 0 rlineto
4758 closepath fill
4759 grestore
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
4762 7185(combination)s 
4763 grestore
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
4775 0.6953 1.0000 scale
4776 240 fnt31 0 -52(service)m 
4777 grestore
4778 7008(parameter)s 9(,)k
4779 8045(and)s 8434(is)s 8629(used)s 480 11136(by)m 774(the)s
4780 gsave
4781 1122 11190 translate
4782 0.6953 1.0000 scale
4783 240 fnt31 0 -52(execute\211from\211directory)m 
4784 grestore
4785 3384(and)s gsave
4786 3788 11190 translate
4787 0.6953 1.0000 scale
4788 240 fnt31 0 -52(execute\211from\211path)m
4789
4790 grestore
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
4796 gsave
4797 828 10710 translate
4798 0.6953 1.0000 scale
4799 240 fnt31 0 -52(USERV_SERVICE)m 
4800 grestore
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
4840 7432 7879 translate
4841 0.6953 1.0000 scale
4842 240 fnt31
4843 0 -52(SIGPIPE)m 
4844 grestore
4845 8192(\(or)s gsave
4846 8530 7879 translate
4847 0.6953 1.0000 scale
4848 240 fnt31 0 -52(EPIPE)m 
4849 grestore
4850 480 7585(if)m
4851 gsave
4852 684 7639 translate
4853 0.6953 1.0000 scale
4854 240 fnt31 0 -52(SIGPIPE)m 
4855 grestore
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
4865 gsave
4866 8111 7159 translate
4867 0.6953 1.0000 scale
4868 240 fnt31 0 -52(SIGPIPE)m 
4869 grestore
4870 8867(or)s gsave
4871 480 6919 translate
4872 0.6953 1.0000 scale
4873 240 fnt31 0 -52(EPIPE)m
4874
4875 grestore
4876 980 6865(.)m 0 6460(\213)m 480(If)s gsave
4877 706 6514 translate
4878 0.6953 1.0000 scale
4879 240 fnt31 0 -52(no\211suppress\211args)m
4880
4881 grestore
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
4898 gsave
4899 2345 5358 translate
4900 0.6953 1.0000 scale
4901 240 fnt31 0 -52(disconnect\211hup)m 
4902 grestore
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
4906 7647 5358 translate
4907 0.6953 1.0000 scale
4908 240 fnt31 0 -52(SIGHUP)m
4909
4910 grestore
4911 8247(.)s 0 4868(\213)m 480(The)s 908(v)s 6(alue)k
4912 1476(of)s 1747(the)s gsave
4913 2095 4922 translate
4914 0.6953 1.0000 scale
4915 240 fnt31 0 -52(LOGNAME)m 
4916 grestore
4917 2855(\(or)s
4918 gsave
4919 3193 4922 translate
4920 0.6953 1.0000 scale
4921 240 fnt31 0 -52(USER)m 
4922 grestore
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
4938 3915 3962 translate
4939 0.6953 1.0000 scale
4940 240 fnt31
4941 0 -52(calling\211user)m 
4942 grestore
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
4946 3696 3722 translate
4947 0.6953 1.0000 scale
4948 240 fnt31
4949 0 -52(USERV_USER)m 
4950 grestore
4951 4741(and)s gsave
4952 5129 3722 translate
4953 0.6953 1.0000 scale
4954 240 fnt31 0 -52(USERV_UID)m 
4955 grestore
4956 6030(.)s
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
4961 gsave
4962 480 3242 translate
4963 0.6953 1.0000 scale
4964 240 fnt31 0 -52(calling\211user\211shell)m 
4965 grestore
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
4975 4427(the)s gsave
4976 4766 2356 translate
4977 0.6953 1.0000 scale
4978 240 fnt31 0 -52(calling\211group)m 
4979 grestore
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
4994 3439 1181 translate
4995 0.6953 1.0000 scale
4996 240 fnt31
4997 0 -52(\211\211hidecwd)m 
4998 grestore
4999 4340(,)s 4447(to)s 4686(the)s 5034(service)s
5000 5766(program)s 6636(in)s 6879(the)s gsave
5001 7227 1181 translate
5002 0.6953 1.0000 scale
5003 240 fnt31 0 -52(USERV_CWD)m
5004
5005 grestore
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 
5012 grestore
5013
5014 grestore
5015
5016 pgsave restore
5017 showpage
5018
5019 %%Page: 19 19
5020 %%BeginPageSetup
5021 %%PageResources: font Times-Roman
5022 %%+ font Times-Bold
5023 %%+ font Courier-Bold
5024 %%+ font Times-Italic
5025 /pgsave save def
5026 0.0500 dup scale 10 setlinewidth
5027 %%EndPageSetup
5028 gsave
5029 0 0 translate
5030 240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic
5031 gsave
5032 LoutPageSet
5033 grestore
5034 gsave
5035 0 16840 translate
5036 0.0000 rotate
5037
5038 grestore
5039
5040 grestore
5041 gsave
5042 0 16840 translate
5043 0.0000 rotate
5044 gsave
5045 1417 -15423 translate
5046 240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic
5047 gsave
5048 1 LoutMargSet
5049 grestore
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
5056 0.6953 1.0000 scale
5057 240 fnt31 0 -52(\211\211defvar)m
5058 gsave
5059 1295 0 translate
5060 1.4219 1.0000 scale
5061 240 fnt83 0 -52(name)m 
5062 grestore
5063 2023(=)s gsave
5064 2167 0 translate
5065 1.4219 1.0000 scale
5066 240 fnt83 0 -52(value)m
5067
5068 grestore
5069
5070 grestore
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
5074 gsave
5075 6252 12608 translate
5076 0.6953 1.0000 scale
5077 240 fnt31 0 -52(u\211)m gsave
5078 288 0 translate
5079 1.4219 1.0000 scale
5080 240 fnt83 0 -52(name)m 
5081 grestore
5082
5083 grestore
5084 7018(parameters)s
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
5089 0.6953 1.0000 scale
5090 240 fnt31 0 -52(USERV_U_)m gsave
5091 1152 0 translate
5092 1.4219 1.0000 scale
5093 240 fnt83
5094 0 -52(name)m 
5095 grestore
5096
5097 grestore
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 
5109 grestore
5110
5111 grestore
5112
5113 pgsave restore
5114 showpage
5115
5116 %%Page: 20 20
5117 %%BeginPageSetup
5118 %%PageResources: font Times-Roman
5119 %%+ font Times-Bold
5120 %%+ font Courier-Bold
5121 %%+ font Times-Italic
5122 /pgsave save def
5123 0.0500 dup scale 10 setlinewidth
5124 %%EndPageSetup
5125 gsave
5126 0 0 translate
5127 240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic
5128 gsave
5129 LoutPageSet
5130 grestore
5131 gsave
5132 0 16840 translate
5133 0.0000 rotate
5134
5135 grestore
5136
5137 grestore
5138 gsave
5139 0 16840 translate
5140 0.0000 rotate
5141 gsave
5142 1417 -15423 translate
5143 240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic
5144 gsave
5145 0 LoutMargSet
5146 grestore
5147 240 fnt84 0 13842(20)m gsave
5148 0 12727 translate
5149 240 fnt82 9066 687 0 687 240 240 60 LoutGraphic
5150 gsave
5151 newpath 0 ysize 0.3 ft sub moveto
5152 xsize 0 rlineto
5153 0 0.2 ft rlineto
5154 xsize neg 0 rlineto
5155 closepath fill
5156 grestore
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 
5159 grestore
5160 gsave
5161 0 11650 translate
5162 240 fnt82 9066 669 0 669 240 240 60 LoutGraphic
5163 gsave
5164 newpath 0 ysize 0.3 ft sub moveto
5165 xsize 0 rlineto
5166 0 0.1 ft rlineto
5167 xsize neg 0 rlineto
5168 closepath fill
5169 grestore
5170 320 fnt84
5171 0 66(6.1.)m 628(Examples)s 
5172 grestore
5173 240 fnt82 0 11188(The)m 428(companion)s
5174 1549(package,)s gsave
5175 2440 11242 translate
5176 0.6953 1.0000 scale
5177 240 fnt31 0 -52(userv\211utils)m 
5178 grestore
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
5185 0.6953 1.0000 scale
5186 240 fnt31 0 -52(README)m
5187
5188 grestore
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
5192 xsize 0 rlineto
5193 0 0.1 ft rlineto
5194 xsize neg 0 rlineto
5195 closepath fill
5196 grestore
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
5199 5025(management)s 
5200 grestore
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
5207 gsave
5208 0 8868 translate
5209 0.6953 1.0000 scale
5210 240 fnt31 0 -52(userv)m 
5211 grestore
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
5215 gsave
5216 5379 8868 translate
5217 0.6953 1.0000 scale
5218 240 fnt31 0 -52(userv)m 
5219 grestore
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
5232 gsave
5233 7261 8388 translate
5234 0.6953 1.0000 scale
5235 240 fnt31 0 -52(~/.userv/)m gsave
5236 1296 0 translate
5237 1.4219 1.0000 scale
5238 240 fnt83 0 -52(service)m 
5239 grestore
5240
5241 grestore
5242 8823(,)s
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
5248 3121 7740 translate
5249 0.6953 1.0000 scale
5250 240 fnt31 0 -52(~/.userv)m
5251
5252 grestore
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
5260 gsave
5261 960 6852 translate
5262 0.6953 1.0000 scale
5263 240 fnt31 0 -52(userv)m 
5264 grestore
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
5273 xsize 0 rlineto
5274 0 0.1 ft rlineto
5275 xsize neg 0 rlineto
5276 closepath fill
5277 grestore
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
5280
5281 grestore
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
5293 1452(use)s gsave
5294 1827 4238 translate
5295 0.6953 1.0000 scale
5296 240 fnt31 0 -52(userv)m 
5297 grestore
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
5303 gsave
5304 0 3590 translate
5305 0.6953 1.0000 scale
5306 240 fnt31 0 -52(cron)m 
5307 grestore
5308 455 3536(and)m gsave
5309 853 3590 translate
5310 0.6953 1.0000 scale
5311 240 fnt31 0 -52(at)m
5312
5313 grestore
5314 1053(,)s gsave
5315 1154 3590 translate
5316 0.6953 1.0000 scale
5317 240 fnt31 0 -52(lpr)m 
5318 grestore
5319 1509(and)s 1907(the)s
5320 2249(system')s 13(s)k 3117(mail)s 3591(transfer)s 4373(agent)s
5321 4945(\()s gsave
5322 5018 3590 translate
5323 0.6953 1.0000 scale
5324 240 fnt31 0 -52(sendmail)m 
5325 grestore
5326 5819(,)s gsave
5327 5921 3590 translate
5328 0.6953 1.0000 scale
5329 240 fnt31
5330 0 -52(smail)m 
5331 grestore
5332 6421(,)s gsave
5333 6522 3590 translate
5334 0.6953 1.0000 scale
5335 240 fnt31 0 -52(exim)m 
5336 grestore
5337 6976(or)s
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
5340 1308(though)s gsave
5341 2031 3350 translate
5342 0.6953 1.0000 scale
5343 240 fnt31 0 -52(userv)m 
5344 grestore
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
5349 xsize 0 rlineto
5350 0 0.1 ft rlineto
5351 xsize neg 0 rlineto
5352 closepath fill
5353 grestore
5354 320 fnt84
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
5357 5571(to)s gsave
5358 5910 139 translate
5359 0.6953 1.0000 scale
5360 320 fnt31 0 -70(userv)m 
5361 grestore
5362 6577(-using)s 7484(facilities)s
5363
5364 grestore
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
5368 7193(using)s gsave
5369 7765 1864 translate
5370 0.6953 1.0000 scale
5371 240 fnt31 0 -52(userv)m 
5372 grestore
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
5379 1272 976 translate
5380 0.6953 1.0000 scale
5381 240 fnt31 0 -52(lpr)m 
5382 grestore
5383 1632(program.)s
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 
5389 grestore
5390
5391 grestore
5392
5393 pgsave restore
5394 showpage
5395
5396 %%Page: 21 21
5397 %%BeginPageSetup
5398 %%PageResources: font Times-Roman
5399 %%+ font Times-Bold
5400 %%+ font Courier-Bold
5401 %%+ font Times-Italic
5402 /pgsave save def
5403 0.0500 dup scale 10 setlinewidth
5404 %%EndPageSetup
5405 gsave
5406 0 0 translate
5407 240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic
5408 gsave
5409 LoutPageSet
5410 grestore
5411 gsave
5412 0 16840 translate
5413 0.0000 rotate
5414
5415 grestore
5416
5417 grestore
5418 gsave
5419 0 16840 translate
5420 0.0000 rotate
5421 gsave
5422 1417 -15423 translate
5423 240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic
5424 gsave
5425 1 LoutMargSet
5426 grestore
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
5449 0.6953 1.0000 scale
5450 240 fnt31
5451 0 -52(userv)m 
5452 grestore
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
5455 811(\(the)s gsave
5456 1233 11700 translate
5457 0.6953 1.0000 scale
5458 240 fnt31 0 -52(lp)m 
5459 grestore
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
5463 6349(run)s gsave
5464 6720 11700 translate
5465 0.6953 1.0000 scale
5466 240 fnt31 0 -52(cat)m 
5467 grestore
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
5472 0.6953 1.0000 scale
5473 240 fnt31 0 -52(lpr)m
5474
5475 grestore
5476 3914(program)s 4769(w)s 2(ould)k 5410(use)s 5770(a)s
5477 gsave
5478 5922 11460 translate
5479 0.6953 1.0000 scale
5480 240 fnt31 0 -52(userv)m 
5481 grestore
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
5503 8382(the)s gsave
5504 8730 10092 translate
5505 0.6953 1.0000 scale
5506 240 fnt31 0 -52(lp)m 
5507 grestore
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
5527 5747 8724 translate
5528 0.6953 1.0000 scale
5529 240 fnt31 0 -52(lpr)m 
5530 grestore
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
5561 gsave
5562 3602 6468 translate
5563 0.6953 1.0000 scale
5564 240 fnt31 0 -52(userv)m 
5565 grestore
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
5585 xsize 0 rlineto
5586 0 0.1 ft rlineto
5587 xsize neg 0 rlineto
5588 closepath fill
5589 grestore
5590 320 fnt84 0 66(6.5.)m gsave
5591 628 139 translate
5592 0.6953 1.0000 scale
5593 320 fnt31
5594 0 -70(userv)m 
5595 grestore
5596 1375(can)s 1929(often)s 2695(r)s 5(eplace)k
5597 gsave
5598 3758 139 translate
5599 0.6953 1.0000 scale
5600 320 fnt31 0 -70(sudo)m 
5601 grestore
5602 4292(,)s 4444(b)s 6(ut)k
5603 4978(not)s gsave
5604 5501 139 translate
5605 0.6953 1.0000 scale
5606 320 fnt31 0 -70(really)m 
5607 grestore
5608
5609 grestore
5610 gsave
5611 0 3374 translate
5612 0.6953 1.0000 scale
5613 240 fnt31 0 -52(userv)m
5614
5615 grestore
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
5642 2451 1978 translate
5643 0.6953 1.0000 scale
5644 240 fnt31 0 -52(sudo)m 
5645 grestore
5646 153 fnt82
5647 2851 2013(1)m 240 fnt82 2911 1924(.)m gsave
5648 3015 1978 translate
5649 0.6953 1.0000 scale
5650 240 fnt31 0 -52(userv)m
5651
5652 grestore
5653 3575(is)s 3785(generally)s 4728(much)s 5317(better)s 5920(than)s
5654 6389(restricted)s gsave
5655 7334 1978 translate
5656 0.6953 1.0000 scale
5657 240 fnt31 0 -52(sudo)m 
5658 grestore
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
5665 grestore
5666
5667 grestore
5668 122 fnt82 0 982(1)m gsave
5669 58 955 translate
5670 0.6953 1.0000 scale
5671 192 fnt31
5672 0 -42(sudo)m 
5673 grestore
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
5681
5682 grestore
5683
5684 grestore
5685
5686 pgsave restore
5687 showpage
5688
5689 %%Page: 22 22
5690 %%BeginPageSetup
5691 %%PageResources: font Times-Roman
5692 %%+ font Times-Bold
5693 %%+ font Courier-Bold
5694 /pgsave save def
5695 0.0500 dup scale 10 setlinewidth
5696 %%EndPageSetup
5697 gsave
5698 0 0 translate
5699 240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic
5700 gsave
5701 LoutPageSet
5702 grestore
5703 gsave
5704 0 16840 translate
5705 0.0000 rotate
5706
5707 grestore
5708
5709 grestore
5710 gsave
5711 0 16840 translate
5712 0.0000 rotate
5713 gsave
5714 1417 -15423 translate
5715 240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic
5716 gsave
5717 0 LoutMargSet
5718 grestore
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
5724 0.6953 1.0000 scale
5725 240 fnt31 0 -52(sudo)m 
5726 grestore
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
5730 gsave
5731 3255 13068 translate
5732 0.6953 1.0000 scale
5733 240 fnt31 0 -52(userv)m 
5734 grestore
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
5740 xsize 0 rlineto
5741 0 0.1 ft rlineto
5742 xsize neg 0 rlineto
5743 closepath fill
5744 grestore
5745 320 fnt84
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
5748
5749 grestore
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
5757 0.6953 1.0000 scale
5758 240 fnt31 0 -52(userv)m
5759
5760 grestore
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
5776 2159(a)s gsave
5777 2321 9565 translate
5778 0.6953 1.0000 scale
5779 240 fnt31 0 -52(userv)m 
5780 grestore
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
5808 xsize 0 rlineto
5809 0 0.1 ft rlineto
5810 xsize neg 0 rlineto
5811 closepath fill
5812 grestore
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 
5816 grestore
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
5819 gsave
5820 4394 6639 translate
5821 0.6953 1.0000 scale
5822 240 fnt31 0 -52(mv)m 
5823 grestore
5824 4654(or)s gsave
5825 4913 6639 translate
5826 0.6953 1.0000 scale
5827 240 fnt31 0 -52(cat)m
5828
5829 grestore
5830 5273(in)s gsave
5831 5516 6639 translate
5832 0.6953 1.0000 scale
5833 240 fnt31 0 -52(execute\211)m 
5834 grestore
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
5838 4639(if)s gsave
5839 4856 6399 translate
5840 0.6953 1.0000 scale
5841 240 fnt31 0 -52(no\211suppress\211args)m 
5842 grestore
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
5854 2733 5511 translate
5855 0.6953 1.0000 scale
5856 240 fnt31 0 -52(sudo)m 
5857 grestore
5858 3133(.)s
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 
5861 grestore
5862
5863 grestore
5864
5865 pgsave restore
5866 showpage
5867
5868 %%Trailer
5869 %%DocumentNeededResources: font Courier-Bold
5870 %%+ font Times-Roman
5871 %%+ font Times-Italic
5872 %%+ font Times-Bold
5873 %%DocumentSuppliedResources: procset LoutStartUp
5874 %%+  procset LoutMarginNotes
5875 %%+ encoding vec2
5876 %%Pages: 22
5877 %%EOF