chiark / gitweb /
Version number upped for release.
[userv.git] / spec.ps
1 %!PS-Adobe-3.0
2 %%Creator: Basser Lout Version 3.10 (November 1996)
3 %%CreationDate: Sun Apr 18 20:08:36 1999
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 4326 12513(0.62)m
272 9066 609 0 609 240 240 60 0 11253 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 10791(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 10551(only)m 480(limited)s 1214(trust)s
286 1698(e)s 3(xists)k 2290(between)s 3144(them.)s 9066 610 0 610 240 240 60 0 9587 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 6(0.2.)m 628(Contents)s 
295 grestore
296 240 fnt84 0 9175(1.)m 1200(Intr)s 4(oduction)k
297 8953(3)s 0 8818(2.)m 1200(Client)s 1883(pr)s 4(ogram)k
298 2839(usage)s 8952(4)s 240 fnt82 0 8579(2.1.)m 1200(Options)s
299 8952(4)s 0 8342(2.2.)m 1200(Security-o)s 3(v)k 3(erriding)k
300 3118(options)s 8958(7)s 240 fnt84 0 7997(3.)m 1200(Execution)s
301 2279(en)s 9(vir)k 4(onment)k 3627(of)s 3899(the)s
302 4273(ser)s 2(vice)k 5030(pr)s 4(ogram)k 8952(8)s
303 240 fnt82 0 7758(3.1.)m 1200(File)s 1627(descriptors)s 8959(8)s
304 0 7521(3.2.)m 1200(En)s 9(vironment)k 8955(9)s 240 fnt84
305 0 7176(4.)m 1200(Ser)s 2(vice-side)k 2474(con\207guration)s 8831(10)s
306 240 fnt82 0 6937(4.1.)m 1200(Con\207guration)s 2587(\207le)s 2948(syntax)s
307 8831(10)s 0 6700(4.2.)m 1200(Con\207guration)s 2587(\207le)s 2948(directi)s 6(v)k 3(es)k
308 8831(10)s 0 6462(4.3.)m 1200(Errors)s 1847(in)s 2090(the)s
309 2438(con\207guration)s 3771(\207le)s 8833(16)s 0 6225(4.4.)m 1200(Def)s 2(aults)k
310 8838(17)s 240 fnt84 0 5880(5.)m 1200(Inf)s 6(ormation)k
311 2498(passed)s 3231(thr)s 4(ough)k 4106(the)s 4480(client/daemon)s
312 5969(combination)s 8832(18)s 0 5523(6.)m 1200(A)s 6(pplications)k
313 2536(and)s 2977(notes)s 3562(on)s 3871(use)s 8831(20)s
314 240 fnt82 0 5284(6.1.)m 1200(Standard)s 2108(services)s 2928(and)s
315 3332(directory)s 4248(management)s 8831(20)s 0 5046(6.2.)m 1200(Reducing)s
316 2171(the)s 2519(number)s 3310(of)s 3581(absolutely)s 4618(pri)s 6(vile)k 3(ged)k
317 5636(subsystems)s 8831(20)s 0 4808(6.3.)m 1200(Do)s 1546(not)s
318 1912(gi)s 6(v)k 3(e)k 2371(a)s 3(w)k 2(ay)k
319 2925(e)s 3(xcessi)k 6(v)k 3(e)k 3885(pri)s 6(vile)k 3(ge)k
320 4781(to)s gsave
321 5020 4862 translate
322 0.6953 1.0000 scale
323 240 fnt31 0 -52(userv)m 
324 grestore
325 5520(-using)s 6171(f)s 2(acilities)k
326 8831(20)s 0 4570(6.4.)m gsave
327 1200 4624 translate
328 0.6953 1.0000 scale
329 240 fnt31 0 -52(userv)m 
330 grestore
331 1760(is)s
332 1970(not)s 2336(a)s 2502(replacement)s 3729(for)s gsave
333 4067 4624 translate
334 0.6953 1.0000 scale
335 240 fnt31
336 0 -52(really)m 
337 grestore
338 4727(and)s gsave
339 5131 4624 translate
340 0.6953 1.0000 scale
341 240 fnt31 0 -52(sudo)m 
342 grestore
343 8851(21)s
344 0 4331(6.5.)m 1200(Don')s 4(t)k 1814(gi)s 6(v)k 3(e)k
345 2273(access)s 2934(to)s 3173(general-purpose)s 4769(utilities)s 8851(21)s
346 9066 670 0 670 240 240 60 0 3080 LoutGr2
347 newpath 0 ysize 0.3 ft sub moveto
348 xsize 0 rlineto
349 0 0.1 ft rlineto
350 xsize neg 0 rlineto
351 closepath fill
352 grestore
353 320 fnt84 0 66(0.3.)m 628(Copyright)s 2109(Notice)s 
354 grestore
355 gsave
356 0 2970 translate
357 0.6953 1.0000 scale
358 240 fnt31
359 0 -460(userv)m 
360 grestore
361 560 2916(is)m 770(Cop)s 2(yright)k 1799(1996-1999)s
362 2889(Ian)s 3251(Jackson.)s gsave
363 0 2357 translate
364 0.6953 1.0000 scale
365 240 fnt31 0 -52(userv)m 
366 grestore
367 544 2303(is)m
368 737(free)s 1146(softw)s 2(are;)k 2062(you)s 2460(can)s
369 2832(redistrib)s 4(ute)k 3955(it)s 4130(and/or)s 4784(modify)s
370 5512(it)s 5688(under)s 6276(the)s 6607(terms)s 7172(of)s
371 7426(the)s 7757(GNU)s 8315(General)s 0 2063(Public)m 659(License)s
372 1453(as)s 1698(published)s 2682(by)s 2971(the)s 3314(Free)s
373 3789(Softw)s 2(are)k 4699(F)s 3(oundation;)k 5894(either)s
374 6492(v)s 3(ersion)k 7245(2)s 7414(of)s 7680(the)s
375 8023(License,)s 8867(or)s 0 1823(\(at)m 311(your)s 810(option\))s
376 1550(an)s 3(y)k 1947(later)s 2430(v)s 3(ersion.)k
377 0 1415(This)m 476(program)s 1346(is)s 1556(distrib)s 4(uted)k
378 2632(in)s 2875(the)s 3223(hope)s 3745(that)s 4163(it)s
379 4355(will)s 4781(be)s 5063(useful,)s 5754(b)s 4(ut)k
380 240 fnt83 6116 1417(without)m 6898(any)s 7300(warr)s 3(anty)k
381 240 fnt82 8171 1415(;)m 8283(without)s 0 1174(e)m 6(v)k 3(en)k
382 500(the)s 848(implied)s 1636(w)s 2(arranty)k 2537(of)s
383 240 fnt83 2808 1176(mer)m 8(c)k 3(hantability)k 240 fnt82
384 4367 1174(or)m 240 fnt83 4626 1176(\207tness)m 5279(for)s 5623(a)s
385 5798(particular)s 6833(purpose)s 240 fnt82 7598 1174(.)m 7702(See)s
386 8103(the)s 8451(GNU)s 0 934(General)m 811(Public)s 1475(License)s
387 2274(for)s 2612(more)s 3159(details.)s 0 52(User)m 511(service)s
388 1243(daemon)s 2058(and)s 2462(client)s 3052(speci\207cation)s 8652(0.62)s
389
390 grestore
391
392 grestore
393
394 pgsave restore
395 showpage
396
397 %%Page: 2 2
398 %%BeginPageSetup
399 %%PageResources: font Times-Roman
400 %%+ font Times-Bold
401 %%+ font Courier-Bold
402 /pgsave save def
403 0.0500 dup scale 10 setlinewidth
404 %%EndPageSetup
405 gsave
406 0 0 translate
407 240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic
408 gsave
409 LoutPageSet
410 grestore
411 gsave
412 0 16840 translate
413 0.0000 rotate
414
415 grestore
416
417 grestore
418 gsave
419 0 16840 translate
420 0.0000 rotate
421 gsave
422 1417 -15423 translate
423 240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic
424 gsave
425 0 LoutMargSet
426 grestore
427 240 fnt84 0 13842(2)m 240 fnt82 0 13254(Y)m 26(ou)k
428 442(should)s 1139(ha)s 4(v)k 3(e)k 1640(re)s
429 1821(cei)s 6(v)k 3(ed)k 2494(a)s 2660(cop)s 2(y)k
430 3178(of)s 3449(the)s 3797(GNU)s 4372(Gen)s 4768(er)s
431 4953(al)s 5180(Pub)s 5546(lic)s 5837(Li)s 6043(cense)s
432 6630(along)s 7215(with)s gsave
433 7697 13308 translate
434 0.6953 1.0000 scale
435 240 fnt31 0 -52(userv)m 
436 grestore
437 8197(;)s
438 8309(if)s 8526(not,)s 0 13013(write)m 546(to)s 785(the)s
439 1133(Free)s 1613(Soft)s 2011(w)s 2(are)k 2529(F)s 3(oun)k
440 3016(da)s 3242(tion,)s 3721(59)s 4012(T)s 16(em)k
441 4434(ple)s 4782(Place)s 5355(-)s 5483(Suite)s 6030(330,)s
442 6497(Boston,)s 7283(MA)s 7726(02111-1307,)s 0 12773(USA.)m 0 52(0.62)m
443 4809(User)s 5320(service)s 6052(daemon)s 6867(and)s 7271(client)s
444 7861(speci\207cation)s 
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 8652(0.62)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 12321 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 11448(service-user)m 240 fnt82 1232 11446(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 11206(numeric)m 836(uid,)s 1249(or)s gsave
633 1508 11260 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 10798(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 10887(1)m
643 240 fnt82 4311 10798(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 10558(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 9534 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 9072(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 8832(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 8478 translate
664 0.6953 1.0000 scale
665 240 fnt31 0 -52(\211B)m 
666 grestore
667 gsave
668 120 8238 translate
669 0.6953 1.0000 scale
670 240 fnt31 0 -52(\211\211builtin)m 
671 grestore
672 480 7944(Requests)m
673 1387(that)s 1797(a)s 1955(b)s 4(uiltin)k 2624(service)s
674 3347(be)s 3621(pro)s 3(vided.)k 4565(This)s 5033(is)s
675 5235(equi)s 6(v)k 6(alent)k 6270(to)s 6501(using)s
676 7065(the)s gsave
677 7405 7998 translate
678 0.6953 1.0000 scale
679 240 fnt31 0 -52(\211\211override)m 
680 grestore
681 8457(option)s 480 7703(to)m
682 719(specify)s 1463(a)s 1629(string)s 2226(consisting)s 3249(of)s
683 gsave
684 3520 7757 translate
685 0.6953 1.0000 scale
686 240 fnt31 0 -52(execute\211builtin)m 
687 grestore
688 5081(follo)s 6(wed)k 5983(by)s
689 6277(the)s 240 fnt83 6625 7705(b)m 4(uiltin-service)k 240 fnt82
690 8053 7703(requested,)m 480 7463(and)m 884(requesting)s 1933(a)s 2099(service)s
691 2831(user)s 3289(of)s gsave
692 3560 7517 translate
693 0.6953 1.0000 scale
694 240 fnt31 0 -52(\211)m 
695 grestore
696 3720(\(indicating)s
697 4808(the)s 5156(calling)s 5859(user\).)s 480 7055(If)m 701(the)s
698 1039(b)s 4(uiltin)k 1707(ser)s 1985(vice)s 2429(be)s
699 2651(ing)s 3000(re)s 3181(quest)s 3686(ed)s 3961(re)s
700 4142(quires)s 4767(a)s 240 fnt83 4924 7057(service-)m 5667(ar)s 8(gument)k
701 240 fnt82 6631 7055(then)m 7090(this)s 7477(must)s 7992(be)s
702 8264(sup)s 8590(plied)s 480 6814(to)m 712(the)s 1052(client)s
703 1635(in)s 1870(the)s 2211(same)s 2750(ar)s 2935(gu)s
704 3170(ment)s 3700(as)s 3943(the)s 240 fnt83 4283 6816(b)m 4(uiltin-)k
705 4970(service)s 240 fnt82 5639 6814(.)m 5736(See)s 6129(`Di)s
706 6441(rec)s 6725(ti)s 6(v)k 3(es)k 7211(for)s
707 7541(chang)s 8106(ing)s 8457(e)s 3(x)k 8675(e)s
708 8777(cu)s 8998(-)s 480 6574(tion)m 909(set)s 1174(tings',)s
709 1825(page)s 2333(14)s 2627(for)s 2965(de)s 3187(tails)s
710 3635(of)s 3906(the)s 4254(b)s 4(uiltin)k 4931(ser)s
711 5209(vices)s 5751(a)s 4(v)k 6(ail)k 6200(able,)s
712 6705(and)s 7109(`Security-)s 8052(o)s 3(v)k 3(erriding)k
713 480 6334(op)m 713(tions',)s 1364(page)s 1872(7)s 2040(for)s
714 2378(de)s 2600(tails)s 3048(of)s 3319(the)s gsave
715 3667 6388 translate
716 0.6953 1.0000 scale
717 240 fnt31
718 0 -52(\211\211override)m 
719 grestore
720 4728(op)s 4961(tions.)s 480 5926(The)m 897(actual)s
721 1511(service)s 2232(name)s 2794(passed)s 3479(will)s 3894(be)s
722 4164(the)s 240 fnt83 4501 5928(b)m 4(uiltin-service)k 240 fnt82
723 5869 5926(;)m 5970(note)s 6427(that)s 6833(this)s 7218(actual)s
724 7832(service)s 8552(name)s 480 5686(\(as)m 809(opposed)s 1666(to)s
725 1905(the)s 2253(o)s 3(v)k 3(erride)k 3099(data\))s
726 3625(and)s 4029(the)s 240 fnt83 4377 5688(info-ar)m 8(gument)k
727 240 fnt82 5742 5686(s)m 5886(supplied)s 6755(will)s 7181(be)s
728 7463(ignored)s 8252(by)s 8546(most)s 480 5446(b)m 4(uiltin)k
729 1149(services;)s 2022(the)s 2361(o)s 3(v)k 3(erride)k
730 3199(mechanism)s 4339(and)s gsave
731 4735 5500 translate
732 0.6953 1.0000 scale
733 240 fnt31 0 -52(execute\211builtin)m 
734 grestore
735 6287(will)s
736 6705(be)s 6978(used)s 7467(to)s 7697(ensure)s 8369(that)s
737 8778(the)s 480 5206(right)m 991(b)s 4(uiltin)k 1668(service)s
738 2400(is)s 2610(called)s 3238(with)s 3720(the)s 4068(right)s
739 240 fnt83 4579 5208(service-ar)m 8(gument)k 240 fnt82 6248 5206(s.)m
740 gsave
741 120 4866 translate
742 0.6953 1.0000 scale
743 240 fnt31 0 -52(\211f)m gsave
744 288 0 translate
745 1.4219 1.0000 scale
746 240 fnt83 0 -52(fd)m 
747 grestore
748 561([)s
749 gsave
750 705 0 translate
751 1.4219 1.0000 scale
752 240 fnt83 0 -52(modi\207er)m 2(s)k 
753 grestore
754 1961(]=)s gsave
755 2249 0 translate
756 1.4219 1.0000 scale
757 240 fnt83
758 0 -52(\207lename)m 
759 grestore
760
761 grestore
762 gsave
763 120 4626 translate
764 0.6953 1.0000 scale
765 240 fnt31 0 -52(\211\211file)m gsave
766 1008 0 translate
767 1.4219 1.0000 scale
768 240 fnt83 0 -52(fd)m
769
770 grestore
771 1281([)s gsave
772 1425 0 translate
773 1.4219 1.0000 scale
774 240 fnt83 0 -52(modi\207er)m 2(s)k 
775 grestore
776 2681(]=)s
777 gsave
778 2969 0 translate
779 1.4219 1.0000 scale
780 240 fnt83 0 -52(\207lename)m 
781 grestore
782
783 grestore
784 480 4332(Requests)m 1384(that)s 1791(data)s
785 2238(be)s 2509(copied)s 3194(in)s 3426(and)s 3819(out)s
786 4174(of)s 4434(the)s 4771(service)s 5492(using)s 6053(pipes.)s
787 6651(F)s 3(or)k 7029(each)s 7513(\207le)s 7863(or)s
788 8111(descriptor)s 480 4092(this)m 858(will)s 1266(be)s 1530(done)s
789 2033(by)s 2309(creating)s 3113(a)s 3261(pipe,)s 3761(one)s
790 4145(end)s 4531(of)s 4784(which)s 5407(is)s 5599(passed)s
791 6277(to)s 6498(the)s 6827(service)s 7541(program)s 8393(and)s
792 8778(the)s 480 3852(other)m 1028(end)s 1429(of)s 1697(which)s
793 2336(is)s 2543(passed)s 3236(to)s 3472(a)s 3635(cop)s 2(y)k
794 4149(of)s gsave
795 4417 3906 translate
796 0.6953 1.0000 scale
797 240 fnt31 0 -52(cat)m 
798 grestore
799 4774(in)s 9(v)k 4(ok)k 2(ed)k
800 5586(by)s 5877(the)s 6222(client;)s 6861(the)s 7206(other)s
801 7754(\207le)s 8111(descriptor)s 480 3612(passed)m 1176(to)s gsave
802 1415 3666 translate
803 0.6953 1.0000 scale
804 240 fnt31
805 0 -52(cat)m 
806 grestore
807 1775(will)s 2201(be)s 2483(one)s 2885(inherited)s
808 3792(by)s 4086(the)s 4434(client)s 5024(program)s 5894(from)s
809 6418(the)s 6766(caller)s 7355(or)s 7614(one)s 8016(opened)s
810 8766(by)s 480 3372(the)m 828(client)s 1418(program)s 2288(on)s
811 2585(behalf)s 3254(of)s 3525(the)s 3873(caller)s 13(.)k
812 480 2964(The)m 890(descriptor)s 1886(in)s 2110(the)s 2439(service)s
813 3152(program)s 4004(that)s 4403(should)s 5081(be)s 5344(connected)s
814 6353(must)s 6860(be)s 7123(speci\207ed)s 8012(as)s 240 fnt83
815 8243 2966(fd)m 240 fnt82 8435 2964(,)m 8523(either)s 480 2724(as)m
816 728(a)s 891(decimal)s 1699(number)s 2487(or)s 2743(as)s
817 2990(one)s 3389(of)s 3657(the)s 4002(strings)s gsave
818 4688 2778 translate
819 0.6953 1.0000 scale
820 240 fnt31
821 0 -52(stdin)m 
822 grestore
823 5188(,)s gsave
824 5292 2778 translate
825 0.6953 1.0000 scale
826 240 fnt31 0 -52(stdout)m 
827 grestore
828 5949(or)s
829 gsave
830 6205 2778 translate
831 0.6953 1.0000 scale
832 240 fnt31 0 -52(stderr)m 
833 grestore
834 6805(.)s 6906(The)s 7331(ne)s 3(xt)k
835 7797(ar)s 4(gument)k 8753(is)s 8960(a)s 480 2484(\207lename)m
836 1359(which)s 2001(will)s 2427(be)s 2709(opened)s 3459(by)s
837 3753(the)s 4101(client)s 4691(with)s 5173(the)s 5521(pri)s 6(vile)k 3(ges)k
838 6505(of)s 6776(the)s 7124(calling)s 7827(user)s 13(.)k
839 240 fnt83 480 2078(modi\207er)m 2(s)k 240 fnt82 1424 2076(is)m
840 1634(used)s 2131(to)s 2370(specify)s 3114(whether)s 3944(the)s
841 4292(\207le)s 4653(or)s 4912(descriptor)s 5927(is)s 6137(to)s
842 6376(be)s 6658(read)s 7127(from)s 7651(or)s 7910(written)s
843 8643(to.)s 480 1835(It)m 682(consists)s 1487(of)s 1755(a)s
844 1918(series)s 2508(of)s 2776(w)s 2(ords)k 3407(separated)s
845 4364(by)s 4655(commas.)s 5552(A)s 5779(comma)s 6540(may)s
846 7003(separate)s 7838(the)s 240 fnt83 8182 1837(modi\207er)m 2(s)k
847 240 fnt82 480 1594(from)m 1004(the)s 240 fnt83 1352 1596(fd)m
848 240 fnt82 1604 1594(and)m 2008(is)s 2218(required)s 3072(if)s
849 240 fnt83 3289 1596(fd)m 240 fnt82 3541 1594(is)m 3751(not)s
850 4117(numeric.)s 1134 0 0 0 240 240 60 0 948 LoutGr2
851 0 0 moveto xsize 0 lineto stroke
852 grestore
853
854 grestore
855 122 fnt82 0 753(1)m gsave
856 58 726 translate
857 0.6953 1.0000 scale
858 192 fnt31 0 -42(userv)m
859
860 grestore
861 192 fnt82 505 683(is)m 673(short)s 1103(for)s 1373(`user)s
862 1802(services',)s 2566(and)s 2890(is)s 3058(pronounced)s 4010(`you-serv)s 2(e'.)k
863 240 fnt82 0 52(0.62)m 4809(User)s 5320(service)s 6052(daemon)s
864 6867(and)s 7271(client)s 7861(speci\207cation)s 
865 grestore
866
867 grestore
868
869 pgsave restore
870 showpage
871
872 %%Page: 5 5
873 %%BeginPageSetup
874 %%PageResources: font Times-Roman
875 %%+ font Times-Bold
876 %%+ font Courier-Bold
877 %%+ font Times-Italic
878 /pgsave save def
879 0.0500 dup scale 10 setlinewidth
880 %%EndPageSetup
881 gsave
882 0 0 translate
883 240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic
884 gsave
885 LoutPageSet
886 grestore
887 gsave
888 0 16840 translate
889 0.0000 rotate
890
891 grestore
892
893 grestore
894 gsave
895 0 16840 translate
896 0.0000 rotate
897 gsave
898 1417 -15423 translate
899 240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic
900 gsave
901 1 LoutMargSet
902 grestore
903 240 fnt84 8953 13844(5)m 240 fnt82 480 13254(The)m 908(modi\207er)s
904 1778(w)s 2(ords)k 2412(are:)s gsave
905 600 13068 translate
906 0.6953 1.0000 scale
907 240 fnt31 0 -52(read)m
908
909 grestore
910 gsave
911 960 12828 translate
912 0.6953 1.0000 scale
913 240 fnt31 0 -52(O_RDONLY)m 
914 grestore
915 1761 12774(:)m 1867(Allo)s 6(w)k
916 2513(reading)s 3283(and)s 3687(not)s 4053(writing.)s 4847(May)s
917 5340(not)s 5706(be)s 5988(used)s 6485(with)s gsave
918 6967 12828 translate
919 0.6953 1.0000 scale
920 240 fnt31
921 0 -52(write)m 
922 grestore
923 7527(or)s 7786(things)s 8422(that)s 960 12534(imply)m
924 1572(it.)s gsave
925 600 12348 translate
926 0.6953 1.0000 scale
927 240 fnt31 0 -52(write)m 
928 grestore
929 gsave
930 960 12108 translate
931 0.6953 1.0000 scale
932 240 fnt31 0 -52(O_WRONLY)m
933
934 grestore
935 1761 12054(:)m 1867(Allo)s 6(w)k 2513(writing)s 3256(and)s
936 3660(not)s 4026(reading.)s 240 fnt83 4847 12056(Doesn')m 7(t)k
937 5661(truncate)s 6511(or)s 6789(cr)s 8(eate)k 240 fnt82
938 7431 12054(without)m gsave
939 8222 12108 translate
940 0.6953 1.0000 scale
941 240 fnt31 0 -52(truncate)m 
942 grestore
943 960 11814(or)m gsave
944 1219 11868 translate
945 0.6953 1.0000 scale
946 240 fnt31
947 0 -52(create)m 
948 grestore
949 1819(.)s gsave
950 1923 11868 translate
951 0.6953 1.0000 scale
952 240 fnt31 0 -52(write)m 
953 grestore
954 2483(or)s
955 2742(things)s 3378(that)s 3796(imply)s 4408(it)s 4600(may)s
956 5066(not)s 5432(be)s 5714(used)s 6211(with)s gsave
957 6693 11868 translate
958 0.6953 1.0000 scale
959 240 fnt31
960 0 -52(read)m 
961 grestore
962 7093(.)s gsave
963 600 11628 translate
964 0.6953 1.0000 scale
965 240 fnt31 0 -52(overwrite)m 
966 grestore
967 960 11334(Equi)m 6(v)k 6(alent)k
968 2044(to)s gsave
969 2283 11388 translate
970 0.6953 1.0000 scale
971 240 fnt31 0 -52(write,create,truncate)m 
972 grestore
973 4385(.)s gsave
974 600 11148 translate
975 0.6953 1.0000 scale
976 240 fnt31
977 0 -52(create)m 
978 grestore
979 gsave
980 600 10908 translate
981 0.6953 1.0000 scale
982 240 fnt31 0 -52(creat)m 
983 grestore
984 gsave
985 960 10668 translate
986 0.6953 1.0000 scale
987 240 fnt31 0 -52(O_CREAT)m
988
989 grestore
990 1660 10614(:)m 1766(Creates)s 2533(the)s 2881(\207le)s 3242(if)s
991 3459(necessary)s 15(.)k 4477(Implies)s gsave
992 5244 10668 translate
993 0.6953 1.0000 scale
994 240 fnt31 0 -52(write)m
995
996 grestore
997 5744(.)s gsave
998 600 10428 translate
999 0.6953 1.0000 scale
1000 240 fnt31 0 -52(exclusive)m 
1001 grestore
1002 gsave
1003 600 10188 translate
1004 0.6953 1.0000 scale
1005 240 fnt31 0 -52(excl)m
1006
1007 grestore
1008 gsave
1009 960 9948 translate
1010 0.6953 1.0000 scale
1011 240 fnt31 0 -52(O_EXCL)m 
1012 grestore
1013 1560 9894(:)m 1666(F)s 3(ails)k
1014 2178(if)s 2395(the)s 2743(\207le)s 3104(already)s 3861(e)s 3(xists.)k
1015 4506(Implies)s gsave
1016 5273 9948 translate
1017 0.6953 1.0000 scale
1018 240 fnt31 0 -52(write)m 
1019 grestore
1020 5833(and)s gsave
1021 6237 9948 translate
1022 0.6953 1.0000 scale
1023 240 fnt31
1024 0 -52(create)m 
1025 grestore
1026 6837(.)s 6941(May)s 7434(not)s 7800(be)s
1027 8082(used)s 8579(with)s gsave
1028 960 9708 translate
1029 0.6953 1.0000 scale
1030 240 fnt31 0 -52(truncate)m 
1031 grestore
1032 1761 9654(.)m
1033 gsave
1034 600 9468 translate
1035 0.6953 1.0000 scale
1036 240 fnt31 0 -52(truncate)m 
1037 grestore
1038 gsave
1039 600 9228 translate
1040 0.6953 1.0000 scale
1041 240 fnt31 0 -52(trunc)m 
1042 grestore
1043 gsave
1044 960 8988 translate
1045 0.6953 1.0000 scale
1046 240 fnt31
1047 0 -52(O_TRUNC)m 
1048 grestore
1049 1660 8934(:)m 1766(T)s 8(runcate)k 2663(an)s 3(y)k
1050 3060(e)s 3(xisting)k 3867(\207le.)s 4276(Implies)s gsave
1051 5043 8988 translate
1052 0.6953 1.0000 scale
1053 240 fnt31
1054 0 -52(write)m 
1055 grestore
1056 5543(.)s 5647(May)s 6140(not)s 6506(be)s
1057 6788(used)s 7285(with)s gsave
1058 7767 8988 translate
1059 0.6953 1.0000 scale
1060 240 fnt31 0 -52(exclusive)m 
1061 grestore
1062 8668(.)s
1063 gsave
1064 600 8748 translate
1065 0.6953 1.0000 scale
1066 240 fnt31 0 -52(append)m 
1067 grestore
1068 gsave
1069 960 8508 translate
1070 0.6953 1.0000 scale
1071 240 fnt31 0 -52(O_APPEND)m 
1072 grestore
1073 1761 8454(:)m
1074 1867(All)s 2227(writes)s 2861(will)s 3287(append)s 4037(to)s
1075 4276(the)s 4624(\207le.)s 5033(Implies)s gsave
1076 5800 8508 translate
1077 0.6953 1.0000 scale
1078 240 fnt31 0 -52(write)m
1079
1080 grestore
1081 6360(\(b)s 4(ut)k 6801(not)s gsave
1082 7167 8508 translate
1083 0.6953 1.0000 scale
1084 240 fnt31 0 -52(create)m
1085
1086 grestore
1087 7767(\).)s gsave
1088 600 8268 translate
1089 0.6953 1.0000 scale
1090 240 fnt31 0 -52(sync)m 
1091 grestore
1092 gsave
1093 960 8028 translate
1094 0.6953 1.0000 scale
1095 240 fnt31 0 -52(O_SYNC)m
1096
1097 grestore
1098 1560 7974(:)m 1666(Do)s 2012(writes)s 2646(synchronously)s 15(.)k
1099 4132(Implies)s gsave
1100 4899 8028 translate
1101 0.6953 1.0000 scale
1102 240 fnt31 0 -52(write)m 
1103 grestore
1104 5399(.)s gsave
1105 600 7788 translate
1106 0.6953 1.0000 scale
1107 240 fnt31
1108 0 -52(wait)m 
1109 grestore
1110 gsave
1111 600 7548 translate
1112 0.6953 1.0000 scale
1113 240 fnt31 0 -52(nowait)m 
1114 grestore
1115 gsave
1116 600 7308 translate
1117 0.6953 1.0000 scale
1118 240 fnt31 0 -52(close)m
1119
1120 grestore
1121 960 7014(These)m 1587(modi\207ers)s 2541(control)s 3273(the)s 3621(beha)s 4(viour)k
1122 4634(of)s 4905(the)s 5253(client,)s 5890(with)s 6372(respect)s
1123 7108(to)s 7347(the)s 7695(pipes)s 8251(carrying)s 960 6774(data)m
1124 1418(to)s 1657(and)s 2061(from)s 2585(the)s 2933(service,)s
1125 3716(when)s 4292(the)s 4640(service)s 5372(terminates.)s 6470(See)s
1126 6871(belo)s 6(w)k 15(.)k gsave
1127 600 6588 translate
1128 0.6953 1.0000 scale
1129 240 fnt31 0 -52(fd)m
1130
1131 grestore
1132 960 6294(The)m 240 fnt83 1388 6296(\207lename)m 240 fnt82 2252 6294(is)m
1133 2462(not)s 2828(a)s 2994(\207lename)s 3873(b)s 4(ut)k
1134 4235(a)s 4401(numeric)s 5237(\207le)s 5598(descriptor)s 13(.)k
1135 6644(One)s 7099(or)s 7358(both)s 7841(of)s gsave
1136 8112 6348 translate
1137 0.6953 1.0000 scale
1138 240 fnt31
1139 0 -52(read)m 
1140 grestore
1141 8572(and)s gsave
1142 960 6107 translate
1143 0.6953 1.0000 scale
1144 240 fnt31 0 -52(write)m 
1145 grestore
1146 1520 6053(must)m
1147 2045(be)s 2327(speci\207ed,)s 3284(and)s 3688(no)s 3981(other)s
1148 4532(w)s 2(ords)k 5166(are)s 5513(allo)s 6(wed.)k
1149 6368(The)s 240 fnt83 6796 6055(\207lename)m 240 fnt82 7660 6053(may)m
1150 8126(also)s 8564(be)s gsave
1151 960 5867 translate
1152 0.6953 1.0000 scale
1153 240 fnt31 0 -52(stdin)m 
1154 grestore
1155 1460 5813(,)m
1156 gsave
1157 1567 5867 translate
1158 0.6953 1.0000 scale
1159 240 fnt31 0 -52(stdout)m 
1160 grestore
1161 2227(or)s gsave
1162 2486 5867 translate
1163 0.6953 1.0000 scale
1164 240 fnt31 0 -52(stderr)m
1165
1166 grestore
1167 3146(for)s 3484(\207le)s 3845(descriptor)s 4860(0,)s 5087(1)s
1168 5242(or)s 5501(2)s 5675(respecti)s 6(v)k 3(ely)k 15(.)k
1169 480 5251(If)m 701(no)s 240 fnt83 984 5253(modi\207er)m 2(s)k
1170 240 fnt82 1918 5251(which)m 2550(imply)s gsave
1171 3152 5305 translate
1172 0.6953 1.0000 scale
1173 240 fnt31 0 -52(read)m
1174
1175 grestore
1176 3602(or)s gsave
1177 3851 5305 translate
1178 0.6953 1.0000 scale
1179 240 fnt31 0 -52(write)m 
1180 grestore
1181 4401(are)s 4738(used)s
1182 5226(it)s 5408(is)s 5608(as)s 5848(if)s gsave
1183 6055 5305 translate
1184 0.6953 1.0000 scale
1185 240 fnt31
1186 0 -52(write)m 
1187 grestore
1188 6605(had)s 6999(been)s 7498(speci\207ed,)s 8445(e)s 3(xcept)k
1189 480 5011(that)m 898(if)s 1115(the)s 1463(\207ledescriptor)s 2783(0)s
1190 2958(of)s 3229(the)s 3577(service)s 4309(is)s 4519(being)s
1191 5104(opened)s 5854(\(either)s 6536(speci\207ed)s 7444(numerically)s 8639(or)s
1192 480 4771(with)m gsave
1193 962 4825 translate
1194 0.6953 1.0000 scale
1195 240 fnt31 0 -52(stdin)m 
1196 grestore
1197 1462(\))s 1590(it)s
1198 1782(is)s 1992(as)s 2242(if)s gsave
1199 2459 4825 translate
1200 0.6953 1.0000 scale
1201 240 fnt31 0 -52(overwrite)m
1202
1203 grestore
1204 3420(had)s 3824(been)s 4333(speci\207ed)s 5241(\(or)s gsave
1205 5579 4825 translate
1206 0.6953 1.0000 scale
1207 240 fnt31
1208 0 -52(write)m 
1209 grestore
1210 6139(if)s 6356(only)s gsave
1211 6836 4825 translate
1212 0.6953 1.0000 scale
1213 240 fnt31 0 -52(fd)m
1214
1215 grestore
1216 7096(w)s 2(as)k 7517(speci\207ed\).)s 480 4363(The)m 892(client)s
1217 1465(will)s 1874(also)s 2296(use)s gsave
1218 2654 4417 translate
1219 0.6953 1.0000 scale
1220 240 fnt31 0 -52(O_NOCTTY)m
1221
1222 grestore
1223 3498(when)s 4057(opening)s 4866(\207les)s 5298(speci\207ed)s 6189(by)s
1224 6466(the)s 6798(caller)s 9(,)k 7408(to)s 7630(a)s 4(v)k 4(oid)k
1225 8195(changing)s 480 4123(its)m 756(controlling)s 1858(terminal.)s 480 3715(By)m
1226 810(de)s 1032(f)s 2(ault)k 1523(stdin,)s 2091(std)s
1227 2368(out)s 2729(and)s 3129(stderr)s 3728(of)s 3995(the)s
1228 4338(ser)s 4616(vice)s 5066(will)s 5488(be)s 5766(con)s
1229 6109(nect)s 6507(ed)s 6786(to)s 7021(the)s 7365(cor)s
1230 7670(re)s 7851(spond)s 8422(ing)s 8776(de)s 8998(-)s
1231 480 3475(scrip)m 937(tors)s 1346(on)s 1643(the)s 1991(client.)s
1232 2625(Di)s 2858(ag)s 3077(nos)s 3401(tics)s 3783(from)s
1233 4307(the)s 4655(client)s 5245(and)s 5649(dae)s 5977(mon)s
1234 6460(will)s 6886(also)s 7324(ap)s 7543(pear)s 8014(on)s
1235 8311(stderr)s 13(.)k 480 3067(If)m gsave
1236 710 3121 translate
1237 0.6953 1.0000 scale
1238 240 fnt31 0 -52(wait)m
1239
1240 grestore
1241 1170(is)s 1380(speci\207ed,)s 2337(the)s 2685(client)s 3275(will)s
1242 3701(w)s 2(ait)k 4170(for)s 4508(the)s 4856(pipe)s
1243 5324(to)s 5563(be)s 5845(closed,)s 6563(and)s 6967(only)s
1244 7447(e)s 3(xit)k 7862(after)s 8358(this)s 480 2827(has)m
1245 850(happened.)s 1872(This)s 2348(means)s 3010(that)s 3428(either)s
1246 4031(the)s 4379(recei)s 6(ving)k 5315(end)s 5719(of)s
1247 5990(the)s 6338(pipe)s 6806(connection)s 7913(w)s 2(as)k
1248 8334(closed)s 480 2587(while)m 1067(data)s 1525(w)s 2(as)k
1249 1946(still)s 2358(a)s 4(v)k 6(ailable)k 3266(at)s
1250 3498(the)s 3846(sending)s 4644(end,)s 5097(or)s 5356(that)s
1251 5774(the)s 6122(end)s 6526(of)s 6797(\207le)s 7158(w)s 2(as)k
1252 7579(reached)s 8380(on)s 8677(the)s 480 2347(reading)m 1250(\207le)s
1253 1611(descriptor)s 13(.)k 2657(Errors)s 3304(encountered)s 4531(reading)s
1254 5301(or)s 5560(writing)s 6303(in)s 6546(the)s 6894(client)s
1255 7484(at)s 7716(this)s 8112(stage)s 8659(will)s 480 2106(be)m
1256 762(considered)s 1855(a)s 2021(system)s 2744(error)s 3266(and)s
1257 3670(cause)s 4256(the)s 4603(client)s 5193(to)s 5431(e)s 3(xit)k
1258 5845(with)s 6327(status)s 6921(255,)s 7387(b)s 4(ut)k
1259 7749(will)s 8174(not)s 8539(cause)s 480 1866(disconnection)m 1866(at)s
1260 2098(the)s 2446(service)s 3178(side)s 3619(since)s 4166(the)s
1261 4514(service)s 5246(has)s 5616(already)s 6373(e)s 3(xited.)k
1262 480 1458(If)m gsave
1263 710 1512 translate
1264 0.6953 1.0000 scale
1265 240 fnt31 0 -52(close)m 
1266 grestore
1267 1270(is)s 1480(speci\207ed)s
1268 2388(the)s 2736(client)s 3326(will)s 3752(immediately)s 5000(close)s
1269 5547(the)s 5895(pipe)s 6363(connection)s 7470(by)s 7764(killing)s
1270 8441(the)s 480 1218(rele)m 6(v)k 6(ant)k 1297(cop)s 2(y)k
1271 1815(of)s gsave
1272 2086 1272 translate
1273 0.6953 1.0000 scale
1274 240 fnt31 0 -52(cat)m 
1275 grestore
1276 2386(.)s 2490(If)s
1277 2720(the)s 3068(service)s 3800(uses)s 4263(the)s 4611(descriptor)s
1278 5626(it)s 5818(will)s 6244(get)s gsave
1279 6596 1272 translate
1280 0.6953 1.0000 scale
1281 240 fnt31 0 -52(SIGPIPE)m
1282
1283 grestore
1284 7356(\(or)s gsave
1285 7694 1272 translate
1286 0.6953 1.0000 scale
1287 240 fnt31 0 -52(EPIPE)m 
1288 grestore
1289 8194(\))s 8322(for)s
1290 8660(a)s 480 978(writing)m 1218(descriptor)s 2228(or)s 2482(end)s
1291 2881(of)s 3147(\207le)s 3502(for)s 3835(a)s 3996(reading)s
1292 4761(one;)s 5214(the)s 5557(descriptor)s 6566(opened)s 7311(by)s
1293 7600(or)s 7854(passed)s 8545(to)s 8778(the)s 480 738(client)m
1294 1070(will)s 1496(also)s 1934(be)s 2216(closed.)s 0 52(User)m
1295 511(service)s 1243(daemon)s 2058(and)s 2462(client)s 3052(speci\207cation)s
1296 8652(0.62)s 
1297 grestore
1298
1299 grestore
1300
1301 pgsave restore
1302 showpage
1303
1304 %%Page: 6 6
1305 %%BeginPageSetup
1306 %%PageResources: font Times-Roman
1307 %%+ font Times-Bold
1308 %%+ font Courier-Bold
1309 %%+ font Times-Italic
1310 /pgsave save def
1311 0.0500 dup scale 10 setlinewidth
1312 %%EndPageSetup
1313 gsave
1314 0 0 translate
1315 240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic
1316 gsave
1317 LoutPageSet
1318 grestore
1319 gsave
1320 0 16840 translate
1321 0.0000 rotate
1322
1323 grestore
1324
1325 grestore
1326 gsave
1327 0 16840 translate
1328 0.0000 rotate
1329 gsave
1330 1417 -15423 translate
1331 240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic
1332 gsave
1333 0 LoutMargSet
1334 grestore
1335 240 fnt84 0 13842(6)m 240 fnt82 480 13251(If)m gsave
1336 707 13305 translate
1337 0.6953 1.0000 scale
1338 240 fnt31
1339 0 -52(nowait)m 
1340 grestore
1341 1364(is)s 1570(speci\207ed)s 2475(then)s 2941(the)s
1342 3285(client)s 3872(will)s 4294(not)s 4657(w)s 2(ait)k
1343 5123(and)s 5523(the)s 5868(connection)s 6972(will)s 7394(remain)s
1344 8111(open)s 8630(after)s 480 13011(the)m 824(client)s 1409(terminates.)s
1345 2502(Data)s 3008(may)s 3469(continue)s 4344(to)s 4578(be)s
1346 4856(passed)s 5547(between)s 6396(the)s 6739(inheritors)s 7700(of)s
1347 7966(the)s 8309(rele)s 6(v)k 6(ant)k 480 12771(descriptor)m
1348 1484(on)s 1770(the)s 2107(service)s 2828(side)s 3258(and)s
1349 3651(the)s 3988(corresponding)s 5399(\207le)s 5749(or)s 5997(descriptor)s
1350 7001(on)s 7287(the)s 7624(client)s 8203(side)s 8633(until)s
1351 480 12531(either)m 1071(side)s 1499(closes)s 2121(their)s 2606(descriptor)s 13(.)k
1352 3639(This)s 4102(should)s 4786(not)s 5140(usually)s 5872(be)s
1353 6141(speci\207ed)s 7036(for)s 7362(stderr)s 7952(\(or)s 8277(stdout)s
1354 8909(if)s gsave
1355 480 12345 translate
1356 0.6953 1.0000 scale
1357 240 fnt31 0 -52(\211\211signals)m 1440(stdout)s 
1358 grestore
1359 2141 12291(is)m
1360 2350(used\))s 2916(since)s 3462(diagnostics)s 4588(from)s 5111(the)s
1361 5457(service)s 6188(side)s 6628(may)s 7093(arri)s 6(v)k 3(e)k
1362 7695(after)s 8190(the)s 8536(client)s 480 12051(has)m 850(e)s 3(xited)k
1363 1489(and)s 1893(be)s 2175(confused)s 3097(with)s 3579(e)s 3(xpected)k
1364 4484(output.)s 480 11643(The)m 908(def)s 2(ault)k 1629(is)s
1365 gsave
1366 1839 11697 translate
1367 0.6953 1.0000 scale
1368 240 fnt31 0 -52(wait)m 
1369 grestore
1370 2299(for)s 2637(writing)s 3380(\207le)s
1371 3741(descriptors)s 4840(and)s gsave
1372 5244 11697 translate
1373 0.6953 1.0000 scale
1374 240 fnt31 0 -52(close)m 
1375 grestore
1376 5804(for)s
1377 6142(reading)s 6912(ones.)s gsave
1378 120 11303 translate
1379 0.6953 1.0000 scale
1380 240 fnt31 0 -52(\211w)m gsave
1381 288 0 translate
1382 1.4219 1.0000 scale
1383 240 fnt83
1384 0 -52(fd)m 
1385 grestore
1386 561(=)s gsave
1387 705 0 translate
1388 1.4219 1.0000 scale
1389 240 fnt83 0 -52(action)m 
1390 grestore
1391
1392 grestore
1393 gsave
1394 120 11063 translate
1395 0.6953 1.0000 scale
1396 240 fnt31
1397 0 -52(\211\211fdwait)m gsave
1398 1152 0 translate
1399 1.4219 1.0000 scale
1400 240 fnt83 0 -52(fd)m 
1401 grestore
1402 1425(=)s gsave
1403 1569 0 translate
1404 1.4219 1.0000 scale
1405 240 fnt83
1406 0 -52(action)m 
1407 grestore
1408
1409 grestore
1410 480 10769(Sets)m 924(the)s 1267(action)s 1903(on)s
1411 2194(termination)s 3347(of)s 3613(the)s 3956(service)s 4682(for)s
1412 5015(the)s 5358(speci\207ed)s 6261(\207le)s 6616(descriptor;)s 240 fnt83
1413 7678 10771(action)m 240 fnt82 8325 10769(must)m 8844(be)s gsave
1414 480 10583 translate
1415 0.6953 1.0000 scale
1416 240 fnt31
1417 0 -52(wait)m 
1418 grestore
1419 880 10529(,)m gsave
1420 981 10583 translate
1421 0.6953 1.0000 scale
1422 240 fnt31 0 -52(nowait)m 
1423 grestore
1424 1634(or)s
1425 gsave
1426 1886 10583 translate
1427 0.6953 1.0000 scale
1428 240 fnt31 0 -52(close)m 
1429 grestore
1430 2439(as)s 2682(described)s 3650(abo)s 3(v)k 3(e.)k
1431 4313(The)s 4734(\207le)s 5088(descriptor)s 6096(must)s 6615(be)s
1432 6890(speci\207ed)s 7791(as)s 8034(open)s 8550(when)s 480 10289(this)m
1433 876(option)s 1545(is)s 1755(encountered;)s 3036(this)s 3432(option)s
1434 4101(is)s 4311(o)s 3(v)k 3(erridden)k 5398(by)s
1435 5692(an)s 3(y)k 6089(later)s gsave
1436 6572 10343 translate
1437 0.6953 1.0000 scale
1438 240 fnt31 0 -52(\211\211file)m
1439
1440 grestore
1441 7232(or)s gsave
1442 7491 10343 translate
1443 0.6953 1.0000 scale
1444 240 fnt31 0 -52(\211\211fdwait)m 
1445 grestore
1446 8352(option)s 480 10049(-)m
1447 608(e)s 6(v)k 3(en)k 1108(by)s 1402(a)s
1448 gsave
1449 1568 10103 translate
1450 0.6953 1.0000 scale
1451 240 fnt31 0 -52(\211\211file)m 
1452 grestore
1453 2228(which)s 2870(does)s 3360(not)s
1454 3726(specify)s 4470(an)s 4753(action)s 5394(on)s 5691(termination)s
1455 6849(\(in)s 7171(this)s 7567(case)s 8034(the)s 8382(def)s 2(ault)k
1456 480 9809(will)m 906(be)s 1188(used,)s 1734(as)s 1984(described)s
1457 2958(abo)s 3(v)k 3(e\).)k gsave
1458 120 9479 translate
1459 0.6953 1.0000 scale
1460 240 fnt31 0 -52(\211D)m
1461 gsave
1462 288 0 translate
1463 1.4219 1.0000 scale
1464 240 fnt83 0 -52(name)m 
1465 grestore
1466 1016(=)s gsave
1467 1160 0 translate
1468 1.4219 1.0000 scale
1469 240 fnt83 0 -52(value)m
1470
1471 grestore
1472
1473 grestore
1474 gsave
1475 120 9239 translate
1476 0.6953 1.0000 scale
1477 240 fnt31 0 -52(\211\211defvar)m gsave
1478 1296 0 translate
1479 1.4219 1.0000 scale
1480 240 fnt83 0 -52(name)m 
1481 grestore
1482 2024(=)s
1483 gsave
1484 2168 0 translate
1485 1.4219 1.0000 scale
1486 240 fnt83 0 -52(value)m 
1487 grestore
1488
1489 grestore
1490 480 8945(Set)m 845(a)s 1011(user)s 4(-)k
1491 1473(de\207ned)s 2236(v)s 6(ari)k 2595(able)s 240 fnt83
1492 3049 8947(name)m 240 fnt82 3621 8945(to)m 240 fnt83 3860 8947(val)m
1493 4152(ue)s 240 fnt82 4371 8945(.)m 4475(These)s 5102(user)s 4(-)k
1494 5564(de\207ned)s 6327(v)s 6(ari)k 6686(ables)s 7228(are)s
1495 7575(made)s 8149(a)s 4(v)k 6(ail)k 8598(able)s
1496 480 8705(in)m 723(the)s 1071(con)s 1414(\207g)s 1660(u)s
1497 1775(ra)s 1960(tion)s 2389(lan)s 2678(guage)s 3306(as)s
1498 3556(the)s 3904(pa)s 4130(ram)s 4501(e)s 4603(ters)s
1499 gsave
1500 4998 8759 translate
1501 0.6953 1.0000 scale
1502 240 fnt31 0 -52(u\211)m gsave
1503 288 0 translate
1504 1.4219 1.0000 scale
1505 240 fnt83 0 -52(name)m 
1506 grestore
1507
1508 grestore
1509 5764(and)s
1510 6168(are)s 6515(passed)s 7211(to)s 7450(the)s 7798(ser)s
1511 8076(vice)s 8530(in)s 8773(en)s 8996(-)s 480 8465(vi)m
1512 660(ron)s 976(ment)s 1508(v)s 6(ari)k 1867(ables)s
1513 gsave
1514 2402 8519 translate
1515 0.6953 1.0000 scale
1516 240 fnt31 0 -52(USERV_U_)m gsave
1517 1152 0 translate
1518 1.4219 1.0000 scale
1519 240 fnt83 0 -52(name)m 
1520 grestore
1521
1522 grestore
1523 3709(.)s
1524 240 fnt83 3806 8467(name)m 240 fnt82 4371 8465(may)m 4831(con)s
1525 5174(tain)s 5582(only)s 6055(al)s 6222(phanu)s 6803(mer)s
1526 7174(ics)s 7483(and)s 7880(un)s 8117(der)s 8422(scores,)s
1527 480 8225(and)m 884(must)s 1409(start)s 1879(with)s 2360(a)s
1528 2526(let)s 2764(ter)s 13(.)k 3106(If)s 3335(se)s 6(v)k
1529 3643(er)s 3828(al)s 4055(de\207)s 4406(ni)s 4586(tions)s
1530 5102(are)s 5449(gi)s 6(v)k 5744(en)s 6026(for)s
1531 6364(the)s 6712(same)s 240 fnt83 7258 8227(name)m 240 fnt82
1532 7830 8225(then)m 8299(only)s 8778(the)s 480 7985(last)m 871(is)s
1533 1081(ef)s 1278(fec)s 1562(ti)s 6(v)k 3(e.)k
1534 gsave
1535 120 7694 translate
1536 0.6953 1.0000 scale
1537 240 fnt31 0 -52(\211t)m gsave
1538 432 0 translate
1539 1.4219 1.0000 scale
1540 240 fnt83 0 -52(seconds)m 
1541 grestore
1542
1543 grestore
1544 gsave
1545 120 7454 translate
1546 0.6953 1.0000 scale
1547 240 fnt31
1548 0 -52(\211\211timeout)m gsave
1549 1440 0 translate
1550 1.4219 1.0000 scale
1551 240 fnt83 0 -52(seconds)m 
1552 grestore
1553
1554 grestore
1555 480 7160(T)m 8(ime)k
1556 1029(out)s 1392(the)s 1736(service)s 2465(if)s 2678(it)s
1557 2867(tak)s 2(es)k 3403(longer)s 4071(than)s 240 fnt83
1558 4536 7162(seconds)m 240 fnt82 5346 7160(seconds)m 6151(\(a)s 6393(positi)s 6(v)k 3(e)k
1559 7193(inte)s 3(ger)k 9(,)k 7948(in)s 8187(decimal\).)s
1560 480 6919(T)m 8(imeout)k 1331(will)s 1746(produce)s 2562(a)s
1561 2717(diagnostic)s 3742(on)s 4028(stderr)s 4620(and)s 5013(an)s
1562 5284(e)s 3(xit)k 5688(status)s 6272(of)s 6532(255.)s
1563 6985(If)s 240 fnt83 7204 6921(seconds)m 240 fnt82 8006 6919(is)m
1564 8205(zero)s 8657(then)s 480 6679(no)m 773(timeout)s 1563(will)s
1565 1989(be)s 2271(implemented)s 3577(\(this)s 4052(is)s 4262(the)s
1566 4610(def)s 2(ault\).)k gsave
1567 120 6339 translate
1568 0.6953 1.0000 scale
1569 240 fnt31 0 -52(\211S)m 
1570 grestore
1571 240 fnt83
1572 380 6287(method)m gsave
1573 120 6099 translate
1574 0.6953 1.0000 scale
1575 240 fnt31 0 -52(\211\211signals)m 
1576 grestore
1577 1081 6047(method)m 240 fnt82
1578 480 5805(Af)m 6(fects)k 1212(the)s 1544(handling)s 2420(of)s
1579 2675(the)s 3008(e)s 3(xit)k 3407(status)s 3987(when)s
1580 4547(the)s 4879(service)s 5596(terminates)s 6625(due)s 7012(to)s
1581 7235(a)s 7386(signal.)s 8045(\(The)s 8536(client)s 480 5564(will)m
1582 906(al)s 2(w)k 2(ays)k 1617(\207nish)s 2206(by)s
1583 2500(calling)s gsave
1584 3203 5618 translate
1585 0.6953 1.0000 scale
1586 240 fnt31 0 -52(_exit)m 
1587 grestore
1588 3703(,)s 3810(so)s
1589 4076(that)s 4494(only)s 4974(numbers)s 5849(from)s 6373(0)s
1590 6548(to)s 6787(255)s 7193(can)s 7582(be)s 7864(returned)s
1591 8718(and)s 480 5324(not)m 830(the)s 1162(full)s 1532(range)s
1592 2102(of)s 2357(numbers)s 3216(and)s 3603(signal)s 4213(indications)s
1593 5297(which)s 5922(can)s 6295(be)s 6561(returned)s 7398(by)s
1594 7676(the)s gsave
1595 8008 5378 translate
1596 0.6953 1.0000 scale
1597 240 fnt31 0 -52(wait)m 
1598 grestore
1599 8451(f)s 2(amily)k
1600 480 5084(of)m 751(system)s 1475(calls.\))s 480 4676(The)m 240 fnt83
1601 908 4678(method)m 240 fnt82 1679 4676(may)m 2145(be)s 2427(one)s
1602 2829(of)s 3100(the)s 3448(follo)s 6(wing:)k 240 fnt83
1603 600 4438(status)m 240 fnt82 960 4196(The)m 1386(client')s 13(s)k
1604 2123(e)s 3(xit)k 2536(status)s 3128(will)s 3552(be)s
1605 240 fnt83 3831 4198(status)m 240 fnt82 4384 4196(.)m 4486(This)s
1606 4959(will)s 5383(not)s 5746(be)s 6026(distinguishable)s 7527(from)s
1607 8049(the)s 8394(service)s 960 3955(really)m 1557(ha)s 4(ving)k
1608 2258(e)s 3(xited)k 2897(with)s 3379(code)s 240 fnt83
1609 3887 3957(status)m 240 fnt82 4440 3955(.)m 4544(This)s 5020(method)s
1610 5796(is)s 6006(the)s 6354(def)s 2(ault,)k 7122(with)s
1611 7604(a)s 240 fnt83 7770 3957(status)m 240 fnt82 8383 3955(of)m
1612 8654(254.)s gsave
1613 600 3769 translate
1614 0.6953 1.0000 scale
1615 240 fnt31 0 -52(number)m 
1616 grestore
1617 gsave
1618 600 3529 translate
1619 0.6953 1.0000 scale
1620 240 fnt31 0 -52(number\211nocore)m
1621
1622 grestore
1623 960 3235(The)m 1388(client')s 13(s)k 2128(e)s 3(xit)k
1624 2543(status)s 3138(will)s 3564(be)s 3846(the)s 4194(number)s
1625 4985(of)s 5256(the)s 5604(signal)s 6230(which)s 6872(caused)s
1626 7581(the)s 7929(termination)s 960 2995(of)m 1231(the)s 1579(service.)s
1627 2359(If)s gsave
1628 2589 3049 translate
1629 0.6953 1.0000 scale
1630 240 fnt31 0 -52(number)m 
1631 grestore
1632 3249(is)s 3459(used)s
1633 3956(rather)s 4572(than)s gsave
1634 5041 3049 translate
1635 0.6953 1.0000 scale
1636 240 fnt31 0 -52(number\211nocore)m 
1637 grestore
1638 6402(then)s
1639 6871(128)s 7278(will)s 7704(be)s 7986(added)s 960 2755(if)m
1640 1177(the)s 1525(service)s 2257(dumped)s 3087(core.)s gsave
1641 3602 2809 translate
1642 0.6953 1.0000 scale
1643 240 fnt31
1644 0 -52(number)m 
1645 grestore
1646 4262(is)s 4472(v)s 3(ery)k 4948(lik)s 2(e)k
1647 5360(the)s 5708(e)s 3(xit)k 6123(code)s 6631(mangling)s
1648 7588(done)s 8110(by)s 8404(the)s 960 2515(Bourne)m 1721(shell.)s
1649 gsave
1650 600 2329 translate
1651 0.6953 1.0000 scale
1652 240 fnt31 0 -52(highbit)m 
1653 grestore
1654 960 2035(The)m 1388(client')s 13(s)k
1655 2128(e)s 3(xit)k 2543(status)s 3138(will)s 3564(be)s
1656 3846(the)s 4194(number)s 4985(of)s 5256(the)s 5604(signal)s
1657 6230(with)s 6712(128)s 7119(added.)s 7795(If)s 8025(the)s
1658 8373(service)s 960 1795(e)m 3(xits)k 1459(normally)s 2376(with)s
1659 2858(an)s 3141(e)s 3(xit)k 3556(code)s 4064(of)s
1660 4335(greater)s 5057(than)s 5526(127)s 5934(then)s 6403(127)s
1661 6811(will)s 7237(be)s 7519(returned.)s gsave
1662 600 1609 translate
1663 0.6953 1.0000 scale
1664 240 fnt31 0 -52(stdout)m
1665
1666 grestore
1667 960 1315(The)m 1375(service')s 13(s)k 2247(numeric)s 3069(w)s 2(ait)k
1668 3524(status)s 4105(as)s 4341(tw)s 2(o)k 4737(decimal)s
1669 5534(numbers)s 6395(\(high)s 6943(byte)s 7397(\207rst\))s 7882(and)s
1670 8272(a)s 8424(te)s 3(xtual)k 960 1075(description)m 2079(of)s
1671 2350(its)s 2626(meaning)s 3503(will)s 3929(be)s 4211(printed)s
1672 4946(to)s 5185(the)s 5533(client')s 13(s)k 6273(standard)s
1673 7141(output.)s 7857(It)s 8062(will)s 8488(be)s 960 835(preceded)m
1674 1865(by)s 2142(a)s 2292(ne)s 6(wline)k 3082(and)s
1675 3470(follo)s 6(wed)k 4355(by)s 4633(an)s 4899(e)s 3(xtra)k
1676 5417(ne)s 6(wline,)k 6258(and)s 6646(the)s 6977(numbers)s
1677 7836(are)s 8166(separated)s 0 52(0.62)m 4809(User)s 5320(service)s
1678 6052(daemon)s 6867(and)s 7271(client)s 7861(speci\207cation)s 
1679 grestore
1680
1681 grestore
1682
1683 pgsave restore
1684 showpage
1685
1686 %%Page: 7 7
1687 %%BeginPageSetup
1688 %%PageResources: font Times-Roman
1689 %%+ font Times-Bold
1690 %%+ font Courier-Bold
1691 %%+ font Times-Italic
1692 /pgsave save def
1693 0.0500 dup scale 10 setlinewidth
1694 %%EndPageSetup
1695 gsave
1696 0 0 translate
1697 240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic
1698 gsave
1699 LoutPageSet
1700 grestore
1701 gsave
1702 0 16840 translate
1703 0.0000 rotate
1704
1705 grestore
1706
1707 grestore
1708 gsave
1709 0 16840 translate
1710 0.0000 rotate
1711 gsave
1712 1417 -15423 translate
1713 240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic
1714 gsave
1715 1 LoutMargSet
1716 grestore
1717 240 fnt84 8951 13844(7)m 240 fnt82 960 13256(from)m 1484(each)s
1718 1979(other)s 2530(and)s 2934(from)s 3458(the)s 3806(te)s 3(xtual)k
1719 4508(description)s 5627(by)s 5921(single)s 6548(spaces.)s 7276(The)s
1720 7704(e)s 3(xit)k 8119(status)s 8714(of)s 960 13016(the)m
1721 1308(client)s 1898(will)s 2324(be)s 2606(zero,)s 3124(unless)s
1722 3773(a)s 3939(system)s 4663(error)s 5186(occurs)s 5861(in)s
1723 6104(which)s 6746(case)s 7213(no)s 7506(e)s 3(xit)k
1724 7921(status)s 8516(and)s 960 12776(description)m 2079(will)s 2505(be)s
1725 2787(printed)s 3522(to)s 3761(stdout,)s 4453(and)s 4857(an)s
1726 5140(error)s 5663(message)s 6529(will)s 6955(be)s 7237(printed)s
1727 7972(to)s 8211(stderr)s 960 12536(as)m 1210(usual.)s 480 12024(Problems)m
1728 1420(such)s 1902(as)s 2137(client)s 2713(usage)s 3299(errors,)s
1729 3948(the)s 4281(service)s 4999(not)s 5351(being)s 5921(found)s
1730 6524(or)s 6768(permission)s 7860(being)s 8430(denied)s 480 11784(or)m
1731 739(f)s 2(ailure)k 1415(of)s 1686(a)s 1852(system)s
1732 2576(call)s 2975(are)s 3322(system)s 4046(errors.)s 4706(An)s
1733 5056(error)s 5579(message)s 6445(describing)s 7494(the)s 7842(problem)s
1734 8699(will)s 480 11543(be)m 758(printed)s 1489(on)s 1782(the)s
1735 2125(client')s 13(s)k 2861(stderr)s 9(,)k 3498(and)s
1736 3898(the)s 4241(client')s 13(s)k 4977(e)s 3(xit)k
1737 5388(status)s 5978(will)s 6400(be)s 6678(255.)s 7138(If)s
1738 7363(the)s 7707(client)s 8293(dies)s 8724(due)s 480 11303(to)m
1739 719(a)s 885(signal)s 1511(this)s 1907(should)s 2604(be)s
1740 2886(treated)s 3593(as)s 3843(a)s 4009(serious)s 4737(system)s
1741 5461(error)s 13(.)k gsave
1742 120 10963 translate
1743 0.6953 1.0000 scale
1744 240 fnt31 0 -52(\211H)m 
1745 grestore
1746 gsave
1747 120 10723 translate
1748 0.6953 1.0000 scale
1749 240 fnt31
1750 0 -52(\211\211hidecwd)m 
1751 grestore
1752 480 10429(Pre)m 6(v)k 3(ents)k 1345(the)s
1753 1693(calling)s 2396(process')s 13(s)k 3323(current)s 4059(directory)s
1754 4975(name)s 5549(from)s 6073(being)s 6658(passed)s 7354(to)s
1755 7593(the)s 7941(service;)s 8729(the)s 480 10189(null)m 907(string)s
1756 1504(will)s 1930(be)s 2212(passed)s 2908(instead.)s gsave
1757 120 9849 translate
1758 0.6953 1.0000 scale
1759 240 fnt31
1760 0 -52(\211P)m 
1761 grestore
1762 gsave
1763 120 9609 translate
1764 0.6953 1.0000 scale
1765 240 fnt31 0 -52(\211\211sigpipe)m 
1766 grestore
1767 480 9315(If)m 700(the)s
1768 1038(service)s 1760(program)s 2620(is)s 2820(terminated)s 3888(due)s
1769 4280(to)s 4509(a)s gsave
1770 4665 9369 translate
1771 0.6953 1.0000 scale
1772 240 fnt31 0 -52(SIGPIPE)m 
1773 grestore
1774 5415(the)s
1775 5753(e)s 3(xit)k 6157(status)s 6742(of)s 7003(the)s
1776 7341(client)s 7921(will)s 8337(be)s 8608(zero,)s 480 9075(e)m 6(v)k 3(en)k
1777 967(if)s 1170(it)s 1349(w)s 2(ould)k 1990(ha)s 4(v)k 3(e)k
1778 2477(been)s 2973(something)s 4009(else)s 4423(according)s 5405(to)s
1779 5630(the)s 5965(e)s 3(xit)k 6366(status)s 6948(method)s
1780 7710(speci\207ed.)s 8650(This)s 480 8835(option)m 1149(has)s 1519(no)s
1781 1812(ef)s 6(fect)k 2408(on)s 2705(the)s 3053(code)s
1782 3561(and)s 3965(description)s 5084(printed)s 5819(if)s 6036(the)s
1783 6384(e)s 3(xit)k 6799(status)s 7394(method)s gsave
1784 8170 8889 translate
1785 0.6953 1.0000 scale
1786 240 fnt31
1787 0 -52(stdout)m 
1788 grestore
1789 8830(is)s 480 8595(in)m 723(use.)s gsave
1790 120 8305 translate
1791 0.6953 1.0000 scale
1792 240 fnt31
1793 0 -52(\211h)m 
1794 grestore
1795 gsave
1796 120 8065 translate
1797 0.6953 1.0000 scale
1798 240 fnt31 0 -52(\211\211help)m 
1799 grestore
1800 gsave
1801 120 7825 translate
1802 0.6953 1.0000 scale
1803 240 fnt31 0 -52(\211\211copyright)m
1804
1805 grestore
1806 gsave
1807 480 7585 translate
1808 0.6953 1.0000 scale
1809 240 fnt31 0 -52(\211h)m 
1810 grestore
1811 740 7531(or)m gsave
1812 999 7585 translate
1813 0.6953 1.0000 scale
1814 240 fnt31 0 -52(\211\211help)m
1815
1816 grestore
1817 1659(prints)s 2254(the)s 2602(client')s 13(s)k 3342(usage)s
1818 3943(message;)s gsave
1819 4865 7585 translate
1820 0.6953 1.0000 scale
1821 240 fnt31 0 -52(\211\211copyright)m 
1822 grestore
1823 6026(prints)s 6621(the)s
1824 6969(cop)s 2(yright)k 7944(and)s 8348(lack)s 8807(of)s
1825 480 7291(w)m 2(arranty)k 1381(notice.)s 9066 670 0 670 240 240 60 0 6161 LoutGr2
1826 newpath 0 ysize 0.3 ft sub moveto
1827 xsize 0 rlineto
1828 0 0.1 ft rlineto
1829 xsize neg 0 rlineto
1830 closepath fill
1831 grestore
1832 320 fnt84 0 66(2.2.)m
1833 628(Security-o)s 3(v)k 3(erriding)k 3373(options)s 
1834 grestore
1835 0 5699(There)m
1836 613(are)s 960(also)s 1398(some)s 1959(options)s 2715(which)s
1837 3357(are)s 3704(a)s 4(v)k 6(ailable)k 4612(for)s
1838 4950(deb)s 4(ugging)k 6011(and)s 6415(to)s 6654(allo)s 6(w)k
1839 7233(the)s 7581(system)s 0 5459(administrator)m 1333(to)s 1572(o)s 3(v)k 3(erride)k
1840 2418(a)s 2584(user')s 13(s)k 3192(polic)s 3(y)k 15(.)k
1841 3876(These)s 4503(options)s 5259(are)s 5606(a)s 4(v)k 6(ailable)k
1842 6514(only)s 6994(if)s 7211(the)s 7559(client)s 8149(is)s
1843 8359(called)s 0 5219(by)m 294(root)s 739(or)s 998(if)s
1844 1215(the)s 1563(calling)s 2266(user)s 2724(is)s 2934(the)s
1845 3282(same)s 3829(as)s 4079(the)s 4427(service)s 5159(user)s 13(.)k
1846 gsave
1847 120 4865 translate
1848 0.6953 1.0000 scale
1849 240 fnt31 0 -52(\211\211override)m gsave
1850 1584 0 translate
1851 1.4219 1.0000 scale
1852 240 fnt83 0 -52(con\207gur)m 3(ation-data)k
1853
1854 grestore
1855
1856 grestore
1857 gsave
1858 120 4625 translate
1859 0.6953 1.0000 scale
1860 240 fnt31 0 -52(\211\211override\211file)m gsave
1861 2304 0 translate
1862 1.4219 1.0000 scale
1863 240 fnt83 0 -52(\207lename)m 
1864 grestore
1865
1866 grestore
1867 480 4331(Do)m
1868 826(not)s 1192(read)s 1661(the)s 2009(usual)s 2569(con\207guration)s
1869 3902(\207les.)s 4404(Instead,)s 5201(the)s 5549(client)s 6139(sends)s
1870 240 fnt83 6722 4333(con\207gur)m 3(ation-data)k 240 fnt82 480 4090(\(follo)m 6(wed)k
1871 1461(by)s 1755(a)s 1921(ne)s 6(wline\))k 2800(or)s
1872 3059(the)s 3407(contents)s 4255(of)s 240 fnt83 4526 4092(\207lename)m
1873 240 fnt82 5390 4090(\(which)m 6111(is)s 6321(opened)s 7071(in)s
1874 7314(the)s 7662(conte)s 3(xt)k 8423(of)s 8694(the)s
1875 480 3849(client\))m 1138(to)s 1377(the)s 1725(daemon)s 2540(and)s
1876 2944(the)s 3292(daemon)s 4107(uses)s 4570(that)s 4988(data)s
1877 5446(instead.)s 6227(The)s 240 fnt83 6655 3851(con\207gur)m 3(ation-data)k
1878 240 fnt82 8503 3849(must)m 480 3609(all)m 772(be)s 1052(in)s
1879 1293(one)s 1693(ar)s 4(gument.)k 2694(It)s 2897(will)s
1880 3321(ha)s 4(v)k 3(e)k 3820(a)s 3984(single)s
1881 4609(ne)s 6(wline)k 5414(appended)s 6388(so)s 6652(that)s
1882 7068(a)s 7232(single)s 7857(directi)s 6(v)k 3(e)k
1883 8737(can)s 480 3369(easily)m 1083(be)s 1357(gi)s 6(v)k 3(en,)k
1884 1979(b)s 4(ut)k 2333(if)s 2542(more)s 3080(than)s
1885 3541(one)s 3935(directi)s 6(v)k 3(e)k 4809(is)s
1886 5011(required)s 5857(it)s 6040(will)s 6458(ha)s 4(v)k 3(e)k
1887 6951(to)s 7182(contain)s 7935(one)s 8329(or)s 8579(more)s
1888 480 3129(real)m 892(ne)s 6(wlines.)k gsave
1889 120 2838 translate
1890 0.6953 1.0000 scale
1891 240 fnt31 0 -52(\211\211spoof\211user)m
1892 gsave
1893 1872 0 translate
1894 1.4219 1.0000 scale
1895 240 fnt83 0 -52(user)m 
1896 grestore
1897
1898 grestore
1899 480 2544(Pretend)m 1268(to)s 1507(the)s
1900 1855(service)s 2587(that)s 3005(it)s 3197(is)s 3407(being)s
1901 3992(called)s 4620(by)s 240 fnt83 4914 2546(user)m 240 fnt82
1902 5391 2544(\(which)m 6112(may)s 6578(be)s 6860(a)s 7026(username)s
1903 7998(or)s 8257(a)s 8423(uid\).)s 480 2304(This)m 956(will)s
1904 1382(also)s 1820(af)s 6(fect)k 2416(the)s 2764(group)s
1905 3376(and)s 3780(supplementary)s 5242(groups)s 5945(supplied)s 6814(to)s
1906 7053(the)s 7401(service;)s 8189(the)s 3(y)k 8652(will)s
1907 480 2064(be)m 759(the)s 1103(standard)s 1968(group)s 2576(and)s
1908 2977(supplementary)s 4435(groups)s 5135(for)s 240 fnt83 5469 2066(user)m
1909 240 fnt82 5886 2064(.)m 5987(The)s gsave
1910 6411 2118 translate
1911 0.6953 1.0000 scale
1912 240 fnt31 0 -52(\211\211spoof\211user)m
1913
1914 grestore
1915 7669(option)s 8334(will)s 240 fnt83 8756 2066(not)m 240 fnt82
1916 480 1824(af)m 6(fect)k 1076(which)s 1718(user)s 2176(is)s
1917 2386(chosen)s 3108(if)s 3325(the)s 3673(service)s 4405(user)s
1918 4863(is)s 5073(speci\207ed)s 5981(as)s 6231(just)s gsave
1919 6636 1878 translate
1920 0.6953 1.0000 scale
1921 240 fnt31
1922 0 -52(\211)m 
1923 grestore
1924 6736(;)s 6848(in)s 7091(this)s 7487(case)s
1925 7954(the)s 8302(service)s 480 1584(user)m 938(will)s 1364(be)s
1926 1646(the)s 1994(real)s 2406(calling)s 3109(user)s 13(.)k
1927 0 52(User)m 511(service)s 1243(daemon)s 2058(and)s 2462(client)s
1928 3052(speci\207cation)s 8652(0.62)s 
1929 grestore
1930
1931 grestore
1932
1933 pgsave restore
1934 showpage
1935
1936 %%Page: 8 8
1937 %%BeginPageSetup
1938 %%PageResources: font Times-Roman
1939 %%+ font Times-Bold
1940 %%+ font Courier-Bold
1941 /pgsave save def
1942 0.0500 dup scale 10 setlinewidth
1943 %%EndPageSetup
1944 gsave
1945 0 0 translate
1946 240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic
1947 gsave
1948 LoutPageSet
1949 grestore
1950 gsave
1951 0 16840 translate
1952 0.0000 rotate
1953
1954 grestore
1955
1956 grestore
1957 gsave
1958 0 16840 translate
1959 0.0000 rotate
1960 gsave
1961 1417 -15423 translate
1962 240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic
1963 gsave
1964 0 LoutMargSet
1965 grestore
1966 240 fnt84 0 13842(8)m gsave
1967 0 12726 translate
1968 240 fnt82 9066 688 0 688 240 240 60 LoutGraphic
1969 gsave
1970 newpath 0 ysize 0.3 ft sub moveto
1971 xsize 0 rlineto
1972 0 0.2 ft rlineto
1973 xsize neg 0 rlineto
1974 closepath fill
1975 grestore
1976 340 fnt84 0 70(3.)m 412(Execution)s
1977 1943(en)s 13(vir)k 6(onment)k 3856(of)s 4243(the)s
1978 4774(ser)s 3(vice)k 5846(pr)s 6(ogram)k 
1979 grestore
1980 240 fnt82
1981 0 12264(The)m 428(daemon)s 1243(which)s 1885(is)s 2095(handling)s
1982 2986(the)s 3334(service)s 4066(user)s 4524(side)s 4965(of)s
1983 5236(things)s 5872(will)s 6298(read)s 6767(con\207guration)s 8100(\207les)s
1984 8549(to)s 0 12024(decide)m 680(what)s 1205(to)s 1444(do.)s
1985 1788(If)s 2018(it)s 2210(decides)s 2978(to)s 3217(allo)s 6(w)k
1986 3796(the)s 4144(service)s 4876(to)s 5115(be)s 5397(pro)s 3(vided)k
1987 6303(it)s 6495(will)s 6921(fork)s 7380(a)s 7546(subprocess)s
1988 8647(to)s 0 11784(e)m 3(x)k 3(ecute)k 780(the)s
1989 1128(service.)s 0 11376(The)m 428(service)s 1160(will)s 1586(ha)s 4(v)k 3(e)k
1990 2087(no)s 2380(controlling)s 3482(terminal,)s 4384(b)s 4(ut)k
1991 4746(it)s 4938(will)s 5364(be)s 5646(a)s 5812(process)s
1992 6580(group)s 7192(leader)s 13(.)k 0 10968(If)m 223(the)s
1993 563(client)s 1146(is)s 1348(killed)s 1942(or)s 2194(times)s
1994 2754(out)s 3112(or)s 3364(a)s 3522(\207le)s 3875(or)s
1995 4127(descriptor)s 5134(being)s 5711(read)s 6173(or)s 6424(written)s
1996 7149(by)s 7436(the)s 7776(client)s 8358(process)s 0 10728(gets)m
1997 436(an)s 719(error)s 1242(then)s 1711(the)s 2059(service)s
1998 2791(will)s 3217(be)s 3499(disconnected)s 4806(from)s 5330(the)s
1999 5678(client.)s 6312(The)s 6740(client)s 7330(will)s 7756(return)s
2000 8383(an)s 0 10487(e)m 3(xit)k 415(status)s 1010(of)s
2001 1281(255)s 1687(and)s 2091(some)s 2652(the)s 3000(service')s 13(s)k
2002 3886(pipes)s 4442(may)s 4908(be)s 5190(closed)s 5859(at)s
2003 6091(the)s 6439(other)s 6990(end.)s 7440(The)s 7868(service)s
2004 8600(will)s 0 10247(become)m 800(a)s 966(child)s 1502(of)s
2005 gsave
2006 1773 10301 translate
2007 0.6953 1.0000 scale
2008 240 fnt31 0 -52(init)m 
2009 grestore
2010 2173(.)s 2277(The)s 2705(service)s
2011 3437(may)s 3903(well)s 4369(not)s 4735(notice)s 5375(the)s
2012 5723(disconnection,)s 7159(though)s 7882(writing)s 8625(to)s 8864(a)s
2013 0 10007(pipe)m 468(after)s 964(this)s 1360(may)s 1826(produce)s
2014 2653(a)s gsave
2015 2819 10061 translate
2016 0.6953 1.0000 scale
2017 240 fnt31 0 -52(SIGPIPE)m 
2018 grestore
2019 3579(and)s 3983(the)s
2020 4331(f)s 2(acility)k 5058(e)s 3(xists)k 5650(to)s
2021 5889(ha)s 4(v)k 3(e)k 6390(a)s gsave
2022 6556 10061 translate
2023 0.6953 1.0000 scale
2024 240 fnt31
2025 0 -52(SIGHUP)m 
2026 grestore
2027 7216(sent)s 7661(to)s 7900(the)s 8248(service)s
2028 0 9767(on)m 297(disconnection.)s 9066 670 0 670 240 240 60 0 8743 LoutGr2
2029 newpath 0 ysize 0.3 ft sub moveto
2030 xsize 0 rlineto
2031 0 0.1 ft rlineto
2032 xsize neg 0 rlineto
2033 closepath fill
2034 grestore
2035 320 fnt84 0 66(3.1.)m 628(File)s
2036 1216(descriptors)s 
2037 grestore
2038 0 8281(The)m 428(service)s 1160(program')s 13(s)k
2039 2180(standard)s 3048(\207ledescriptors,)s 4508(and)s 4912(possibly)s 5764(other)s
2040 6315(\207le)s 6676(descriptors,)s 7831(will)s 8257(be)s 0 8041(connected)m
2041 1028(to)s 1266(pipes)s 1821(or)s 2080(to)s gsave
2042 2318 8095 translate
2043 0.6953 1.0000 scale
2044 240 fnt31
2045 0 -52(/dev/null)m 
2046 grestore
2047 3219(.)s 3322(The)s gsave
2048 3750 8095 translate
2049 0.6953 1.0000 scale
2050 240 fnt31 0 -52(userv)m
2051
2052 grestore
2053 4309(client/daemon)s 5719(pair)s 6150(will)s 6575(arrange)s 7346(that)s
2054 7764(data)s 8221(is)s 8430(copied)s 0 7801(between)m 854(the)s
2055 1202(\207les)s 1651(or)s 1910(\207le)s 2271(descriptors)s 3370(speci\207ed)s
2056 4278(to)s 4517(to)s 4756(the)s 5104(client)s 5694(by)s
2057 5988(the)s 6336(caller)s 6925(and)s 7329(these)s 7876(these)s
2058 8423(pipes.)s 0 7393(Pipes)m 569(which)s 1211(may)s 1677(be)s
2059 1959(written)s 2692(to)s 2931(will)s 3357(be)s 3639(closed)s
2060 4308(if)s 4525(a)s 4691(write)s 5237(error)s 5760(occurs)s
2061 6435(on)s 6732(the)s 7080(corresponding)s 0 7153(client-side)m 1043(\207le)s
2062 1396(or)s 1647(descriptor)s 9(,)k 2692(which)s 3326(may)s
2063 3784(result)s 4366(in)s 4601(a)s gsave
2064 4760 7207 translate
2065 0.6953 1.0000 scale
2066 240 fnt31 0 -52(SIGPIPE)m
2067
2068 grestore
2069 5512(in)s 5747(the)s 6087(service)s 6811(program;)s 7725(pipes)s
2070 8273(open)s 8788(for)s 0 6913(reading)m 770(will)s 1196(get)s
2071 gsave
2072 1548 6967 translate
2073 0.6953 1.0000 scale
2074 240 fnt31 0 -52(EOF)m 
2075 grestore
2076 1908(if)s 2125(the)s 2473(client-side)s
2077 3523(\207le)s 3884(descriptor)s 4899(gets)s gsave
2078 5335 6967 translate
2079 0.6953 1.0000 scale
2080 240 fnt31 0 -52(EOF)m
2081
2082 grestore
2083 5695(or)s 5954(an)s 6237(error)s 13(.)k 0 6505(If)m
2084 230(the)s 578(service)s 1310(closes)s 1945(one)s 2347(of)s
2085 2618(its)s 2894(reading)s 3663(\207le)s 4024(descriptors)s 5123(the)s
2086 5471(writing)s 6214(end)s 6618(of)s 6889(the)s 7237(corresponding)s
2087 8658(pipe)s 0 6265(will)m 421(generate)s 1280(a)s gsave
2088 1441 6319 translate
2089 0.6953 1.0000 scale
2090 240 fnt31
2091 0 -52(SIGPIPE)m 
2092 grestore
2093 2195(when)s 2766(attempts)s 3620(are)s 3962(made)s
2094 4530(by)s 4819(the)s 5161(client/daemon)s 6567(pair)s 6992(to)s
2095 7226(write)s 7766(to)s 8000(it.)s 8230(This)s 8700(will)s
2096 0 6025(not)m 366(be)s 648(considered)s 1742(an)s 2025(error;)s
2097 2600(rather)s 9(,)k 3254(the)s 3602(rele)s 6(v)k 6(ant)k
2098 4419(pipe)s 4887(will)s 5313(be)s 5595(discarded)s 6569(and)s
2099 6973(the)s 7321(corresponding)s 8743(\207le)s 0 5785(or)m 259(\207le)s
2100 620(descriptor)s 1635(held)s 2105(by)s 2399(the)s 2747(client)s
2101 3337(will)s 3763(be)s 4045(closed.)s 0 5377(Lik)m 2(e)k 6(wise,)k
2102 975(if)s 1192(one)s 1594(of)s 1865(the)s 2213(\207le)s
2103 2574(descriptors)s 3673(held)s 4143(by)s 4437(the)s 4785(client)s
2104 5375(for)s 5713(writing)s 6456(by)s 6750(the)s 7098(service)s
2105 7830(is)s 8040(a)s 8206(pipe)s 0 5137(whose)m 665(other)s
2106 1213(end)s 1613(is)s 1820(closed)s 2485(by)s 2776(the)s
2107 3120(caller)s 3706(then)s 4171(the)s 4516(client/daemon)s 5923(pair)s
2108 6351(will)s 6773(see)s 7131(an)s 7410(error)s 7930(when)s
2109 8502(trying)s 0 4897(to)m 239(cop)s 2(y)k 757(data)s
2110 1215(pro)s 3(vided)k 2121(by)s 2415(the)s 2763(service.)s
2111 3543(This)s 4019(too)s 4378(will)s 4804(not)s 5170(be)s
2112 5452(considered)s 6546(an)s 6829(error;)s 7404(rather)s 9(,)k
2113 8058(the)s 8406(pipe)s 0 4657(correspondong)m 1476(to)s 1715(that)s
2114 2133(descriptor)s 3148(will)s 3574(be)s 3856(closed)s 4525(and)s
2115 4929(an)s 3(y)k 5326(further)s 6035(writes)s 6669(will)s
2116 7095(cause)s 7682(the)s 8030(service)s 8762(to)s 0 4417(get)m
2117 352(a)s gsave
2118 518 4471 translate
2119 0.6953 1.0000 scale
2120 240 fnt31 0 -52(SIGPIPE)m 
2121 grestore
2122 1218(.)s 0 4009(Note)m
2123 521(that)s 939(not)s 1305(all)s 1598(write)s 2144(errors)s
2124 2751(or)s 3010(brok)s 2(en)k 3730(pipes)s 4286(on)s
2125 4583(\207le)s 4944(descriptors)s 6043(may)s 6509(be)s 6791(visible)s
2126 7484(to)s 7723(the)s 8071(service,)s 0 3769(since)m 547(b)s 4(uf)k 6(fered)k
2127 1404(data)s 1862(may)s 2328(be)s 2610(discarded)s 3584(by)s
2128 3878(the)s 4226(operating)s 5182(system)s 5906(and)s 6310(there)s
2129 6843(will)s 7269(be)s 7551(a)s 7717(\207nite)s 8264(interv)s 6(al)k
2130 0 3529(between)m 847(the)s 1188(error)s 1703(happening)s 2747(and)s
2131 3144(the)s 3484(service)s 4209(being)s 4787(disconnected)s 6086(from)s
2132 6603(the)s 6944(client)s 7526(or)s 7778(the)s 8119(ne)s 3(xt)k
2133 8580(write)s 0 3289(causing)m 784(a)s gsave
2134 950 3343 translate
2135 0.6953 1.0000 scale
2136 240 fnt31 0 -52(SIGPIPE)m
2137
2138 grestore
2139 1650(.)s 0 2881(Read)m 550(errors)s 1157(on)s 1454(\207le)s
2140 1815(descriptors)s 2914(\(and)s 3397(disconnection\))s 4854(will)s 5280(only)s
2141 5760(be)s 6042(visible)s 6735(to)s 6974(the)s 7322(service)s
2142 8054(and)s 0 2641(distinguishable)m 1504(from)s 2028(normal)s 2760(end)s
2143 3164(of)s 3435(\207le)s 3796(if)s gsave
2144 4013 2695 translate
2145 0.6953 1.0000 scale
2146 240 fnt31 0 -52(disconnect\211hup)m
2147
2148 grestore
2149 5474(is)s 5684(in)s 5927(ef)s 6(fect.)k 0 2233(Read)m
2150 549(and)s 951(write)s 1495(errors)s 2100(\(other)s 2728(than)s
2151 3196(brok)s 2(en)k 3914(pipes,)s 4524(as)s 4772(described)s
2152 5744(abo)s 3(v)k 3(e\))k 6437(will)s 6861(al)s 2(w)k 2(ays)k
2153 7570(be)s 7850(visible)s 8541(to)s 8778(the)s 0 1993(caller;)m
2154 627(the)s 3(y)k 1075(are)s 1408(system)s 2117(errors,)s
2155 2766(and)s 3155(will)s 3566(therefore)s 4469(cause)s 5041(the)s
2156 5375(client)s 5950(to)s 6174(print)s 6671(an)s 6939(error)s
2157 7448(message)s 8299(to)s 8523(stderr)s 0 1752(and)m 404(return)s
2158 1031(with)s 1513(an)s 1796(e)s 3(xit)k 2211(status)s
2159 2806(of)s 3077(255.)s 0 1344(If)m 230(the)s 578(main)s
2160 1113(service)s 1845(program)s 2715(process)s 3483(e)s 3(xits)k
2161 3982(while)s 4569(it)s 4761(still)s 5173(has)s 5543(running)s
2162 6341(children)s 7181(an)s 3(y)k 7578(\207le)s 7939(descriptors)s
2163 0 1104(held)m 470(by)s 764(those)s 1325(children)s 2165(can)s
2164 2554(remain)s 3274(open,)s 3847(depending)s 4898(on)s 5195(the)s
2165 5543(use)s 5918(of)s gsave
2166 6189 1158 translate
2167 0.6953 1.0000 scale
2168 240 fnt31 0 -52(wait)m 
2169 grestore
2170 6589(,)s
2171 gsave
2172 6696 1158 translate
2173 0.6953 1.0000 scale
2174 240 fnt31 0 -52(nowait)m 
2175 grestore
2176 7356(or)s gsave
2177 7615 1158 translate
2178 0.6953 1.0000 scale
2179 240 fnt31 0 -52(close)m
2180
2181 grestore
2182 8175(for)s 8513(the)s 0 864(rele)m 6(v)k 6(ant)k
2183 817(\207le)s 1178(descriptor)s 2193(in)s 2436(the)s 2784(client')s 13(s)k
2184 3524(ar)s 4(guments.)k 4620(By)s 4954(def)s 2(ault)k
2185 5675(writing)s 6418(\207ledescriptors)s 7822(remain)s 8542(open)s 0 52(0.62)m
2186 4809(User)s 5320(service)s 6052(daemon)s 6867(and)s 7271(client)s
2187 7861(speci\207cation)s 
2188 grestore
2189
2190 grestore
2191
2192 pgsave restore
2193 showpage
2194
2195 %%Page: 9 9
2196 %%BeginPageSetup
2197 %%PageResources: font Times-Roman
2198 %%+ font Times-Bold
2199 %%+ font Courier-Bold
2200 %%+ font Times-Italic
2201 /pgsave save def
2202 0.0500 dup scale 10 setlinewidth
2203 %%EndPageSetup
2204 gsave
2205 0 0 translate
2206 240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic
2207 gsave
2208 LoutPageSet
2209 grestore
2210 gsave
2211 0 16840 translate
2212 0.0000 rotate
2213
2214 grestore
2215
2216 grestore
2217 gsave
2218 0 16840 translate
2219 0.0000 rotate
2220 gsave
2221 1417 -15423 translate
2222 240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic
2223 gsave
2224 1 LoutMargSet
2225 grestore
2226 240 fnt84 8952 13842(9)m 240 fnt82 0 13251(and)m 404(the)s
2227 752(client)s 1342(will)s 1768(w)s 2(ait)k 2237(for)s
2228 2575(them)s 3113(to)s 3352(be)s 3634(closed)s 4303(at)s
2229 4535(the)s 4883(service)s 5615(end,)s 6068(and)s 6472(reading)s
2230 7242(\207le)s 7603(descriptors)s 8702(are)s 0 13011(closed)m 669(immediately)s 15(.)k
2231 1952(These)s 2579(lefto)s 3(v)k 3(er)k 3375(child)s
2232 3911(processes)s 4878(will)s 5304(not)s 5670(get)s 6022(a)s
2233 6188(an)s 3(y)k gsave
2234 6585 13065 translate
2235 0.6953 1.0000 scale
2236 240 fnt31 0 -52(SIGHUP)m 
2237 grestore
2238 7245(e)s 6(v)k 3(en)k
2239 7745(if)s 7962(a)s 8128(read)s 8597(or)s 0 12771(write)m
2240 546(error)s 1069(occurs)s 1744(or)s 2003(the)s 2351(client)s
2241 2941(disconnects)s 4108(before)s 4774(then.)s 9066 609 0 609 240 240 60 0 11808 LoutGr2
2242 newpath 0 ysize 0.3 ft sub moveto
2243 xsize 0 rlineto
2244 0 0.1 ft rlineto
2245 xsize neg 0 rlineto
2246 closepath fill
2247 grestore
2248 320 fnt84 0 5(3.2.)m
2249 628(En)s 12(vir)k 5(onment)k 
2250 grestore
2251 0 11346(The)m 428(service)s
2252 1160(will)s 1586(ha)s 4(v)k 3(e)k 2087(some)s
2253 2648(information)s 3833(in)s 4076(en)s 9(vironment)k 5336(v)s 6(ariables:)k
2254 gsave
2255 120 11160 translate
2256 0.6953 1.0000 scale
2257 240 fnt31 0 -52(USERV_USER)m 
2258 grestore
2259 480 10866(The)m 908(login)s 1457(name)s
2260 2031(of)s 2302(the)s 2650(calling)s 3353(user)s 13(.)k
2261 3842(If)s 4072(the)s gsave
2262 4420 10920 translate
2263 0.6953 1.0000 scale
2264 240 fnt31 0 -52(LOGNAME)m 
2265 grestore
2266 5180(v)s 6(ariable)k
2267 5999(is)s 6209(set)s 6534(\(or)s 9(,)k 6910(if)s
2268 7127(that)s 7545(is)s 7755(unset,)s 8367(if)s 8584(the)s
2269 gsave
2270 480 10680 translate
2271 0.6953 1.0000 scale
2272 240 fnt31 0 -52(USER)m 
2273 grestore
2274 940 10626(v)m 6(ariable)k 1759(is)s
2275 1969(set\))s 2362(in)s 2605(the)s 2953(en)s 9(vironment)k
2276 4213(passed)s 4909(to)s 5148(the)s 5496(client)s 6086(by)s
2277 6380(the)s 6728(caller)s 7317(then)s 7786(the)s 8134(passw)s 2(ord)k
2278 480 10386(entry)m 1025(for)s 1363(that)s 1781(login)s 2330(name)s
2279 2904(will)s 3330(be)s 3612(look)s 2(ed)k 4320(up;)s
2280 4672(if)s 4889(that)s 5307(passw)s 2(ord)k 6267(entry')s 13(s)k
2281 6968(uid)s 7332(is)s 7542(the)s 7890(same)s 8437(as)s
2282 8687(that)s 480 10146(of)m 745(the)s 1086(calling)s 1782(process)s
2283 2543(then)s 3005(that)s 3416(login)s 3958(name)s 4525(will)s
2284 4945(be)s 5220(used,)s 5759(otherwise)s 6737(\(or)s 7068(if)s
2285 7278(neither)s gsave
2286 7994 10200 translate
2287 0.6953 1.0000 scale
2288 240 fnt31 0 -52(LOGNAME)m 
2289 grestore
2290 8747(nor)s gsave
2291 480 9960 translate
2292 0.6953 1.0000 scale
2293 240 fnt31
2294 0 -52(USER)m 
2295 grestore
2296 938 9906(is)m 1146(set\))s 1537(the)s 1883(calling)s
2297 2583(process')s 13(s)k 3508(uid)s 3870(will)s 4294(be)s
2298 4573(look)s 2(ed)k 5279(up)s 5570(to)s 5807(determine)s
2299 6815(their)s 7310(login)s 7857(name)s 8429(\(and)s 8909(if)s
2300 480 9666(this)m 876(lookup)s 1595(f)s 2(ails)k 2054(then)s
2301 2523(the)s 2871(service)s 3603(will)s 4029(not)s 4395(be)s
2302 4677(in)s 9(v)k 4(ok)k 2(ed\).)k gsave
2303 120 9480 translate
2304 0.6953 1.0000 scale
2305 240 fnt31
2306 0 -52(USERV_UID)m 
2307 grestore
2308 480 9186(The)m 908(uid)s 1272(of)s 1543(the)s
2309 1891(calling)s 2594(process.)s gsave
2310 120 9000 translate
2311 0.6953 1.0000 scale
2312 240 fnt31 0 -52(USERV_GID)m 
2313 grestore
2314 480 8706(The)m
2315 908(gid)s 1272(and)s 1676(supplementary)s 3138(group)s 3750(list)s
2316 4101(of)s 4372(the)s 4720(calling)s 5423(process:)s 6246(\207rst)s
2317 6677(the)s 7025(group)s 7637(in)s 7880(gid)s 8244(and)s
2318 8648(then)s 480 8466(those)m 1041(in)s 1284(the)s 1632(supplementary)s
2319 3094(group)s 3706(list,)s 4104(in)s 4347(decimal,)s 5210(separated)s
2320 6170(by)s 6464(spaces.)s gsave
2321 120 8280 translate
2322 0.6953 1.0000 scale
2323 240 fnt31 0 -52(USERV_GROUP)m 
2324 grestore
2325 480 7986(The)m
2326 908(group)s 1520(names)s 2182(of)s 2453(the)s 2801(calling)s
2327 3504(process,)s 4328(listed)s 4903(in)s 5146(the)s 5494(same)s
2328 6041(w)s 2(ay)k 6492(as)s 6742(the)s 7090(ids)s
2329 7420(are)s 7767(in)s gsave
2330 8010 8040 translate
2331 0.6953 1.0000 scale
2332 240 fnt31 0 -52(USERV_GID)m 
2333 grestore
2334 8911(.)s
2335 480 7746(If)m 710(no)s 1003(name)s 1577(can)s 1966(be)s
2336 2248(found)s 2865(for)s 3203(an)s 3(y)k 3600(of)s
2337 3871(the)s 4219(calling)s 4922(process')s 13(s)k 5849(group\(s\))s
2338 6708(then)s 7177(the)s 7525(service)s 8257(will)s 8683(not)s
2339 480 7506(be)m 762(in)s 9(v)k 4(ok)k 2(ed.)k
2340 gsave
2341 120 7320 translate
2342 0.6953 1.0000 scale
2343 240 fnt31 0 -52(USERV_CWD)m 
2344 grestore
2345 480 7026(The)m 908(client')s 13(s)k
2346 1648(current)s 2384(w)s 2(orking)k 3233(directory)s 4149(name)s
2347 4723(\(this)s 5198(directory)s 6114(may)s 6580(not)s 6946(be)s
2348 7228(accessible)s 8252(to)s 8491(the)s 480 6786(service\).)m 1339(If)s
2349 1568(it)s 1759(could)s 2348(not)s 2713(be)s 2994(determined)s
2350 4126(or)s 4384(the)s gsave
2351 4732 6840 translate
2352 0.6953 1.0000 scale
2353 240 fnt31 0 -52(\211\211hidecwd)m 
2354 grestore
2355 5692(\210ag)s
2356 6103(w)s 2(as)k 6523(used)s 7019(then)s 7487(this)s
2357 7882(v)s 6(ariable)k 8700(will)s 480 6546(be)m 762(set)s
2358 1087(to)s 1326(an)s 1609(empty)s 2261(string)s 2858(\(this)s
2359 3333(is)s 3543(not)s 3909(considered)s 5003(an)s 5286(error\).)s
2360 gsave
2361 120 6360 translate
2362 0.6953 1.0000 scale
2363 240 fnt31 0 -52(USERV_SERVICE)m 
2364 grestore
2365 480 6066(The)m 908(service)s 1640(name)s
2366 2214(requested)s 3188(by)s 3482(the)s 3830(caller)s 13(.)k
2367 gsave
2368 120 5880 translate
2369 0.6953 1.0000 scale
2370 240 fnt31 0 -52(USERV_U_)m gsave
2371 1152 0 translate
2372 1.4219 1.0000 scale
2373 240 fnt83 0 -52(name)m 
2374 grestore
2375
2376 grestore
2377 480 5586(The)m
2378 908(v)s 6(alue)k 1476(supplied)s 2345(to)s 2584(the)s
2379 2932(client)s 3522(by)s 3816(the)s 4164(caller)s 4753(using)s
2380 5325(-D)s 240 fnt83 5569 5588(name)m 240 fnt82 6081 5586(.)m
2381 gsave
2382 0 5377 translate
2383 0.6953 1.0000 scale
2384 240 fnt31 0 -52(HOME)m 
2385 grestore
2386 400 5323(,)m gsave
2387 507 5377 translate
2388 0.6953 1.0000 scale
2389 240 fnt31 0 -52(PATH)m
2390
2391 grestore
2392 907(,)s gsave
2393 1014 5377 translate
2394 0.6953 1.0000 scale
2395 240 fnt31 0 -52(SHELL)m 
2396 grestore
2397 1514(,)s gsave
2398 1621 5377 translate
2399 0.6953 1.0000 scale
2400 240 fnt31
2401 0 -52(LOGNAME)m 
2402 grestore
2403 2381(and)s gsave
2404 2785 5377 translate
2405 0.6953 1.0000 scale
2406 240 fnt31 0 -52(USER)m 
2407 grestore
2408 3245(will)s
2409 3671(be)s 3953(set)s 4278(appropriately)s 5606(\(according)s 6681(to)s
2410 6920(the)s 7268(details)s 7942(of)s 8213(the)s 0 5083(service)m
2411 732(user\).)s 0 52(User)m 511(service)s 1243(daemon)s 2058(and)s
2412 2462(client)s 3052(speci\207cation)s 8652(0.62)s 
2413 grestore
2414
2415 grestore
2416
2417 pgsave restore
2418 showpage
2419
2420 %%Page: 10 10
2421 %%BeginPageSetup
2422 %%PageResources: font Times-Roman
2423 %%+ font Times-Bold
2424 %%+ font Times-Italic
2425 %%+ font Courier-Bold
2426 /pgsave save def
2427 0.0500 dup scale 10 setlinewidth
2428 %%EndPageSetup
2429 gsave
2430 0 0 translate
2431 240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic
2432 gsave
2433 LoutPageSet
2434 grestore
2435 gsave
2436 0 16840 translate
2437 0.0000 rotate
2438
2439 grestore
2440
2441 grestore
2442 gsave
2443 0 16840 translate
2444 0.0000 rotate
2445 gsave
2446 1417 -15423 translate
2447 240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic
2448 gsave
2449 0 LoutMargSet
2450 grestore
2451 240 fnt84 0 13842(10)m gsave
2452 0 12725 translate
2453 240 fnt82 9066 689 0 689 240 240 60 LoutGraphic
2454 gsave
2455 newpath 0 ysize 0.3 ft sub moveto
2456 xsize 0 rlineto
2457 0 0.2 ft rlineto
2458 xsize neg 0 rlineto
2459 closepath fill
2460 grestore
2461 340 fnt84 0 70(4.)m 412(Ser)s 3(vice-side)k
2462 2219(con\207guration)s 
2463 grestore
2464 240 fnt82 0 12263(Which)m 695(ser)s 973(vices)s
2465 1515(may)s 1981(be)s 2263(run)s 2639(by)s 2933(whom)s
2466 3592(and)s 3996(un)s 4233(der)s 4598(what)s 5123(con)s
2467 5466(di)s 5646(tions)s 6162(is)s 6372(con)s 6715(trolled)s
2468 7396(by)s 7690(con)s 8033(\207g)s 8279(u)s 8394(ra)s
2469 8579(-)s 0 12023(tion)m 429(\207les.)s 0 11615(The)m 428(daemon)s
2470 1243(will)s 1669(read)s 2138(these)s 2685(\207les)s 3134(in)s
2471 3377(order)s 13(.)k 3972(Certain)s 4732(directi)s 6(v)k 3(es)k
2472 5702(in)s 5945(the)s 6293(\207les)s 6742(modify)s 7487(the)s
2473 7835(daemon')s 13(s)k 0 11375(e)m 3(x)k 3(ecution)k
2474 981(settings)s 1762(for)s 2100(in)s 9(v)k 4(oking)k
2475 2992(the)s 3340(service,)s 4123(for)s 4461(e)s 3(xample)k
2476 5324(allo)s 6(wing)k 6208(certain)s 6914(\207le)s 7275(descriptors)s
2477 8374(to)s 8613(be)s 0 11135(speci\207ed)m 908(by)s 1202(the)s
2478 1550(client)s 2140(or)s 2399(specifying)s 3448(which)s 4090(program)s
2479 4960(to)s 5199(e)s 3(x)k 3(ecute)k 5979(to)s
2480 6218(pro)s 3(vide)k 7002(the)s 7350(service.)s 0 10727(The)m
2481 240 fnt83 428 10729(last)m 240 fnt82 837 10727(instance)m 1676(of)s
2482 1947(each)s 2442(such)s 2938(setting)s 3628(will)s 4054(tak)s 2(e)k
2483 4506(ef)s 6(fect.)k 5146(The)s 5574(directi)s 6(v)k 3(es)k
2484 6544(which)s 7186(specify)s 7930(which)s 0 10487(program)m 864(to)s
2485 1096(e)s 3(x)k 3(ecute)k 1869(will)s 2288(not)s
2486 2647(stop)s 3092(the)s 3433(con\207guration)s 4759(\207le)s 5113(from)s
2487 5630(being)s 6208(read;)s 6724(the)s 3(y)k 7180(will)s
2488 7599(be)s 7874(remembered)s 0 10247(and)m 404(will)s 830(only)s
2489 1310(tak)s 2(e)k 1762(ef)s 6(fect)k 2358(if)s
2490 2575(the)s 3(y)k 3038(are)s 3385(not)s 3751(o)s 3(v)k 3(erridden)k
2491 4838(by)s 5132(a)s 5298(later)s 5781(directi)s 6(v)k 3(e.)k
2492 0 9839(The)m 428(daemon)s 1243(will)s 1669(\207rst)s 2100(read)s
2493 gsave
2494 2569 9893 translate
2495 0.6953 1.0000 scale
2496 240 fnt31 0 -52(/etc/userv/system.default)m 
2497 grestore
2498 5072(.)s 5176(Then,)s 5775(by)s
2499 6069(def)s 2(ault)k 6790(\(this)s 7265(beha)s 4(viour)k
2500 8278(may)s 0 9599(be)m 282(modi\207ed\),)s 1319(it)s 1511(will)s
2501 1937(read)s 2406(a)s 2572(per)s 4(-user)k 3410(\207le)s
2502 gsave
2503 3771 9653 translate
2504 0.6953 1.0000 scale
2505 240 fnt31 0 -52(~/.userv/rc)m 
2506 grestore
2507 4872(,)s 4979(if)s 5196(it)s
2508 5388(e)s 3(xists)k 5980(and)s 6384(the)s 6732(service)s
2509 7464(user')s 13(s)k 8072(shell)s 8578(is)s 8788(in)s
2510 gsave
2511 0 9413 translate
2512 0.6953 1.0000 scale
2513 240 fnt31 0 -52(/etc/shells)m 
2514 grestore
2515 1101 9359(.)m 1205(Finally)s 1936(it)s
2516 2128(will)s 2554(read)s gsave
2517 3023 9413 translate
2518 0.6953 1.0000 scale
2519 240 fnt31 0 -52(/etc/userv/system.override)m 
2520 grestore
2521 5626(.)s
2522 0 8951(When)m 627(it)s 816(has)s 1183(read)s 1650(all)s
2523 1940(of)s 2208(these)s 2753(\207les)s 3199(it)s 3388(will)s
2524 3812(act)s 4147(ac)s 4352(cord)s 4775(ing)s 5131(to)s
2525 5368(the)s 5713(cur)s 6018(rent)s 6389(ly)s 6626(v)s 6(al)k
2526 6907(ues)s 7275(of)s 7543(of)s 7811(the)s 8156(e)s 3(x)k
2527 8374(e)s 8476(cu)s 8697(tion)s 0 8711(set)m 265(tings.)s
2528 9066 670 0 670 240 240 60 0 7687 LoutGr2
2529 newpath 0 ysize 0.3 ft sub moveto
2530 xsize 0 rlineto
2531 0 0.1 ft rlineto
2532 xsize neg 0 rlineto
2533 closepath fill
2534 grestore
2535 320 fnt84 0 66(4.1.)m 628(Con\207guration)s 2618(\207le)s 3100(syntax)s
2536
2537 grestore
2538 0 7225(The)m 414(con\207guration)s 1733(\207le)s 2080(is)s 2276(a)s
2539 2428(series)s 3007(of)s 3264(directi)s 6(v)k 3(es,)k
2540 4276(usually)s 5007(one)s 5395(per)s 5746(line.)s 6193(The)s
2541 6607(portion)s 7341(of)s 7598(a)s 7750(line)s 8149(follo)s 6(wing)k
2542 0 6985(a)m 154(hash)s 638(character)s gsave
2543 1560 7039 translate
2544 0.6953 1.0000 scale
2545 240 fnt31 0 -52(#)m
2546
2547 grestore
2548 1708(is)s 1906(tak)s 2(en)k 2466(as)s 2704(a)s
2549 2858(comment)s 3796(and)s 4188(ignored.)s 5011(Each)s 5533(directi)s 6(v)k 3(e)k
2550 6403(consists)s 7199(of)s 7458(a)s 7612(series)s 8194(of)s
2551 8452(tok)s 2(ens)k 0 6745(separated)m 960(by)s 1254(linear)s
2552 1857(whitespace)s 2975(\(spaces)s 3729(and)s 4133(tabs\);)s 4709(tok)s 2(ens)k
2553 5383(may)s 5849(be)s 6131(w)s 2(ords)k 6765(consisting)s
2554 7788(of)s 8059(non-space)s 0 6505(characters,)m 1074(or)s 9(,)k
2555 1371(where)s 2011(a)s 2177(string)s 2774(is)s 2984(required,)s
2556 3887(a)s 4053(string)s 4650(in)s 4893(double)s 5601(quotes.)s
2557 6330(Double-quoted)s 7824(strings)s 8512(may)s 0 6265(contain)m 761(the)s
2558 1109(follo)s 6(wing)k 2086(backslash)s 3073(escapes:)s gsave
2559 120 6079 translate
2560 0.6953 1.0000 scale
2561 240 fnt31
2562 0 -52(\\n)m 
2563 grestore
2564 480 5785(ne)m 6(wline)k gsave
2565 120 5599 translate
2566 0.6953 1.0000 scale
2567 240 fnt31 0 -52(\\t)m
2568
2569 grestore
2570 480 5305(tab)m gsave
2571 120 5119 translate
2572 0.6953 1.0000 scale
2573 240 fnt31 0 -52(\\r)m 
2574 grestore
2575 480 4825(carriage)m 1304(return)s
2576 gsave
2577 120 4639 translate
2578 0.6953 1.0000 scale
2579 240 fnt31 0 -52(\\)m gsave
2580 144 0 translate
2581 1.4219 1.0000 scale
2582 240 fnt83 0 -52(OOO)m 
2583 grestore
2584
2585 grestore
2586 480 4345(character)m
2587 1414(whose)s 2082(octal)s 2601(code)s 3109(is)s 240 fnt83
2588 3319 4347(OOO)m gsave
2589 120 4159 translate
2590 0.6953 1.0000 scale
2591 240 fnt31 0 -52(\\x)m gsave
2592 288 0 translate
2593 1.4219 1.0000 scale
2594 240 fnt83 0 -52(XX)m
2595
2596 grestore
2597
2598 grestore
2599 240 fnt82 480 3865(character)m 1414(whose)s 2082(he)s 3(x)k
2600 2480(code)s 2988(is)s 240 fnt83 3198 3867(XX)m gsave
2601 120 3679 translate
2602 0.6953 1.0000 scale
2603 240 fnt31
2604 0 -52(\\)m gsave
2605 144 0 translate
2606 1.4219 1.0000 scale
2607 240 fnt83 0 -52(punctuation)m 
2608 grestore
2609
2610 grestore
2611 240 fnt82 480 3385(literal)m
2612 1090(punctuation)s 2277(character)s 3211(\(e)s 3(g)k gsave
2613 3566 3439 translate
2614 0.6953 1.0000 scale
2615 240 fnt31
2616 0 -52(\\\\)m 
2617 grestore
2618 3766(,)s gsave
2619 3873 3439 translate
2620 0.6953 1.0000 scale
2621 240 fnt31 0 -52(\\")m 
2622 grestore
2623 4073(\))s
2624 gsave
2625 120 3198 translate
2626 0.6953 1.0000 scale
2627 240 fnt31 0 -52(\\)m gsave
2628 144 0 translate
2629 1.4219 1.0000 scale
2630 240 fnt83 0 -52(ne)m 3(wline)k
2631
2632 grestore
2633
2634 grestore
2635 1005 3144(\(ie,)m 1363(backslash)s 2350(at)s 2582(end)s 2986(of)s
2636 3257(line\))s 480 2904(string)m 1077(continues)s 2045(on)s 2342(ne)s 3(xt)k
2637 2811(line)s 0 2342(Relati)m 6(v)k 3(e)k 843(pathnames)s
2638 1917(in)s 2160(directi)s 6(v)k 3(es)k 3130(are)s
2639 3477(relati)s 6(v)k 3(e)k 4239(to)s 4478(the)s
2640 4826(service)s 5558(program')s 13(s)k 6578(current)s 7314(directory)s
2641 8230(\(usually)s 0 2102(the)m 348(service)s 1080(user')s 13(s)k
2642 1687(home)s 2275(directory\).)s 3319(P)s 3(athnames)k 4403(starting)s
2643 5171(with)s 5653(the)s 6000(tw)s 2(o)k 6410(characters)s
2644 gsave
2645 7427 2156 translate
2646 0.6953 1.0000 scale
2647 240 fnt31 0 -52(~/)m 
2648 grestore
2649 7687(are)s 8033(tak)s 2(en)k
2650 8606(to)s 8844(be)s 0 1862(relati)m 6(v)k 3(e)k
2651 762(to)s 1001(the)s 1349(service)s 2081(user')s 13(s)k
2652 2689(home)s 3277(directory)s 15(.)k 9066 670 0 670 240 240 60 0 838 LoutGr2
2653 newpath 0 ysize 0.3 ft sub moveto
2654 xsize 0 rlineto
2655 0 0.1 ft rlineto
2656 xsize neg 0 rlineto
2657 closepath fill
2658 grestore
2659 320 fnt84 0 66(4.2.)m
2660 628(Con\207guration)s 2618(\207le)s 3100(dir)s 5(ecti)k 3(v)k 3(es)k
2661
2662 grestore
2663 0 52(0.62)m 4809(User)s 5320(service)s 6052(daemon)s 6867(and)s
2664 7271(client)s 7861(speci\207cation)s 
2665 grestore
2666
2667 grestore
2668
2669 pgsave restore
2670 showpage
2671
2672 %%Page: 11 11
2673 %%BeginPageSetup
2674 %%PageResources: font Times-Roman
2675 %%+ font Times-Bold
2676 %%+ font Courier-Bold
2677 %%+ font Times-Italic
2678 /pgsave save def
2679 0.0500 dup scale 10 setlinewidth
2680 %%EndPageSetup
2681 gsave
2682 0 0 translate
2683 240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic
2684 gsave
2685 LoutPageSet
2686 grestore
2687 gsave
2688 0 16840 translate
2689 0.0000 rotate
2690
2691 grestore
2692
2693 grestore
2694 gsave
2695 0 16840 translate
2696 0.0000 rotate
2697 gsave
2698 1417 -15423 translate
2699 240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic
2700 gsave
2701 1 LoutMargSet
2702 grestore
2703 240 fnt84 8839 13842(11)m 300 fnt84 0 13210(4.2.1.)m 813(Immediate)s
2704 2261(dir)s 5(ecti)k 3(v)k 3(es)k 240 fnt82
2705 0 12696(The)m 428(follo)s 6(wing)k 1405(directi)s 6(v)k 3(es)k
2706 2375(tak)s 2(e)k 2827(ef)s 6(fect)k 3423(immediately:)s
2707 gsave
2708 120 12342 translate
2709 0.6953 1.0000 scale
2710 240 fnt31 0 -52(cd)m gsave
2711 432 0 translate
2712 1.4219 1.0000 scale
2713 240 fnt83 0 -52(pathname)m 
2714 grestore
2715
2716 grestore
2717 480 12048(Change)m
2718 1268(directory)s 2184(in)s 2427(the)s 2775(service)s 3507(program.)s
2719 gsave
2720 4421 12102 translate
2721 0.6953 1.0000 scale
2722 240 fnt31 0 -52(cd)m 
2723 grestore
2724 4681(is)s 4891(cumulati)s 6(v)k 3(e.)k
2725 6048(It)s 6253(is)s 6463(an)s 6746(error)s 7269(if)s
2726 7486(the)s 7834(directory)s 480 11808(cannot)m 1178(be)s 1460(changed)s
2727 2316(to.)s gsave
2728 480 11454 translate
2729 0.6953 1.0000 scale
2730 240 fnt31 0 -52(cd)m 
2731 grestore
2732 740 11400(should)m 1437(not)s
2733 1803(be)s 2085(used)s 2582(between)s gsave
2734 3436 11454 translate
2735 0.6953 1.0000 scale
2736 240 fnt31 0 -52(execute\211from\211directory)m
2737
2738 grestore
2739 5698(and)s 6102(the)s 6450(in)s 9(v)k 4(ocation)k
2740 7504(of)s 7775(the)s 8123(service)s 480 11160(program,)m 1397(as)s
2741 1647(the)s 1995(test)s 2386(for)s 2724(the)s 3072(a)s 4(v)k 6(ailability)k
2742 4190(of)s 4461(the)s 4809(service)s 5541(program)s 6411(w)s 2(ould)k
2743 7066(be)s 7348(done)s 7870(with)s 8352(the)s 8700(old)s
2744 480 10920(current)m 1216(directory)s 2132(and)s 2536(the)s 2884(actual)s
2745 3509(e)s 3(x)k 3(ecution)k 4490(with)s 4972(the)s
2746 5320(ne)s 6(w)k 5767(\(probably)s 6751(causing)s 7535(an)s
2747 7818(error\).)s gsave
2748 120 10580 translate
2749 0.6953 1.0000 scale
2750 240 fnt31 0 -52(eof)m 
2751 grestore
2752 480 10286(Stop)m 972(reading)s
2753 1742(the)s 2090(con\207guration)s 3423(\207le)s 3784(in)s 4027(question,)s
2754 4945(as)s 5195(if)s 5412(end)s 5816(of)s 6087(\207le)s
2755 6448(had)s 6852(been)s 7361(reached.)s 8208(An)s 3(y)k
2756 480 10046(control)m 1212(constructs)s 2232(\()s gsave
2757 2305 10100 translate
2758 0.6953 1.0000 scale
2759 240 fnt31 0 -52(if)m
2760
2761 grestore
2762 2505(,)s gsave
2763 2612 10100 translate
2764 0.6953 1.0000 scale
2765 240 fnt31 0 -52(catch\211quit)m 
2766 grestore
2767 3673(or)s gsave
2768 3932 10100 translate
2769 0.6953 1.0000 scale
2770 240 fnt31
2771 0 -52(errors\211push)m 
2772 grestore
2773 5033(\))s 5161(which)s 5803(were)s 6323(started)s
2774 7017(in)s 7260(that)s 7678(\207le)s 8039(will)s 8465(be)s
2775 480 9806(considered)m 1574(\207nished.)s 2436(P)s 3(arsing)k 3203(will)s
2776 3629(continue)s 4509(in)s 4752(the)s 5100(\207le)s 5461(which)s
2777 6103(caused)s 6812(the)s 7160(\207le)s 7521(containing)s 8584(the)s
2778 gsave
2779 480 9620 translate
2780 0.6953 1.0000 scale
2781 240 fnt31 0 -52(eof)m 
2782 grestore
2783 840 9566(to)m 1079(be)s 1361(read.)s
2784 gsave
2785 120 9276 translate
2786 0.6953 1.0000 scale
2787 240 fnt31 0 -52(quit)m 
2788 grestore
2789 480 8982(Stop)m 969(reading)s 1735(con\207guration)s
2790 3064(\207les)s 3510(and)s 3910(act)s 4244(immediately)s 5489(on)s
2791 5782(the)s 6126(current)s 6859(settings.)s 7689(The)s 8113(beha)s 4(viour)k
2792 480 8742(of)m gsave
2793 751 8796 translate
2794 0.6953 1.0000 scale
2795 240 fnt31 0 -52(quit)m 
2796 grestore
2797 1211(is)s 1421(subject)s
2798 2158(to)s 2397(the)s gsave
2799 2745 8796 translate
2800 0.6953 1.0000 scale
2801 240 fnt31 0 -52(catch\211quit)m 
2802 grestore
2803 3806(control)s
2804 4538(construct.)s gsave
2805 120 8402 translate
2806 0.6953 1.0000 scale
2807 240 fnt31 0 -52(include)m gsave
2808 1152 0 translate
2809 1.4219 1.0000 scale
2810 240 fnt83 0 -52(\207lename)m
2811
2812 grestore
2813
2814 grestore
2815 gsave
2816 120 8162 translate
2817 0.6953 1.0000 scale
2818 240 fnt31 0 -52(include\211ifexist)m gsave
2819 2304 0 translate
2820 1.4219 1.0000 scale
2821 240 fnt83 0 -52(\207lename)m 
2822 grestore
2823
2824 grestore
2825 480 7868(Read)m
2826 1026(the)s 1369(con\207guration)s 2698(\207le)s 240 fnt83 3054 7870(\207lename)m
2827 240 fnt82 3858 7868(,)m 3961(and)s 4360(then)s 4825(return)s
2828 5447(to)s 5682(this)s 6073(\207le)s 6430(and)s 6829(continue)s
2829 7705(parsing)s 8457(it)s 8644(with)s 480 7628(the)m 822(ne)s 3(xt)k
2830 1284(directi)s 6(v)k 3(e.)k 2207(It)s 2405(is)s
2831 2608(an)s 2884(error)s 3400(if)s 3610(the)s 3952(\207le)s
2832 4306(cannot)s 4997(be)s 5272(opened)s 6015(and)s 6412(read,)s
2833 6923(unless)s gsave
2834 7565 7682 translate
2835 0.6953 1.0000 scale
2836 240 fnt31 0 -52(include\211ifexist)m 
2837 grestore
2838 480 7388(is)m 690(used)s
2839 1187(and)s 1591(the)s 1939(\207le)s 2300(does)s 2790(not)s
2840 3156(e)s 3(xist,)k 3711(in)s 3954(which)s 4596(case)s
2841 5063(the)s 5411(directi)s 6(v)k 3(e)k 6293(is)s
2842 6503(silently)s 7260(ignored.)s gsave
2843 120 7048 translate
2844 0.6953 1.0000 scale
2845 240 fnt31 0 -52(include\211lookup)m gsave
2846 2160 0 translate
2847 1.4219 1.0000 scale
2848 240 fnt83
2849 0 -52(par)m 3(ameter)k 
2850 grestore
2851 gsave
2852 3724 0 translate
2853 1.4219 1.0000 scale
2854 240 fnt83 0 -52(dir)m 8(ectory)k
2855
2856 grestore
2857
2858 grestore
2859 gsave
2860 120 6808 translate
2861 0.6953 1.0000 scale
2862 240 fnt31 0 -52(include\211lookup\211all)m gsave
2863 2736 0 translate
2864 1.4219 1.0000 scale
2865 240 fnt83 0 -52(par)m 3(ameter)k
2866
2867 grestore
2868 gsave
2869 4300 0 translate
2870 1.4219 1.0000 scale
2871 240 fnt83 0 -52(dir)m 8(ectory)k 
2872 grestore
2873
2874 grestore
2875 480 6514(Read)m 1030(the)s
2876 1378(con\207guration)s 2711(\207le)s 3072(in)s 240 fnt83 3315 6516(dir)m 8(ectory)k
2877 240 fnt82 4239 6514(whose)m 4907(name)s 5481(is)s 5691(the)s
2878 6039(v)s 6(alue)k 6607(of)s 240 fnt83 6878 6516(par)m 3(ameter)k
2879 240 fnt82 7937 6514(\(see)m 8377(the)s 480 6274(description)m 1599(of)s
2880 gsave
2881 1870 6328 translate
2882 0.6953 1.0000 scale
2883 240 fnt31 0 -52(if)m 
2884 grestore
2885 2070(,)s 2177(`Control)s 3042(structure)s
2886 3933(directi)s 6(v)k 3(es',)k 5038(page)s 5546(12\).)s
2887 5969(If)s 240 fnt83 6199 6276(par)m 3(ameter)k 240 fnt82
2888 7258 6274(has)m 7628(se)s 6(v)k 3(eral)k 8350(v)s 6(alues)k
2889 480 6034(the)m 3(y)k 943(will)s 1369(be)s 1651(tried)s
2890 2146(in)s 2389(order;)s 3005(with)s gsave
2891 3487 6088 translate
2892 0.6953 1.0000 scale
2893 240 fnt31 0 -52(include\211lookup)m
2894
2895 grestore
2896 4948(this)s 5344(search)s 6011(will)s 6437(stop)s 6889(when)s
2897 7465(one)s 7867(is)s 8077(found,)s 8743(b)s 4(ut)k
2898 480 5794(with)m gsave
2899 962 5848 translate
2900 0.6953 1.0000 scale
2901 240 fnt31 0 -52(include\211lookup\211all)m 
2902 grestore
2903 2824(the)s 3172(search)s
2904 3839(will)s 4265(continue)s 5145(and)s 5549(an)s 3(y)k
2905 5946(\207les)s 6395(appropriate)s 7539(to)s 7778(other)s 8329(v)s 6(alues)k
2906 480 5554(will)m 906(be)s 1188(read)s 1657(too.)s 480 5146(If)m
2907 700(none)s 1212(of)s 1473(the)s 1811(parameter')s 13(s)k
2908 2965(v)s 6(alues)k 3610(had)s 4004(a)s 4160(corresponding)s
2909 5572(\207le)s 5923(then)s 6381(the)s 6719(\207le)s gsave
2910 7070 5200 translate
2911 0.6953 1.0000 scale
2912 240 fnt31
2913 0 -52(:default)m 
2914 grestore
2915 7921(will)s 8337(be)s 8608(read,)s 480 4906(if)m
2916 697(it)s 889(e)s 3(xists.)k 1534(If)s 240 fnt83
2917 1764 4908(par)m 3(ameter)k 240 fnt82 2763 4906(')m 13(s)k
2918 2973(list)s 3324(of)s 3595(v)s 6(alues)k 4251(w)s 2(as)k
2919 4672(empty)s 5324(then)s 5793(the)s 6141(\207le)s gsave
2920 6502 4960 translate
2921 0.6953 1.0000 scale
2922 240 fnt31
2923 0 -52(:none)m 
2924 grestore
2925 7062(will)s 7488(be)s 7770(tried)s 8265(\207rst)s
2926 8696(and)s 480 4666(read)m 949(if)s 1166(it)s 1358(e)s 3(xists,)k
2927 2006(otherwise)s gsave
2928 2991 4720 translate
2929 0.6953 1.0000 scale
2930 240 fnt31 0 -52(:default)m 
2931 grestore
2932 3852(will)s 4278(be)s
2933 4560(tried.)s 480 4258(It)m 685(is)s 895(not)s 1261(an)s
2934 1544(error)s 2067(for)s 2405(an)s 3(y)k 2802(of)s
2935 3073(the)s 3421(\207les)s 3870(\(including)s gsave
2936 4906 4312 translate
2937 0.6953 1.0000 scale
2938 240 fnt31 0 -52(:default)m
2939
2940 grestore
2941 5707(\))s 5835(not)s 6201(to)s 6440(e)s 3(xist,)k
2942 6995(b)s 4(ut)k 7357(it)s 7549(is)s 7759(an)s
2943 8042(error)s 8565(if)s 8782(a)s 480 4018(\207le)m 841(e)s 3(xists)k
2944 1433(and)s 1837(cannot)s 2535(be)s 2817(read)s 3286(or)s
2945 3545(if)s 3762(the)s 4110(directory)s 5026(cannot)s 5724(be)s
2946 6006(accessed.)s 480 3610(A)m 693(translation)s 1741(will)s 2150(be)s
2947 2415(applied)s 3160(to)s 3382(v)s 6(alues)k 4021(before)s
2948 4670(the)s 3(y)k 5116(are)s 5446(used)s 5926(to)s
2949 6148(construct)s 7067(a)s 7216(\207lename,)s 8129(so)s 8378(that)s
2950 8778(the)s 480 3370(lookup)m 1195(cannot)s 1888(access)s 2545(dot\207les)s
2951 3295(or)s 3550(\207les)s 3994(in)s 4232(other)s 4779(directories:)s
2952 5887(v)s 6(alues)k 6539(starting)s 7303(with)s 7781(full)s
2953 8162(stops)s 8700(will)s 480 3130(ha)m 4(v)k 3(e)k
2954 970(a)s 1124(colon)s 1702(prepended)s 2745(\(making)s gsave
2955 3584 3184 translate
2956 0.6953 1.0000 scale
2957 240 fnt31
2958 0 -52(:.)m 
2959 grestore
2960 3784(\),)s 3958(colons)s 4623(will)s 5037(be)s
2961 5308(doubled,)s 6175(and)s 6568(each)s 7051(slash)s 7575(will)s
2962 7989(be)s 8259(replaced)s 480 2890(with)m 962(a)s 1128(colon)s
2963 1717(follo)s 6(wed)k 2619(by)s 2913(a)s 3079(h)s 1(yphen)k
2964 gsave
2965 3841 2944 translate
2966 0.6953 1.0000 scale
2967 240 fnt31 0 -52(:\211)m 
2968 grestore
2969 4041(.)s 4145(A)s 4375(parameter)s
2970 5389(v)s 6(alue)k 5957(which)s 6599(is)s 6809(the)s
2971 7157(empty)s 7809(string)s 8406(will)s 8832(be)s 480 2650(replaced)m
2972 1347(with)s gsave
2973 1829 2704 translate
2974 0.6953 1.0000 scale
2975 240 fnt31 0 -52(:empty)m 
2976 grestore
2977 2489(\(note)s 3036(that)s
2978 3454(this)s 3850(is)s 4060(dif)s 6(ferent)k 4935(from)s
2979 5459(a)s 5625(parameter)s 6639(not)s 7005(ha)s 4(ving)k
2980 7706(an)s 3(y)k 8103(v)s 6(alues\).)k gsave
2981 120 2310 translate
2982 0.6953 1.0000 scale
2983 240 fnt31
2984 0 -52(include\211directory)m gsave
2985 2592 0 translate
2986 1.4219 1.0000 scale
2987 240 fnt83 0 -52(dir)m 8(ectory)k 
2988 grestore
2989
2990 grestore
2991 480 2016(Read)m
2992 1030(con\207guration)s 2363(from)s 2887(all)s 3180(\207les)s 3629(in)s
2993 3872(directory)s 240 fnt83 4788 2018(dir)m 8(ectory)k 240 fnt82
2994 5712 2016(which)m 6354(are)s 6701(plain)s 7236(\207les)s 7685(whose)s
2995 8353(names)s 480 1776(consist)m 1204(only)s 1684(of)s 1955(alphanumerics)s
2996 3400(and)s 3804(h)s 1(yphens)k 4653(and)s 5057(start)s
2997 5527(with)s 6009(an)s 6292(alphanumeric.)s 7697(The)s 3(y)k
2998 8240(will)s 8666(be)s 480 1536(read)m 949(in)s 1192(le)s 3(xical)k
2999 1880(order)s 13(.)k 2475(It)s 2680(is)s 2890(an)s
3000 3173(error)s 3696(for)s 4034(the)s 4382(directory)s 5298(not)s
3001 5664(to)s 5903(e)s 3(xist)k 6411(or)s 6670(for)s
3002 7008(it)s 7200(or)s 7459(an)s 3(y)k 7856(of)s
3003 8127(the)s 8475(\207les)s 480 1296(found)m 1089(not)s 1447(to)s
3004 1677(be)s 1951(read)s 2411(successfully)s 15(,)k 3663(or)s
3005 3914(for)s 4243(an)s 3(ything)k 5123(with)s 5596(an)s
3006 5871(appropriate)s 7007(name)s 7572(not)s 7930(to)s 8160(be)s
3007 8434(a)s 8591(plain)s 480 1056(\207le)m 841(or)s 1100(a)s
3008 1266(symbolic)s 2196(link)s 2629(to)s 2868(a)s 3034(plain)s
3009 3569(\207le.)s gsave
3010 120 716 translate
3011 0.6953 1.0000 scale
3012 240 fnt31 0 -52(error)m gsave
3013 864 0 translate
3014 1.4219 1.0000 scale
3015 240 fnt83 0 -52(te)m 4(xt)k
3016 404(\202)s 
3017 grestore
3018
3019 grestore
3020 0 52(User)m 511(service)s 1243(daemon)s 2058(and)s
3021 2462(client)s 3052(speci\207cation)s 8652(0.62)s 
3022 grestore
3023
3024 grestore
3025
3026 pgsave restore
3027 showpage
3028
3029 %%Page: 12 12
3030 %%BeginPageSetup
3031 %%PageResources: font Times-Roman
3032 %%+ font Times-Bold
3033 %%+ font Times-Italic
3034 %%+ font Courier-Bold
3035 /pgsave save def
3036 0.0500 dup scale 10 setlinewidth
3037 %%EndPageSetup
3038 gsave
3039 0 0 translate
3040 240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic
3041 gsave
3042 LoutPageSet
3043 grestore
3044 gsave
3045 0 16840 translate
3046 0.0000 rotate
3047
3048 grestore
3049
3050 grestore
3051 gsave
3052 0 16840 translate
3053 0.0000 rotate
3054 gsave
3055 1417 -15423 translate
3056 240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic
3057 gsave
3058 0 LoutMargSet
3059 grestore
3060 240 fnt84 0 13842(12)m 240 fnt82 480 13254(Causes)m 1209(an)s
3061 1492(error)s 2015(whose)s 2683(message)s 3549(includes)s 4397(the)s
3062 4745(descripti)s 6(v)k 3(e)k 5840(string)s 240 fnt83
3063 6437 13256(te)m 4(xt)k 240 fnt82 6781 13254(.)m 240 fnt83
3064 6885 13256(te)m 4(xt)k 240 fnt82 7289 13254(may)m 7755(consist)s
3065 8479(of)s 480 13014(se)m 6(v)k 3(eral)k 1192(tok)s 2(ens)k
3066 1855(with)s 2326(interv)s 3(ening)k 3454(whitespace.)s 4609(The)s
3067 5026(whitespace)s 6134(will)s 6549(be)s 6820(included)s 7691(in)s
3068 7923(the)s 8260(message)s 480 12774(as)m 726(found)s 1338(in)s
3069 1576(the)s 1919(con\207guration)s 3247(\207le:)s 3653(all)s 3941(the)s
3070 4284(characters)s 5298(until)s 5786(the)s 6129(end)s 6528(of)s
3071 6794(the)s 7137(line)s 7546(will)s 7967(be)s 8244(included)s
3072 480 12534(v)m 3(erbatim,)k 1433(unless)s 2082(the)s 3(y)k
3073 2545(are)s 2892(part)s 3323(of)s 3594(a)s 3760(double-quoted)s
3074 5201(string,)s 5852(in)s 6095(which)s 6737(case)s 7204(the)s
3075 7552(usual)s 8112(meaning)s 480 12294(of)m 751(the)s 1099(string)s
3076 1696(\(i.e.,)s 2174(after)s 2670(backslash)s 3657(escape)s 4350(processing\))s
3077 5501(will)s 5927(be)s 6209(used.)s 6752(Comments)s 7840(and)s
3078 8244(linear)s 480 12054(whitespace)m 1598(at)s 1830(the)s 2178(end)s
3079 2582(of)s 2853(the)s 3201(line)s 3615(\(or)s 3953(just)s
3080 4358(before)s 5024(the)s 5372(comment\))s 6390(will)s 6816(still)s
3081 7228(be)s 7510(ignored.)s gsave
3082 120 11714 translate
3083 0.6953 1.0000 scale
3084 240 fnt31 0 -52(message)m gsave
3085 1152 0 translate
3086 1.4219 1.0000 scale
3087 240 fnt83
3088 0 -52(te)m 4(xt)k 404(\202)s 
3089 grestore
3090
3091 grestore
3092 480 11420(Causes)m 1209(a)s
3093 1375(message)s 2241(including)s 3198(the)s 3546(descripti)s 6(v)k 3(e)k
3094 4641(string)s 240 fnt83 5238 11422(te)m 4(xt)k 240 fnt82
3095 5642 11420(to)m 5881(be)s 6163(deli)s 6(v)k 3(ered)k
3096 7101(as)s 7351(if)s 7568(it)s 7760(were)s 8280(an)s
3097 8563(error)s 480 11180(message,)m 1397(b)s 4(ut)k 1759(does)s
3098 2249(not)s 2615(actually)s 3425(cause)s 4012(an)s 4295(error)s 13(.)k
3099 300 fnt84 0 10513(4.2.2.)m 813(Dir)s 5(ecti)k 3(v)k 3(es)k
3100 2148(with)s 2781(delay)s 3(ed)k 3828(effect)s 240 fnt82
3101 0 9942(The)m 428(follo)s 6(wing)k 1405(directi)s 6(v)k 3(es)k
3102 2375(ha)s 4(v)k 3(e)k 2876(no)s 3169(immediate)s
3103 4233(ef)s 6(fect,)k 4876(b)s 4(ut)k 5238(are)s
3104 5585(remembered)s 6837(and)s 7241(ha)s 4(v)k 3(e)k
3105 7742(an)s 8025(ef)s 6(fect)k 8621(on)s 0 9702(later)m
3106 483(processing)s 1559(of)s 1830(the)s 2178(con\207guration)s 3511(\207les.)s
3107 gsave
3108 120 9348 translate
3109 0.6953 1.0000 scale
3110 240 fnt31 0 -52(user\211rcfile)m gsave
3111 1728 0 translate
3112 1.4219 1.0000 scale
3113 240 fnt83 0 -52(\207lename)m 
3114 grestore
3115
3116 grestore
3117 480 9054(Speci\207es)m
3118 1380(that)s 1784(the)s 2118(\207le)s 240 fnt83 2465 9056(\207lename)m
3119 240 fnt82 3315 9054(should)m 3998(be)s 4266(read)s 4721(instead)s
3120 5442(of)s 5699(the)s 6033(user')s 13(s)k gsave
3121 6627 9108 translate
3122 0.6953 1.0000 scale
3123 240 fnt31
3124 0 -52(~/.userv/rc)m 
3125 grestore
3126 7728(.)s 7818(This)s 8280(does)s 240 fnt83
3127 8756 9056(not)m 240 fnt82 480 8814(happen)m 1229(immediately;)s 2535(instead,)s
3128 3319(the)s 3667(setting)s 4357(is)s 4567(remembered)s 5819(and)s
3129 6223(used)s 6720(after)s 7216(the)s gsave
3130 7564 8868 translate
3131 0.6953 1.0000 scale
3132 240 fnt31 0 -52(system.default)m
3133
3134 grestore
3135 480 8574(con\207guration)m 1812(\207le)s 2171(has)s 2539(been)s 3046(read.)s
3136 3559(This)s 4033(directi)s 6(v)k 3(e)k 4913(has)s
3137 5281(no)s 5572(ef)s 6(fect)k 6166(in)s 6407(a)s
3138 6571(user')s 13(s)k 7177(con\207guration)s 8508(\207le)s 8867(or)s
3139 480 8334(in)m 723(the)s gsave
3140 1071 8388 translate
3141 0.6953 1.0000 scale
3142 240 fnt31 0 -52(system.override)m 
3143 grestore
3144 2632(\207le,)s
3145 3044(as)s 3294(the)s 3642(user')s 13(s)k 4250(con\207guration)s
3146 5583(\207le)s 5944(has)s 6314(already)s 7071(been)s 7580(found)s
3147 8197(and)s 8601(read)s 480 8094(by)m 774(then)s 1243(and)s
3148 1647(will)s 2073(not)s 2439(be)s 2721(re-read.)s gsave
3149 120 7754 translate
3150 0.6953 1.0000 scale
3151 240 fnt31
3152 0 -52(errors\211to\211stderr)m 
3153 grestore
3154 480 7460(Causes)m 1209(error)s 1732(messages)s 2686(to)s
3155 2925(be)s 3207(deli)s 6(v)k 3(ered)k 4145(to)s
3156 4384(the)s 4732(client')s 13(s)k 5472(stderr)s 13(.)k
3157 gsave
3158 120 7120 translate
3159 0.6953 1.0000 scale
3160 240 fnt31 0 -52(errors\211to\211file)m 
3161 grestore
3162 240 fnt83 1581 7068(\207lename)m 240 fnt82
3163 480 6826(Error)m 1039(messages)s 1989(will)s 2410(be)s 2688(written)s
3164 3416(to)s 240 fnt83 3651 6828(\207lename)m 240 fnt82 4455 6826(,)m
3165 4557(which)s 5195(will)s 5617(be)s 5894(opened)s 6640(in)s
3166 6878(the)s 7222(conte)s 3(xt)k 7978(of)s 8245(and)s
3167 8644(with)s 480 6586(the)m 828(pri)s 6(vile)k 3(ges)k
3168 1812(of)s 2083(the)s 2431(service)s 3163(user)s 13(.)k
3169 gsave
3170 120 6246 translate
3171 0.6953 1.0000 scale
3172 240 fnt31 0 -52(errors\211to\211syslog)m 
3173 grestore
3174 1782 6192([)m 240 fnt83 1853 6194(facility)m
3175 240 fnt82 2571 6192([)m 240 fnt83 2642 6194(le)m 3(vel)k
3176 240 fnt82 3089 6192(]])m 480 5952(Error)m 1043(messages)s 1997(will)s
3177 2423(be)s 2705(deli)s 6(v)k 3(ered)k 3643(using)s
3178 gsave
3179 4215 6006 translate
3180 0.6953 1.0000 scale
3181 240 fnt31 0 -52(syslog)m 
3182 grestore
3183 4815(.)s 4919(The)s 5347(def)s 2(ault)k
3184 240 fnt83 6068 5954(facility)m 240 fnt82 6786 5952(is)m gsave
3185 6996 6006 translate
3186 0.6953 1.0000 scale
3187 240 fnt31
3188 0 -52(user)m 
3189 grestore
3190 7396(;)s 7508(the)s 7856(def)s 2(ault)k
3191 240 fnt83 8577 5954(le)m 3(vel)k 240 fnt82 480 5712(is)m
3192 gsave
3193 690 5766 translate
3194 0.6953 1.0000 scale
3195 240 fnt31 0 -52(error)m 
3196 grestore
3197 1190(.)s 300 fnt84 0 5095(4.2.3.)m
3198 813(Contr)s 5(ol)k 1874(structur)s 5(e)k 3117(dir)s 5(ecti)k 3(v)k 3(es)k
3199 240 fnt82 0 4580(The)m 421(follo)s 6(wing)k 1390(directi)s 6(v)k 3(es)k
3200 2353(are)s 2692(used)s 3182(to)s 3413(create)s 4031(control)s
3201 4755(structures.)s 5780(If)s 6002(the)s 6343(end)s 6739(of)s
3202 7003(the)s 7343(\207le)s 7697(is)s 7899(encountered)s 0 4340(before)m
3203 666(the)s 1014(end)s 1418(of)s 1689(an)s 3(y)k
3204 2086(control)s 2818(structure)s 3709(which)s 4351(w)s 2(as)k
3205 4772(started)s 5466(inside)s 6093(it)s 6285(then)s 6754(that)s
3206 7172(control)s 7904(structure)s 8795(is)s 0 4100(considered)m 1094(\207nished.)s
3207 1956(This)s 2432(is)s 2642(not)s 3008(an)s 3291(error)s 13(.)k
3208 gsave
3209 120 3746 translate
3210 0.6953 1.0000 scale
3211 240 fnt31 0 -52(if)m gsave
3212 432 0 translate
3213 1.4219 1.0000 scale
3214 240 fnt83 0 -52(condition)m 
3215 grestore
3216
3217 grestore
3218 gsave
3219 120 3506 translate
3220 0.6953 1.0000 scale
3221 240 fnt31
3222 0 -52(elif)m gsave
3223 720 0 translate
3224 1.4219 1.0000 scale
3225 240 fnt83 0 -52(condition)m 
3226 grestore
3227
3228 grestore
3229 gsave
3230 120 3266 translate
3231 0.6953 1.0000 scale
3232 240 fnt31 0 -52(else)m
3233
3234 grestore
3235 gsave
3236 120 3026 translate
3237 0.6953 1.0000 scale
3238 240 fnt31 0 -52(fi)m 
3239 grestore
3240 480 2732(Lines)m 1062(follo)s 6(wing)k
3241 gsave
3242 2039 2786 translate
3243 0.6953 1.0000 scale
3244 240 fnt31 0 -52(if)m 
3245 grestore
3246 2299(are)s 2646(interpreted)s 3738(only)s
3247 4218(if)s 4435(the)s 4783(condition)s 5744(is)s 5954(true.)s
3248 6429(Man)s 3(y)k 7039(conditions)s 8087(are)s 480 2492(properties)m
3249 1486(of)s 1757(parameter)s 2771(v)s 6(alues.)k 3480(Most)s
3250 4032(parameters)s 5130(ha)s 4(v)k 3(e)k 5631(a)s
3251 5797(single)s 6424(string)s 7021(as)s 7271(a)s 7437(v)s 6(alue;)k
3252 8061(ho)s 6(we)k 6(v)k 3(er)k 9(,)k
3253 480 2252(some)m 1035(may)s 1495(yield)s 2025(zero)s 2483(or)s
3254 2735(se)s 6(v)k 3(eral)k 3451(strings,)s 4189(in)s
3255 4426(which)s 5062(case)s 5522(the)s 5864(condition)s 6819(is)s
3256 7023(true)s 7444(if)s 7654(it)s 7840(is)s 8044(true)s
3257 8465(of)s 8729(an)s 3(y)k 480 2012(of)m 751(the)s
3258 1099(strings)s 1787(indi)s 6(vidually)k 15(.)k 3026(P)s 3(arameters)k
3259 4134(are)s 4481(described)s 5455(belo)s 6(w)k 15(.)k
3260 480 1604(The)m 908(conditions)s 1956(are:)s gsave
3261 600 1418 translate
3262 0.6953 1.0000 scale
3263 240 fnt31 0 -52(glob)m
3264 gsave
3265 720 0 translate
3266 1.4219 1.0000 scale
3267 240 fnt83 0 -52(par)m 3(ameter)k 
3268 grestore
3269 gsave
3270 2284 0 translate
3271 1.4219 1.0000 scale
3272 240 fnt83 0 -52(glob-pattern)m
3273
3274 grestore
3275 4120(\202)s 
3276 grestore
3277 960 1124(The)m 1388(v)s 6(alue)k 1956(of)s
3278 2227(the)s 2575(parameter)s 3589(whose)s 4257(name)s 4831(is)s
3279 5041(gi)s 6(v)k 3(en)k 5621(matches)s 6455(one)s
3280 6857(of)s 7128(the)s 7476(glob)s 7955(patterns)s 960 884(\(anchored)m
3281 1974(at)s 2206(both)s 2689(ends;)s 3240(backslashes)s 4420(can)s
3282 4809(be)s 5091(used)s 5588(to)s 5827(escape)s 6520(metacharacters\).)s
3283 0 52(0.62)m 4809(User)s 5320(service)s 6052(daemon)s 6867(and)s
3284 7271(client)s 7861(speci\207cation)s 
3285 grestore
3286
3287 grestore
3288
3289 pgsave restore
3290 showpage
3291
3292 %%Page: 13 13
3293 %%BeginPageSetup
3294 %%PageResources: font Times-Roman
3295 %%+ font Times-Bold
3296 %%+ font Courier-Bold
3297 %%+ font Times-Italic
3298 /pgsave save def
3299 0.0500 dup scale 10 setlinewidth
3300 %%EndPageSetup
3301 gsave
3302 0 0 translate
3303 240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic
3304 gsave
3305 LoutPageSet
3306 grestore
3307 gsave
3308 0 16840 translate
3309 0.0000 rotate
3310
3311 grestore
3312
3313 grestore
3314 gsave
3315 0 16840 translate
3316 0.0000 rotate
3317 gsave
3318 1417 -15423 translate
3319 240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic
3320 gsave
3321 1 LoutMargSet
3322 grestore
3323 240 fnt84 8833 13842(13)m gsave
3324 600 13310 translate
3325 0.6953 1.0000 scale
3326 240 fnt31 0 -52(range)m gsave
3327 864 0 translate
3328 1.4219 1.0000 scale
3329 240 fnt83
3330 0 -52(par)m 3(ameter)k 
3331 grestore
3332 gsave
3333 2428 0 translate
3334 1.4219 1.0000 scale
3335 240 fnt83 0 -52(min)m 
3336 grestore
3337 gsave
3338 3073 0 translate
3339 1.4219 1.0000 scale
3340 240 fnt83
3341 0 -52(max)m 
3342 grestore
3343
3344 grestore
3345 240 fnt82 960 13016(The)m 1380(v)s 6(alue)k
3346 1940(of)s 2203(the)s 2543(parameter)s 3548(is)s 3750(a)s
3347 3908(nonne)s 3(g)k 1(ati)k 6(v)k 3(e)k
3348 5113(inte)s 3(ger)k 5825(and)s 6220(lies)s 6594(within)s
3349 7254(the)s 7594(range)s 8172(speci\207ed.)s 240 fnt83 960 12778(min)m
3350 240 fnt82 1373 12776(or)m 240 fnt83 1632 12778(max)m 240 fnt82
3351 2091 12776(may)m 2557(be)s gsave
3352 2839 12830 translate
3353 0.6953 1.0000 scale
3354 240 fnt31 0 -52($)m 
3355 grestore
3356 2999(to)s
3357 3238(indicate)s 4050(no)s 4343(lo)s 6(wer)k 4941(or)s
3358 5200(upper)s 5805(limit,)s 6362(respecti)s 6(v)k 3(ely)k 15(.)k
3359 gsave
3360 600 12589 translate
3361 0.6953 1.0000 scale
3362 240 fnt31 0 -52(grep)m gsave
3363 720 0 translate
3364 1.4219 1.0000 scale
3365 240 fnt83 0 -52(par)m 3(ameter)k
3366
3367 grestore
3368 gsave
3369 2284 0 translate
3370 1.4219 1.0000 scale
3371 240 fnt83 0 -52(\207lename)m 
3372 grestore
3373
3374 grestore
3375 960 12295(The)m 240 fnt83 1388 12297(\207lename)m
3376 240 fnt82 2252 12295(refers)m 2845(to)s 3084(a)s 3250(\207le)s
3377 3611(one)s 4013(of)s 4284(whose)s 4952(lines)s 5454(is)s
3378 5664(the)s 6012(v)s 6(alue)k 6580(of)s 6851(the)s
3379 7199(parameter)s 8213(\(leading)s 960 12055(or)m 1211(trailing)s 1944(whitespace)s
3380 3053(on)s 3341(each)s 3827(line)s 4232(and)s 4627(empty)s
3381 5270(lines)s 5764(in)s 5998(the)s 6337(\207le)s 6689(are)s
3382 7027(ignored\).)s 7932(It)s 8128(is)s 8329(an)s 8603(error)s
3383 960 11815(for)m 1298(the)s 1646(\207le)s 2007(not)s 2373(to)s
3384 2612(be)s 2894(opened)s 3644(and)s 4048(read.)s gsave
3385 600 11628 translate
3386 0.6953 1.0000 scale
3387 240 fnt31
3388 0 -52(!)m gsave
3389 288 0 translate
3390 1.4219 1.0000 scale
3391 240 fnt83 0 -52(condition)m 
3392 grestore
3393
3394 grestore
3395 960 11334(The)m 240 fnt83
3396 1388 11336(condition)m 240 fnt82 2346 11334(is)m 240 fnt83 2556 11336(not)m
3397 240 fnt82 2926 11334(true.)m 600 11094(Conjunctions:)m gsave
3398 1983 11148 translate
3399 0.6953 1.0000 scale
3400 240 fnt31 0 -52(&)m
3401
3402 grestore
3403 2143(and)s gsave
3404 2547 11148 translate
3405 0.6953 1.0000 scale
3406 240 fnt31 0 -52(|)m 
3407 grestore
3408 gsave
3409 1440 10901 translate
3410 0.6953 1.0000 scale
3411 240 fnt31 0 -52(\()m
3412 gsave
3413 288 0 translate
3414 1.4219 1.0000 scale
3415 240 fnt83 0 -52(condition)m 
3416 grestore
3417 0 -292(&)m gsave
3418 288 -240 translate
3419 1.4219 1.0000 scale
3420 240 fnt83 0 -52(condition)m
3421
3422 grestore
3423 0 -532(&)m gsave
3424 288 -480 translate
3425 1.4219 1.0000 scale
3426 240 fnt83 0 -52(condition)m 
3427 grestore
3428 0 -772(\202)m 0 -1012(\))m
3429
3430 grestore
3431 960 9635(is)m 1170(true)s 1597(if)s 1814(all)s 2107(the)s
3432 2455(listed)s 3030(conditions)s 4078(are)s 4425(true;)s 4908(where)s
3433 gsave
3434 5548 9689 translate
3435 0.6953 1.0000 scale
3436 240 fnt31 0 -52(|)m 
3437 grestore
3438 5708(is)s 5918(used)s 6415(it)s
3439 6607(is)s 6817(true)s 7244(if)s 7461(an)s 3(y)k
3440 7858(of)s 8129(them)s 8667(is)s 960 9390(true.)m 1428(Ne)s 6(wlines)k
3441 2368(must)s 2885(be)s 3159(used)s 3648(to)s 3879(separate)s
3442 4709(one)s 5104(condition)s 6057(from)s 6573(the)s 6913(ne)s 3(xt,)k
3443 7421(as)s 7663(sho)s 6(wn,)k 8382(and)s 8778(the)s
3444 960 9150(parentheses)m 2126(are)s 2473(mandatory)s 15(.)k 3585(These)s
3445 4212(conjunctions)s 5486(do)s 5779(not)s 6145(do)s 6438(lazy)s
3446 6890(e)s 6(v)k 6(aluation.)k 480 8588(The)m 908(parameters)s
3447 2006(are:)s gsave
3448 600 8402 translate
3449 0.6953 1.0000 scale
3450 240 fnt31 0 -52(service)m 
3451 grestore
3452 960 8108(The)m 1388(service)s
3453 2120(name)s 2694(speci\207ed)s 3602(when)s 4178(the)s 4526(client)s
3454 5116(w)s 2(as)k 5537(called.)s gsave
3455 600 7922 translate
3456 0.6953 1.0000 scale
3457 240 fnt31 0 -52(calling\211user)m
3458
3459 grestore
3460 960 7628(T)m 19(w)k 2(o)k 1431(strings:)s 2174(the)s
3461 2522(login)s 3071(name)s 3645(of)s 3916(the)s 4264(calling)s
3462 4967(user)s 5425(\(determined)s 6637(as)s 6887(for)s gsave
3463 7225 7682 translate
3464 0.6953 1.0000 scale
3465 240 fnt31
3466 0 -52(USERV_USER)m 
3467 grestore
3468 8226(,)s 8333(abo)s 3(v)k 3(e\))k
3469 960 7388(and)m 1364(the)s 1712(calling)s 2415(uid)s 2779(\(represented)s
3470 4017(in)s 4260(decimal\).)s gsave
3471 600 7202 translate
3472 0.6953 1.0000 scale
3473 240 fnt31 0 -52(calling\211group)m 
3474 grestore
3475 960 6908(Se)m 6(v)k 3(eral)k
3476 1722(strings:)s 2465(the)s 2813(primary)s 3623(and)s 4027(supplementary)s
3477 5489(group)s 6101(names)s 6763(and)s 7167(gids)s 7617(\(in)s
3478 7939(decimal\))s 960 6668(of)m 1231(the)s 1579(calling)s 2282(process.)s
3479 3103(All)s 3463(the)s 3811(group)s 4423(names)s 5085(come)s
3480 5659(\207rst,)s 6137(and)s 6541(then)s 7010(the)s 7358(gids.)s
3481 7861(If)s 8091(the)s 8439(\207rst)s 960 6428(supplementary)m 2422(group)s
3482 3034(is)s 3244(the)s 3592(same)s 4139(as)s 4389(the)s
3483 4737(primary)s 5547(group)s 6159(then)s 6628(it)s 6820(is)s
3484 7030(elided.)s gsave
3485 600 6242 translate
3486 0.6953 1.0000 scale
3487 240 fnt31 0 -52(calling\211user\211shell)m 
3488 grestore
3489 960 5948(The)m 1388(calling)s
3490 2091(user')s 13(s)k 2699(shell,)s 3257(as)s 3507(listed)s
3491 4082(in)s 4325(the)s 4673(passw)s 2(ord)k 5633(entry)s
3492 6178(for)s 6516(the)s 6864(calling)s 7567(login)s 8116(name)s
3493 8690(\(as)s 960 5708(determined)m 2093(for)s gsave
3494 2431 5762 translate
3495 0.6953 1.0000 scale
3496 240 fnt31 0 -52(USERV_USER)m
3497
3498 grestore
3499 3432(,)s 3539(abo)s 3(v)k 3(e\).)k gsave
3500 600 5522 translate
3501 0.6953 1.0000 scale
3502 240 fnt31
3503 0 -52(service\211user)m 
3504 grestore
3505 960 5228(T)m 19(w)k 2(o)k 1431(strings:)s
3506 2174(the)s 2522(name)s 3096(of)s 3367(the)s 3715(service)s
3507 4447(user)s 4905(\(as)s 5234(speci\207ed)s 6142(to)s 6381(the)s
3508 6729(client\))s 7387(and)s 7791(their)s 8288(uid)s 960 4988(\(represented)m
3509 2198(in)s 2441(decimal\).)s gsave
3510 600 4802 translate
3511 0.6953 1.0000 scale
3512 240 fnt31 0 -52(service\211group)m 
3513 grestore
3514 960 4508(Se)m 6(v)k 3(eral)k
3515 1722(strings:)s 2465(the)s 2813(primary)s 3623(and)s 4027(supplementary)s
3516 5489(group)s 6101(names)s 6763(and)s 7167(gids)s 7617(\(in)s
3517 7939(decimal\))s 8823(of)s 960 4268(the)m 1308(service)s 2040(user)s 13(.)k
3518 gsave
3519 600 4082 translate
3520 0.6953 1.0000 scale
3521 240 fnt31 0 -52(service\211user\211shell)m 
3522 grestore
3523 960 3788(The)m 1388(service)s 2120(user')s 13(s)k
3524 2728(shell,)s 3286(as)s 3536(listed)s 4111(in)s 4354(their)s
3525 4851(passw)s 2(ord)k 5811(entry)s 15(.)k gsave
3526 600 3602 translate
3527 0.6953 1.0000 scale
3528 240 fnt31
3529 0 -52(u\211)m gsave
3530 288 0 translate
3531 1.4219 1.0000 scale
3532 240 fnt83 0 -52(name)m 
3533 grestore
3534
3535 grestore
3536 960 3308(The)m 1388(v)s 6(alue)k
3537 1956(of)s 2227(the)s 2575(user)s 4(-de\207ned)k 3811(v)s 6(ariable)k
3538 240 fnt83 4630 3310(name)m 240 fnt82 5202 3308(passed)m 5898(by)s
3539 6192(the)s 6540(caller)s 7129(using)s 7701(the)s gsave
3540 8049 3362 translate
3541 0.6953 1.0000 scale
3542 240 fnt31
3543 0 -52(\211\211defvar)m 
3544 grestore
3545 960 3068(command-line)m 2397(option)s 3066(to)s 3305(the)s
3546 3653(client.)s 4287(If)s 4517(the)s 4865(v)s 6(ariable)k
3547 5684(w)s 2(as)k 6105(not)s 6471(de\207ned)s 7234(then)s
3548 7703(this)s 8099(parameter)s 960 2828(is)m 1170(an)s 1453(empty)s
3549 2105(list)s 2456(of)s 2727(strings;)s 3476(in)s 3719(this)s
3550 4115(case)s 4582(an)s 3(y)k 4979(condition)s 5940(which)s
3551 6582(tests)s 7057(it)s 7249(will)s 7675(be)s 7957(f)s 2(alse,)k
3552 8512(and)s gsave
3553 960 2642 translate
3554 0.6953 1.0000 scale
3555 240 fnt31 0 -52(include\211lookup)m 
3556 grestore
3557 2421 2588(on)m 2718(it)s
3558 2910(will)s 3336(read)s 3805(the)s gsave
3559 4153 2642 translate
3560 0.6953 1.0000 scale
3561 240 fnt31 0 -52(:none)m
3562
3563 grestore
3564 4713(\207le,)s 5125(or)s gsave
3565 5384 2642 translate
3566 0.6953 1.0000 scale
3567 240 fnt31 0 -52(:default)m 
3568 grestore
3569 6245(if)s
3570 gsave
3571 6462 2642 translate
3572 0.6953 1.0000 scale
3573 240 fnt31 0 -52(:none)m 
3574 grestore
3575 7022(is)s 7232(not)s 7598(found.)s
3576 gsave
3577 120 2219 translate
3578 0.6953 1.0000 scale
3579 240 fnt31 0 -52(errors\211push)m 
3580 grestore
3581 240 fnt83 1281 2167(\207lename)m gsave
3582 120 1979 translate
3583 0.6953 1.0000 scale
3584 240 fnt31
3585 0 -52(srorre)m 
3586 grestore
3587 240 fnt82 480 1685(Stacks)m 1155(the)s 1503(error)s
3588 2026(handling)s 2917(beha)s 4(viour)k 3930(currently)s 4846(in)s
3589 5089(ef)s 6(fect.)k 5729(An)s 3(y)k 6193(changes)s
3590 7015(to)s 7254(error)s 7777(handling)s 8668(will)s 480 1445(tak)m 2(e)k
3591 932(ef)s 6(fect)k 1528(only)s 2008(between)s gsave
3592 2862 1499 translate
3593 0.6953 1.0000 scale
3594 240 fnt31
3595 0 -52(errors\211push)m 
3596 grestore
3597 4023(and)s gsave
3598 4427 1499 translate
3599 0.6953 1.0000 scale
3600 240 fnt31 0 -52(srorre)m 
3601 grestore
3602 5027(.)s
3603 gsave
3604 120 1105 translate
3605 0.6953 1.0000 scale
3606 240 fnt31 0 -52(catch\211quit)m 
3607 grestore
3608 gsave
3609 120 865 translate
3610 0.6953 1.0000 scale
3611 240 fnt31 0 -52(hctac)m 
3612 grestore
3613 0 52(User)m
3614 511(service)s 1243(daemon)s 2058(and)s 2462(client)s 3052(speci\207cation)s
3615 8652(0.62)s 
3616 grestore
3617
3618 grestore
3619
3620 pgsave restore
3621 showpage
3622
3623 %%Page: 14 14
3624 %%BeginPageSetup
3625 %%PageResources: font Times-Roman
3626 %%+ font Times-Bold
3627 %%+ font Courier-Bold
3628 %%+ font Times-Italic
3629 /pgsave save def
3630 0.0500 dup scale 10 setlinewidth
3631 %%EndPageSetup
3632 gsave
3633 0 0 translate
3634 240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic
3635 gsave
3636 LoutPageSet
3637 grestore
3638 gsave
3639 0 16840 translate
3640 0.0000 rotate
3641
3642 grestore
3643
3644 grestore
3645 gsave
3646 0 16840 translate
3647 0.0000 rotate
3648 gsave
3649 1417 -15423 translate
3650 240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic
3651 gsave
3652 0 LoutMargSet
3653 grestore
3654 240 fnt84 0 13842(14)m 240 fnt82 480 13254(An)m 3(y)k
3655 935(use)s 1301(of)s gsave
3656 1563 13308 translate
3657 0.6953 1.0000 scale
3658 240 fnt31 0 -52(quit)m 
3659 grestore
3660 2013(inside)s
3661 gsave
3662 2631 13308 translate
3663 0.6953 1.0000 scale
3664 240 fnt31 0 -52(catch\211quit)m 
3665 grestore
3666 3683(will)s 4100(merely)s 4807(cause)s
3667 5385(the)s 5724(parsing)s 6472(to)s 6701(continue)s 7572(at)s
3668 gsave
3669 7795 13308 translate
3670 0.6953 1.0000 scale
3671 240 fnt31 0 -52(hctac)m 
3672 grestore
3673 8345(instead.)s 480 13014(An)m 3(y)k
3674 944(control)s 1676(constructs)s 2696(started)s 3390(since)s 3937(the)s
3675 gsave
3676 4285 13068 translate
3677 0.6953 1.0000 scale
3678 240 fnt31 0 -52(catch\211quit)m 
3679 grestore
3680 5346(will)s 5772(be)s 6054(considered)s
3681 7148(\207nished)s 7964(if)s 8181(a)s gsave
3682 8347 13068 translate
3683 0.6953 1.0000 scale
3684 240 fnt31 0 -52(quit)m
3685
3686 grestore
3687 480 12774(is)m 690(found.)s 480 12366(If)m 710(an)s 993(error)s
3688 1516(occurs)s 2191(inside)s gsave
3689 2818 12420 translate
3690 0.6953 1.0000 scale
3691 240 fnt31 0 -52(catch\211quit)m 
3692 grestore
3693 3879(the)s
3694 4227(e)s 3(x)k 3(ecution)k 5208(settings)s 5989(will)s
3695 6415(be)s 6697(reset)s 7207(\(as)s 7536(if)s 7753(by)s
3696 8047(the)s gsave
3697 8395 12420 translate
3698 0.6953 1.0000 scale
3699 240 fnt31 0 -52(reset)m 
3700 grestore
3701 480 12126(directi)m 6(v)k 3(e\))k
3702 1434(and)s 1838(parsing)s 2595(will)s 3021(lik)s 2(e)k 6(wise)k
3703 3865(continue)s 4745(at)s gsave
3704 4977 12180 translate
3705 0.6953 1.0000 scale
3706 240 fnt31 0 -52(hctac)m 
3707 grestore
3708 5477(.)s
3709 480 11718(If)m 705(a)s 865(le)s 3(xical)k 1548(or)s
3710 1801(syntax)s 2476(error)s 2993(is)s 3198(detected)s 4046(in)s
3711 4283(the)s 4626(same)s 5167(con\207guration)s 6495(\207le)s 6850(as)s
3712 7095(the)s gsave
3713 7437 11772 translate
3714 0.6953 1.0000 scale
3715 240 fnt31 0 -52(catch\211quit)m 
3716 grestore
3717 8438(,)s 8539(while)s
3718 480 11478(looking)m 1265(for)s 1603(the)s gsave
3719 1951 11532 translate
3720 0.6953 1.0000 scale
3721 240 fnt31 0 -52(hctac)m
3722
3723 grestore
3724 2511(after)s 3007(an)s 3290(error)s 3813(or)s gsave
3725 4072 11532 translate
3726 0.6953 1.0000 scale
3727 240 fnt31
3728 0 -52(quit)m 
3729 grestore
3730 4472(,)s 4579(that)s 4997(ne)s 6(w)k
3731 5444(error)s 5967(will)s 6393(not)s 6759(be)s 7041(caught.)s
3732 300 fnt84 0 10811(4.2.4.)m 813(Dir)s 5(ecti)k 3(v)k 3(es)k
3733 2148(f)s 7(or)k 2595(changing)s 3829(execution)s 5112(settings)s
3734 240 fnt82 0 10240(The)m 419(follo)s 6(wing)k 1386(directi)s 6(v)k 3(es)k
3735 2346(modify)s 3082(the)s 3420(e)s 3(x)k 3(ecution)k
3736 4391(settings;)s 5223(the)s 5562(serv)s 3(er)k 6192(will)s
3737 6608(remember)s 7627(the)s 7965(f)s 2(act)k 8370(that)s
3738 8778(the)s 0 9999(directi)m 6(v)k 3(e)k 881(w)s 2(as)k
3739 1300(encountered)s 2525(and)s 2927(act)s 3263(on)s 3559(it)s
3740 3749(only)s 4227(after)s 4721(all)s 5012(the)s 5359(con\207guration)s
3741 6690(has)s 7058(been)s 7565(parsed.)s 8291(The)s 240 fnt83
3742 8717 10001(last)m 240 fnt82 0 9759(directi)m 6(v)k 3(e)k
3743 882(which)s 1524(modi\207es)s 2399(an)s 3(y)k 2796(particuar)s
3744 3704(setting)s 4394(will)s 4820(tak)s 2(e)k 5272(ef)s 6(fect.)k
3745 gsave
3746 120 9405 translate
3747 0.6953 1.0000 scale
3748 240 fnt31 0 -52(reject)m 
3749 grestore
3750 480 9111(Reject)m 1150(the)s 1498(request.)s
3751 gsave
3752 2292 9165 translate
3753 0.6953 1.0000 scale
3754 240 fnt31 0 -52(execute)m 
3755 grestore
3756 2992(,)s gsave
3757 3099 9165 translate
3758 0.6953 1.0000 scale
3759 240 fnt31 0 -52(execute\211from\211directory)m
3760
3761 grestore
3762 5361(and)s gsave
3763 5765 9165 translate
3764 0.6953 1.0000 scale
3765 240 fnt31 0 -52(execute\211from\211path)m 
3766 grestore
3767 7527(will)s 7953(change)s
3768 480 8871(this)m 876(setting.)s gsave
3769 120 8531 translate
3770 0.6953 1.0000 scale
3771 240 fnt31 0 -52(execute)m gsave
3772 1152 0 translate
3773 1.4219 1.0000 scale
3774 240 fnt83
3775 0 -52(pr)m 10(o)k 2(gr)k 3(am)k 
3776 grestore
3777 2461([)s
3778 gsave
3779 2605 0 translate
3780 1.4219 1.0000 scale
3781 240 fnt83 0 -52(ar)m 8(gument)k 
3782 grestore
3783 4048(\202])s 
3784 grestore
3785 480 8237(Ex)m 3(ecute)k
3786 1300(the)s 1645(program)s 240 fnt83 2512 8239(pr)m 10(o)k 2(gr)k 3(am)k
3787 240 fnt82 3332 8237(,)m 3436(with)s 3915(the)s 4259(ar)s 4(guments)k
3788 5299(as)s 5546(speci\207ed,)s 6500(follo)s 6(wed)k 7399(by)s
3789 7690(an)s 3(y)k 8083(ar)s 4(guments)k 480 7997(gi)m 6(v)k 3(en)k
3790 1052(to)s 1282(the)s 1621(client)s 2203(if)s gsave
3791 2411 8051 translate
3792 0.6953 1.0000 scale
3793 240 fnt31
3794 0 -52(no\211suppress\211args)m 
3795 grestore
3796 4064(is)s 4266(in)s 4500(ef)s 6(fect.)k
3797 5131(It)s 5328(is)s 5529(an)s 5803(error)s 6318(for)s
3798 6647(the)s 6986(e)s 3(x)k 3(ecution)k 7959(to)s
3799 8189(f)s 2(ail)k 8550(when)s 480 7757(it)m 672(is)s
3800 882(attempted)s 1882(\(after)s 2457(all)s 2750(the)s 3098(con\207guration)s
3801 4431(has)s 4801(been)s 5310(parsed\).)s 6117(If)s 240 fnt83
3802 6347 7759(pr)m 10(o)k 2(gr)k 3(am)k 240 fnt82
3803 7227 7757(does)m 7717(not)s 8083(contain)s 8844(a)s 480 7517(slash)m
3804 1015(it)s 1207(will)s 1633(be)s 1915(searched)s 2809(for)s
3805 3147(on)s 3444(the)s 3792(service)s 4524(user')s 13(s)k
3806 5132(path.)s gsave
3807 120 7177 translate
3808 0.6953 1.0000 scale
3809 240 fnt31 0 -52(execute\211from\211directory)m gsave
3810 3312 0 translate
3811 1.4219 1.0000 scale
3812 240 fnt83 0 -52(pathname)m
3813
3814 grestore
3815 4789([)s gsave
3816 4933 0 translate
3817 1.4219 1.0000 scale
3818 240 fnt83 0 -52(ar)m 8(gument)k 
3819 grestore
3820 6376(\202])s
3821
3822 grestore
3823 480 6883(T)m 19(ak)k 2(e)k 993(all)s 1286(the)s
3824 1634(characters)s 2652(after)s 3148(the)s 3496(last)s 3887(slash)s
3825 4422(of)s 4693(the)s 5041(service)s 5773(name)s 6347(speci\207ed)s
3826 7255(when)s 7831(the)s 8179(client)s 480 6642(w)m 2(as)k
3827 901(called,)s 1578(and)s 1982(e)s 3(x)k 3(ecute)k
3828 2762(that)s 3180(program)s 4050(in)s 4293(the)s 4641(directory)s
3829 5557(named)s 6253(by)s 240 fnt83 6547 6644(pathname)m 240 fnt82
3830 7545 6642(as)m 7795(if)s 8012(it)s 8204(had)s 8608(been)s
3831 480 6402(speci\207ed)m 1388(for)s 240 fnt83 1726 6404(e)m 4(xecute)k
3832 240 fnt82 2431 6402(.)m 2535(The)s 2963(part)s 3394(of)s
3833 3665(the)s 4013(service)s 4745(name)s 5319(used)s 5816(may)s
3834 6282(contain)s 7043(only)s 7523(alphanumerics)s 480 6162(and)m 884(h)s 1(yphens)k
3835 1732(and)s 2136(must)s 2660(start)s 3130(with)s 3611(an)s
3836 3894(alphanumeric)s 5247(\(and)s 5730(it)s 5921(must)s 6446(be)s
3837 6727(non-empty\),)s 7950(otherwise)s 8934(it)s 480 5922(is)m 690(an)s
3838 973(error)s 13(.)k 480 5514(This)m 956(directi)s 6(v)k 3(e)k
3839 1838(is)s 2048(ignored)s 2837(if)s 3054(the)s 3402(rele)s 6(v)k 6(ant)k
3840 4219(program)s 5089(does)s 5579(not)s 5945(e)s 3(xist)k
3841 6453(in)s 6696(the)s 7044(directory)s 7960(speci\207ed;)s 480 5274(in)m
3842 723(this)s 1119(case)s 1586(the)s 1934(program)s 2804(to)s
3843 3043(e)s 3(x)k 3(ecute)k 3823(is)s 4033(left)s
3844 4410(at)s 4642(its)s 4918(pre)s 6(vious)k 5787(setting)s
3845 6477(\(or)s 6815(unset,)s 7427(if)s 7644(it)s 7836(w)s 2(as)k
3846 8257(not)s 480 5034(set)m 805(before\).)s 480 4626(It)m 672(is)s
3847 869(an)s 1139(error)s 1649(for)s 1974(the)s 2309(test)s
3848 2687(for)s 3012(the)s 3347(e)s 3(xistence)k 4276(of)s
3849 4533(the)s 4868(program)s 5725(to)s 5951(f)s 2(ail)k
3850 6308(other)s 6846(than)s 7302(with)s 7771(a)s 7924(`no)s
3851 8283(such)s 8765(\207le)s 480 4386(or)m 729(directory')s 1693(indication.)s
3852 2743(It)s 2938(is)s 3138(also)s 3566(an)s 3839(error)s
3853 4352(for)s 4680(the)s 5018(e)s 3(x)k 3(ecution)k
3854 5989(to)s 6218(f)s 2(ail)k 6578(if)s 6785(and)s
3855 7179(when)s 7745(it)s 7927(is)s 8126(attempted)s 480 4146(\(after)m
3856 1055(all)s 1348(the)s 1696(con\207guration)s 3029(has)s 3399(been)s
3857 3908(parsed\).)s gsave
3858 120 3806 translate
3859 0.6953 1.0000 scale
3860 240 fnt31 0 -52(execute\211from\211path)m 
3861 grestore
3862 240 fnt83 480 3514(service)m
3863 240 fnt82 1202 3512(is)m 1404(interpreted)s 2488(as)s 2731(a)s
3864 2889(program)s 3751(on)s 4041(the)s 4381(def)s 2(ault)k
3865 gsave
3866 5094 3566 translate
3867 0.6953 1.0000 scale
3868 240 fnt31 0 -52(PATH)m 
3869 grestore
3870 5546(\(or)s 5877(as)s 6119(a)s
3871 6277(pathname)s 7256(of)s 7519(an)s 7794(e)s 3(x)k 3(ecutable,)k
3872 8909(if)s 480 3271(it)m 660(contains)s 1495(a)s gsave
3873 1649 3325 translate
3874 0.6953 1.0000 scale
3875 240 fnt31
3876 0 -52(/)m 
3877 grestore
3878 1749(\).)s 1919(This)s 2383(directi)s 6(v)k 3(e)k
3879 3252(is)s 240 fnt83 3450 3273(very)m 3904(dang)s 2(er)k 10(ous)k
3880 240 fnt82 4899 3271(,)m 4994(and)s 5385(is)s 5583(only)s
3881 6050(pro)s 3(vided)k 6944(to)s 7170(mak)s 2(e)k
3882 7730(the)s gsave
3883 8065 3325 translate
3884 0.6953 1.0000 scale
3885 240 fnt31 0 -52(\211\211override)m 
3886 grestore
3887 480 3031(options)m 1230(ef)s 6(fecti)k 6(v)k 3(e.)k
3888 2146(It)s 2344(should)s 3034(not)s 3393(normally)s 4304(be)s
3889 4579(used.)s 5115(It)s 5313(is)s 5516(an)s 5792(error)s
3890 6309(for)s 6640(the)s 6981(e)s 3(x)k 3(ecution)k
3891 7955(to)s 8187(f)s 2(ail)k 8550(when)s 480 2791(it)m
3892 672(is)s 882(attempted)s 1882(\(after)s 2457(all)s 2750(the)s
3893 3098(con\207guration)s 4431(has)s 4801(been)s 5310(parsed\).)s gsave
3894 120 2451 translate
3895 0.6953 1.0000 scale
3896 240 fnt31
3897 0 -52(execute\211builtin)m gsave
3898 2304 0 translate
3899 1.4219 1.0000 scale
3900 240 fnt83 0 -52(service-name)m 
3901 grestore
3902 gsave
3903 4249 0 translate
3904 1.4219 1.0000 scale
3905 240 fnt83 0 -52(service-ar)m 8(guments)k
3906
3907 grestore
3908
3909 grestore
3910 480 2157(Ex)m 3(ecutes)k 1388(the)s 1732(b)s 4(uiltin)k
3911 2405(service)s 240 fnt83 3133 2159(service-name)m 240 fnt82 4400 2157(.)m
3912 4500(These)s 5123(b)s 4(uiltin)k 5796(services)s 6612(display)s
3913 7353(information)s 8534(about)s 480 1917(the)m 822(serv)s 3(er)k
3914 1455(and/or)s 2120(the)s 2461(request,)s 3252(and)s 3649(ignore)s
3915 4310(an)s 3(y)k 4700(ar)s 4(guments)k 5737(passed)s
3916 6426(from)s 6944(the)s 7285(service)s 8011(side)s 8445(e)s 3(xcept)k
3917 480 1677(possibly)m 1320(to)s 1547(print)s 2046(them)s 2572(as)s
3918 2810(part)s 3228(of)s 3487(their)s 3972(output.)s 4676(The)s 3(y)k
3919 5207(write)s 5740(their)s 6225(results)s 6887(to)s 7114(their)s
3920 7599(standard)s 8454(output)s 480 1437(\(i.e.,)m 958(where)s 6(v)k 3(er)k
3921 1898(\207le)s 2259(descriptor)s 3274(1)s 3429(is)s 3639(directed\).)s
3922 4591(The)s 5019(b)s 4(uiltin)k 5696(services)s 6516(are:)s
3923 gsave
3924 600 1251 translate
3925 0.6953 1.0000 scale
3926 240 fnt31 0 -52(execute)m 
3927 grestore
3928 960 957(Displays)m 1848(the)s 2196(e)s 3(x)k 3(ecution)k
3929 3177(settings,)s 4014(de\207ned)s 4777(v)s 6(ariables,)k 5740(ar)s 4(guments,)k
3930 6839(etc.)s 7221(with)s 7703(which)s 8345(the)s 960 717(b)m 4(uiltin)k
3931 1637(service)s 2369(w)s 2(as)k 2790(in)s 9(v)k 4(ok)k 2(ed.)k
3932 0 52(0.62)m 4809(User)s 5320(service)s 6052(daemon)s 6867(and)s
3933 7271(client)s 7861(speci\207cation)s 
3934 grestore
3935
3936 grestore
3937
3938 pgsave restore
3939 showpage
3940
3941 %%Page: 15 15
3942 %%BeginPageSetup
3943 %%PageResources: font Times-Roman
3944 %%+ font Times-Bold
3945 %%+ font Courier-Bold
3946 %%+ font Times-Italic
3947 /pgsave save def
3948 0.0500 dup scale 10 setlinewidth
3949 %%EndPageSetup
3950 gsave
3951 0 0 translate
3952 240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic
3953 gsave
3954 LoutPageSet
3955 grestore
3956 gsave
3957 0 16840 translate
3958 0.0000 rotate
3959
3960 grestore
3961
3962 grestore
3963 gsave
3964 0 16840 translate
3965 0.0000 rotate
3966 gsave
3967 1417 -15423 translate
3968 240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic
3969 gsave
3970 1 LoutMargSet
3971 grestore
3972 240 fnt84 8833 13842(15)m gsave
3973 600 13310 translate
3974 0.6953 1.0000 scale
3975 240 fnt31 0 -52(environment)m 
3976 grestore
3977 240 fnt82
3978 960 13016(Dis)m 1283(plays)s 1839(the)s 2187(en)s 2410(vi)s
3979 2590(ron)s 2906(ment)s 3444(v)s 6(ari)k 3803(able)s
3980 4257(set)s 4522(tings)s 5038(with)s 5520(which)s 6162(the)s
3981 6510(b)s 4(uiltin)k 7187(ser)s 7465(vice)s 7919(w)s 2(as)k
3982 960 12776(in)m 1143(v)s 4(ok)k 2(ed.)k gsave
3983 600 12590 translate
3984 0.6953 1.0000 scale
3985 240 fnt31
3986 0 -52(parameter)m gsave
3987 1440 0 translate
3988 1.4219 1.0000 scale
3989 240 fnt83 0 -52(par)m 3(ameter)k 
3990 grestore
3991
3992 grestore
3993 960 12296(Displays)m
3994 1848(the)s 2196(v)s 6(alues)k 2852(of)s 3123(the)s
3995 3471(service)s 4203(con\207guration)s 5536(language)s 6456(parameter)s 7470(speci\207ed.)s
3996 gsave
3997 600 12110 translate
3998 0.6953 1.0000 scale
3999 240 fnt31 0 -52(version)m 
4000 grestore
4001 960 11816(Displays)m 1848(the)s 2196(v)s 3(ersion)k
4002 2954(string)s 3551(and)s 3955(compilation)s 5154(details)s 5828(of)s
4003 6099(the)s 6447(uservd)s 7143(serv)s 3(er)k 7783(program.)s
4004 gsave
4005 600 11630 translate
4006 0.6953 1.0000 scale
4007 240 fnt31 0 -52(reset)m 
4008 grestore
4009 960 11336(Dis)m 1283(plays)s 1838(the)s
4010 2184(de)s 2406(f)s 2(ault)k 2899(re)s 3080(set)s
4011 3403(con)s 3746(\207g)s 3992(u)s 4107(ra)s 4292(tion)s
4012 4719(\(e)s 6(v)k 6(al)k 5179(u)s 5294(at)s
4013 5466(ed)s 5748(when)s gsave
4014 6323 11390 translate
4015 0.6953 1.0000 scale
4016 240 fnt31 0 -52(reset)m 
4017 grestore
4018 6881(is)s
4019 7089(found)s 7704(in)s 7945(a)s 8109(con)s 8452(\207g)s
4020 8698(u)s 8813(ra)s 8998(-)s 960 11096(tion)m 1389(\207le,)s
4021 1801(or)s 2060(when)s 2636(an)s 2919(er)s 3104(ror)s
4022 3442(is)s 3652(caught)s 4350(by)s gsave
4023 4644 11150 translate
4024 0.6953 1.0000 scale
4025 240 fnt31 0 -52(catch\211quit)m
4026
4027 grestore
4028 5645(\).)s gsave
4029 600 10910 translate
4030 0.6953 1.0000 scale
4031 240 fnt31 0 -52(toplevel)m 
4032 grestore
4033 960 10616(Displays)m 1848(the)s
4034 2196(top-le)s 6(v)k 3(el)k 3091(def)s 2(ault)k
4035 3812(con\207guration)s 5145(\(the)s 5572(con\207guration)s 6905(data,)s 7410(e)s 6(v)k 6(aluated)k
4036 8372(by)s 8666(the)s 960 10376(serv)m 3(er)k 9(,)k
4037 1638(which)s 2280(calls)s 2768(all)s 3061(the)s 3409(other)s
4038 3960(con\207guration)s 5293(\207les\).)s gsave
4039 600 10190 translate
4040 0.6953 1.0000 scale
4041 240 fnt31 0 -52(override)m 
4042 grestore
4043 960 9896(Displays)m
4044 1847(the)s 2194(top-le)s 6(v)k 3(el)k 3088(o)s 3(v)k 3(erride)k
4045 3932(con\207guration)s 5264(\(the)s 5690(con\207guration)s 7021(data,)s 7525(e)s 6(v)k 6(aluated)k
4046 8486(by)s 8778(the)s 960 9656(serv)m 3(er)k 9(,)k
4047 1638(which)s 2280(causes)s 2955(all)s 3248(the)s 3596(other)s
4048 4147(con\207guration)s 5480(data)s 5938(to)s 6177(be)s 6459(parsed\).)s
4049 gsave
4050 600 9470 translate
4051 0.6953 1.0000 scale
4052 240 fnt31 0 -52(help)m 
4053 grestore
4054 960 9176(Displays)m 1848(a)s 2014(list)s
4055 2365(of)s 2636(the)s 2984(understood)s 4106(b)s 4(uiltin)k
4056 4783(service)s 5515(names)s 6177(and)s 6581(ar)s 4(guments.)k
4057 480 8913(In)m 736(the)s 1084(fu)s 1278(ture)s 1705(oth)s
4058 2008(er)s 2253(b)s 4(uiltin)k 2930(ser)s 3208(vices)s
4059 3750(may)s 4216(be)s 4498(de)s 4720(\207ned)s 5257(which)s
4060 5899(do)s 6192(more)s 6739(than)s 7208(just)s 7613(print)s
4061 8124(in)s 8307(for)s 8585(-)s 480 8673(ma)m 772(tion.)s
4062 gsave
4063 120 8383 translate
4064 0.6953 1.0000 scale
4065 240 fnt31 0 -52(set\211environment)m 
4066 grestore
4067 gsave
4068 120 8143 translate
4069 0.6953 1.0000 scale
4070 240 fnt31 0 -52(no\211set\211environment)m 
4071 grestore
4072 480 7849(Runs)m
4073 gsave
4074 1024 7903 translate
4075 0.6953 1.0000 scale
4076 240 fnt31 0 -52(/etc/environment)m 
4077 grestore
4078 2686(to)s 2925(set)s 3250(the)s
4079 3598(service)s 4330(user')s 13(s)k 4938(en)s 9(vironment.)k
4080 6242(This)s 6718(adds)s 7208(the)s 7556(o)s 3(v)k 3(erhead)k
4081 8485(of)s 480 7609(in)m 9(v)k 4(oking)k 1372(a)s
4082 1538(shell,)s 2096(b)s 4(ut)k 2458(doesn')s 4(t)k
4083 3218(cause)s 3805(an)s 3(y)k 4202(shell)s 4708(\(de\)mangling)s
4084 6049(of)s 6320(the)s 6668(service')s 13(s)k 7554(ar)s 4(guments.)k
4085 8650(This)s 480 7369(is)m 690(achie)s 6(v)k 3(ed)k
4086 1589(by)s 1883(in)s 9(v)k 4(oking)k gsave
4087 960 7183 translate
4088 0.6953 1.0000 scale
4089 240 fnt31
4090 0 -52(.../program)m 1728(arg)s 2304(arg)s 2880(arg)s 3456(\202)s
4091
4092 grestore
4093 480 6938(as)m gsave
4094 960 6752 translate
4095 0.6953 1.0000 scale
4096 240 fnt31 0 -52(/bin/sh)m 1152(\211c)s 1584('.)s
4097 2016(/etc/environment;)s 4608(exec)s 5328("$@"')s 6192(\211)s 6480(.../program)s
4098 8208(arg)s 8784(arg)s 9360(arg)s 9936(\202)s 
4099 grestore
4100 gsave
4101 480 6508 translate
4102 0.6953 1.0000 scale
4103 240 fnt31
4104 0 -52(no\211set\211environment)m 
4105 grestore
4106 2342 6454(cancels)m 3096(the)s 3444(ef)s 6(fect)k
4107 4040(of)s gsave
4108 4311 6508 translate
4109 0.6953 1.0000 scale
4110 240 fnt31 0 -52(set\211environment)m 
4111 grestore
4112 5812(.)s gsave
4113 120 6164 translate
4114 0.6953 1.0000 scale
4115 240 fnt31
4116 0 -52(no\211suppress\211args)m 
4117 grestore
4118 gsave
4119 120 5924 translate
4120 0.6953 1.0000 scale
4121 240 fnt31 0 -52(suppress\211args)m 
4122 grestore
4123 480 5630(Include)m 1253(an)s 3(y)k
4124 1650(ar)s 4(guments)k 2693(gi)s 6(v)k 3(en)k
4125 3273(to)s 3512(the)s 3860(client)s 4450(as)s 4700(ar)s 4(guments)k
4126 5743(to)s 5982(the)s 6330(program)s 7200(in)s 9(v)k 4(ok)k 2(ed)k
4127 8015(as)s 8265(a)s 8431(result)s 480 5390(of)m 749(an)s
4128 gsave
4129 1030 5444 translate
4130 0.6953 1.0000 scale
4131 240 fnt31 0 -52(execute)m 
4132 grestore
4133 1730(,)s gsave
4134 1834 5444 translate
4135 0.6953 1.0000 scale
4136 240 fnt31 0 -52(execute\211from\211directory)m
4137
4138 grestore
4139 4094(or)s gsave
4140 4351 5444 translate
4141 0.6953 1.0000 scale
4142 240 fnt31 0 -52(execute\211from\211path)m 
4143 grestore
4144 6110(directi)s 6(v)k 3(e.)k
4145 gsave
4146 7038 5444 translate
4147 0.6953 1.0000 scale
4148 240 fnt31 0 -52(suppress\211args)m 
4149 grestore
4150 8396(undoes)s 480 5150(the)m 828(ef)s 6(fect)k
4151 1424(of)s gsave
4152 1695 5204 translate
4153 0.6953 1.0000 scale
4154 240 fnt31 0 -52(no\211suppress\211args)m 
4155 grestore
4156 3297(.)s gsave
4157 120 4829 translate
4158 0.6953 1.0000 scale
4159 240 fnt31
4160 0 -52(require\211fd)m gsave
4161 1584 0 translate
4162 1.4219 1.0000 scale
4163 240 fnt83 0 -52(fd-r)m 3(ang)k 2(e)k
4164
4165 grestore
4166 2882(read|write)s 
4167 grestore
4168 480 4530(In)m 676(sist)s 1054(that)s 1472(the)s
4169 1820(\207ledescrip)s 2808(tor\(s\))s 3373(be)s 3655(opened)s 4405(for)s
4170 4743(read)s 5152(ing)s 5511(resp.)s 6013(writ)s 6397(ing.)s
4171 6807(It)s 7012(is)s 7222(an)s 7505(er)s 7690(ror)s
4172 8028(if)s 8245(an)s 3(y)k 8642(de)s 8864(-)s
4173 480 4290(scrip)m 937(tor)s 1258(mark)s 2(ed)k 2027(as)s
4174 2272(re)s 2453(quired)s 3118(when)s 3689(the)s 4033(ser)s
4175 4311(vice)s 4760(is)s 4966(about)s 5554(to)s 5788(be)s
4176 6066(in)s 6249(v)s 4(ok)k 2(ed)k 6882(\(af)s
4177 7158(ter)s 7465(the)s 7808(con)s 8151(\207g)s 8397(u)s
4178 8512(ra)s 8697(tion)s 480 4050(has)m 850(been)s 1359(parsed\))s
4179 2111(w)s 2(as)k 2532(not)s 2898(spec)s 3316(i)s
4180 3376(\207ed)s 3793(when)s 4369(the)s 4717(client)s 5307(w)s 2(as)k
4181 5728(in)s 5911(v)s 4(ok)k 2(ed.)k 6595(Each)s
4182 7130(\207le)s 7491(de)s 7713(scrip)s 8170(tor)s 8495(has)s
4183 480 3810(a)m 646(sep)s 958(a)s 1064(rate)s 1477(set)s
4184 1742(ting,)s 2221(and)s 2625(the)s 2973(last)s 3364(one)s
4185 3766(of)s gsave
4186 4037 3864 translate
4187 0.6953 1.0000 scale
4188 240 fnt31 0 -52(require\211fd)m 
4189 grestore
4190 5038(,)s gsave
4191 5145 3864 translate
4192 0.6953 1.0000 scale
4193 240 fnt31
4194 0 -52(allow\211fd)m 
4195 grestore
4196 5946(,)s gsave
4197 6053 3864 translate
4198 0.6953 1.0000 scale
4199 240 fnt31 0 -52(ignore\211fd)m 
4200 grestore
4201 6954(,)s
4202 gsave
4203 7061 3864 translate
4204 0.6953 1.0000 scale
4205 240 fnt31 0 -52(null\211fd)m 
4206 grestore
4207 7821(or)s gsave
4208 8080 3864 translate
4209 0.6953 1.0000 scale
4210 240 fnt31 0 -52(reject\211fd)m
4211
4212 grestore
4213 480 3570(which)m 1122(af)s 1319(fect)s 1676(ed)s 1960(a)s
4214 2126(par)s 2431(tic)s 2662(u)s 2777(lar)s 3088(\207le)s
4215 3449(de)s 3671(scrip)s 4128(tor)s 4453(will)s 4879(tak)s 2(e)k
4216 5331(ef)s 5528(fect.)s 240 fnt83 480 3164(fd-r)m 3(ang)k 2(e)k
4217 240 fnt82 1352 3162(may)m 1818(be)s 2100(a)s 2266(single)s
4218 2893(number)s 9(,)k 3722(tw)s 2(o)k 4132(numbers)s
4219 5007(separated)s 5967(by)s 6261(a)s 6427(h)s 1(yphen,)k
4220 7239(or)s 7498(one)s 7900(number)s 480 2922(follo)m 6(wed)k
4221 1382(by)s 1676(a)s 1842(h)s 1(yphen)k 2604(\(indicating)s
4222 3692(all)s 3985(descriptors)s 5084(from)s 5608(that)s 6026(number)s
4223 6817(onw)s 2(ards\).)k 7809(It)s 8014(may)s 8480(also)s
4224 480 2682(be)m 760(one)s 1159(of)s 1428(the)s 1773(w)s 2(ords)k
4225 gsave
4226 2405 2736 translate
4227 0.6953 1.0000 scale
4228 240 fnt31 0 -52(stdin)m 
4229 grestore
4230 2905(,)s gsave
4231 3009 2736 translate
4232 0.6953 1.0000 scale
4233 240 fnt31 0 -52(stdout)m
4234
4235 grestore
4236 3667(or)s gsave
4237 3923 2736 translate
4238 0.6953 1.0000 scale
4239 240 fnt31 0 -52(stderr)m 
4240 grestore
4241 4523(.)s 4625(Open-ended)s
4242 5850(\207le)s 6209(descriptor)s 7221(rangers)s 7973(are)s 8317(allo)s 6(wed)k
4243 480 2442(only)m 960(with)s gsave
4244 1442 2496 translate
4245 0.6953 1.0000 scale
4246 240 fnt31 0 -52(reject\211fd)m 
4247 grestore
4248 2403(and)s
4249 gsave
4250 2807 2496 translate
4251 0.6953 1.0000 scale
4252 240 fnt31 0 -52(ignore\211fd)m 
4253 grestore
4254 3708(,)s 3815(as)s 4065(otherwise)s
4255 5050(the)s 5398(service)s 6130(program)s 7000(w)s 2(ould)k
4256 7655(\207nd)s 8086(itself)s 8634(with)s 480 2202(a)m 646(v)s 3(ery)k
4257 1122(lar)s 4(ge)k 1651(number)s 2442(of)s 2713(\207le)s
4258 3074(descriptors)s 4173(open.)s 480 1794(When)m 1109(the)s 1457(con\207guration)s
4259 2790(has)s 3160(been)s 3669(parsed,)s 4400(and)s 4804(before)s
4260 5470(the)s 5818(service)s 6550(is)s 6760(about)s 7352(to)s
4261 7591(be)s 7873(e)s 3(x)k 3(ecuted,)k 480 1554(stderr)m
4262 1082(\(fd)s 1417(2\))s 1663(must)s 2187(be)s 2468(required)s
4263 3320(or)s 3578(allo)s 6(wed)k 4385(\()s gsave
4264 4458 1608 translate
4265 0.6953 1.0000 scale
4266 240 fnt31
4267 0 -52(require\211fd)m 
4268 grestore
4269 5518(or)s gsave
4270 5776 1608 translate
4271 0.6953 1.0000 scale
4272 240 fnt31 0 -52(allow\211fd)m 
4273 grestore
4274 6577(\))s
4275 6703(for)s 7040(writing;)s 7841(this)s 8235(is)s 8444(so)s
4276 8708(that)s 480 1314(the)m 823(error)s 1341(message)s 2202(printed)s
4277 2931(by)s 3220(the)s 3563(serv)s 3(er')k 13(s)k
4278 4348(child)s 4878(process)s 5641(if)s 5853(it)s 6040(cannot)s
4279 gsave
4280 6732 1368 translate
4281 0.6953 1.0000 scale
4282 240 fnt31 0 -52(exec)m 
4283 grestore
4284 7187(the)s 7530(service)s 8256(program)s
4285 480 1074(is)m 690(not)s 1056(lost.)s gsave
4286 120 784 translate
4287 0.6953 1.0000 scale
4288 240 fnt31 0 -52(allow\211fd)m
4289 gsave
4290 1296 0 translate
4291 1.4219 1.0000 scale
4292 240 fnt83 0 -52(fd-r)m 3(ang)k 2(e)k 
4293 grestore
4294 2594([read|write])s
4295
4296 grestore
4297 0 52(User)m 511(service)s 1243(daemon)s 2058(and)s 2462(client)s
4298 3052(speci\207cation)s 8652(0.62)s 
4299 grestore
4300
4301 grestore
4302
4303 pgsave restore
4304 showpage
4305
4306 %%Page: 16 16
4307 %%BeginPageSetup
4308 %%PageResources: font Times-Roman
4309 %%+ font Times-Bold
4310 %%+ font Courier-Bold
4311 %%+ font Times-Italic
4312 /pgsave save def
4313 0.0500 dup scale 10 setlinewidth
4314 %%EndPageSetup
4315 gsave
4316 0 0 translate
4317 240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic
4318 gsave
4319 LoutPageSet
4320 grestore
4321 gsave
4322 0 16840 translate
4323 0.0000 rotate
4324
4325 grestore
4326
4327 grestore
4328 gsave
4329 0 16840 translate
4330 0.0000 rotate
4331 gsave
4332 1417 -15423 translate
4333 240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic
4334 gsave
4335 0 LoutMargSet
4336 grestore
4337 240 fnt84 0 13842(16)m 240 fnt82 480 13251(Allo)m 6(w)k
4338 1126(the)s 1474(descriptor\(s\))s 2729(to)s 2968(be)s 3250(opened)s
4339 4000(for)s 4338(reading)s 5108(resp.)s 5610(writing,)s 6407(or)s
4340 6666(either)s 7269(if)s 7486(neither)s gsave
4341 8209 13305 translate
4342 0.6953 1.0000 scale
4343 240 fnt31 0 -52(read)m
4344
4345 grestore
4346 8669(nor)s gsave
4347 480 13065 translate
4348 0.6953 1.0000 scale
4349 240 fnt31 0 -52(write)m 
4350 grestore
4351 1040 13011(is)m 1250(speci\207ed.)s
4352 2204(If)s 2434(a)s 2600(particular)s 3574(descriptor)s 4589(not)s
4353 4955(speci\207ed)s 5863(by)s 6157(the)s 6505(client)s 7095(then)s
4354 7564(it)s 7756(will)s 8182(be)s 8464(open)s 480 12771(onto)m
4355 gsave
4356 959 12825 translate
4357 0.6953 1.0000 scale
4358 240 fnt31 0 -52(/dev/null)m 
4359 grestore
4360 1920(\(for)s 2337(reading,)s 3161(writing,)s
4361 3958(or)s 4217(both,)s 4750(depending)s 5801(on)s 6098(whether)s
4362 gsave
4363 6928 12825 translate
4364 0.6953 1.0000 scale
4365 240 fnt31 0 -52(read)m 
4366 grestore
4367 7328(,)s gsave
4368 7435 12825 translate
4369 0.6953 1.0000 scale
4370 240 fnt31 0 -52(write)m
4371
4372 grestore
4373 7995(or)s 8254(neither)s 480 12531(w)m 2(as)k 901(speci\207ed\).)s
4374 gsave
4375 120 12191 translate
4376 0.6953 1.0000 scale
4377 240 fnt31 0 -52(null\211fd)m gsave
4378 1152 0 translate
4379 1.4219 1.0000 scale
4380 240 fnt83 0 -52(fd-r)m 3(ang)k 2(e)k
4381
4382 grestore
4383 2450([read|write])s 
4384 grestore
4385 480 11892(Spec)m 938(i)s 998(fy)s 1251(that)s
4386 1669(the)s 2017(de)s 2239(scrip)s 2696(tor\(s\))s 3261(be)s
4387 3543(opened)s 4293(onto)s gsave
4388 4772 11946 translate
4389 0.6953 1.0000 scale
4390 240 fnt31 0 -52(/dev/null)m 
4391 grestore
4392 5733(for)s
4393 6071(read)s 6480(ing)s 6839(resp.)s 7341(writ)s 7725(ing,)s
4394 8138(or)s 8397(both)s 8880(if)s 480 11652(nei)m 766(ther)s
4395 gsave
4396 1181 11706 translate
4397 0.6953 1.0000 scale
4398 240 fnt31 0 -52(read)m 
4399 grestore
4400 1624(nor)s gsave
4401 1986 11706 translate
4402 0.6953 1.0000 scale
4403 240 fnt31 0 -52(write)m
4404
4405 grestore
4406 2529(is)s 2722(spec)s 3140(i)s 3200(\207ed.)s 3646(An)s 3(y)k
4407 4093(spec)s 4511(i)s 4571(\207)s 4696(ca)s 4908(tion)s
4408 5320(of)s 5574(these)s 6104(\207le)s 6448(de)s 6670(scrip)s
4409 7127(tors)s 7519(by)s 7796(the)s 8127(client)s 8700(will)s
4410 480 11412(be)m 762(silent)s 1279(ly)s 1519(ig)s 1698(nored;)s
4411 2355(the)s 2703(client)s 3293(will)s 3719(see)s 4080(its)s
4412 4356(ends)s 4846(of)s 5117(the)s 5465(de)s 5687(scrip)s
4413 6144(tors)s 6553(be)s 6775(ing)s 7134(closed)s 7803(im)s
4414 8055(me)s 8343(di)s 8523(ate)s 8797(ly)s 15(.)k
4415 gsave
4416 120 11072 translate
4417 0.6953 1.0000 scale
4418 240 fnt31 0 -52(reject\211fd)m gsave
4419 1440 0 translate
4420 1.4219 1.0000 scale
4421 240 fnt83 0 -52(fd-r)m 3(ang)k 2(e)k
4422
4423 grestore
4424
4425 grestore
4426 480 10778(Do)m 824(not)s 1187(allo)s 6(w)k 1764(the)s
4427 2109(descriptor\(s\))s 3362(to)s 3598(be)s 3878(speci\207ed)s 4783(by)s
4428 5075(the)s 5420(client.)s 6052(It)s 6254(is)s 6462(an)s
4429 6742(error)s 7263(if)s 7477(an)s 3(y)k 7871(descriptor\(s\))s
4430 480 10538(mark)m 2(ed)k 1253(for)s 1591(rejection)s 2483(are)s
4431 2830(speci\207ed)s 3738(when)s 4314(the)s 4662(service)s 5394(is)s
4432 5604(about)s 6196(to)s 6435(be)s 6717(in)s 9(v)k 4(ok)k 2(ed)k
4433 7532(\(after)s 8107(the)s 480 10298(con\207guration)m 1813(has)s 2183(been)s
4434 2692(parsed\).)s gsave
4435 120 9958 translate
4436 0.6953 1.0000 scale
4437 240 fnt31 0 -52(ignore\211fd)m gsave
4438 1440 0 translate
4439 1.4219 1.0000 scale
4440 240 fnt83 0 -52(fd-r)m 3(ang)k 2(e)k
4441
4442 grestore
4443
4444 grestore
4445 480 9664(Silent)m 1037(ly)s 1260(ig)s 1439(nore)s 1902(an)s 3(y)k
4446 2281(spec)s 2699(i)s 2759(\207)s 2884(ca)s 3096(tion)s
4447 3507(by)s 3783(the)s 4113(client)s 4685(of)s 4938(those)s
4448 5481(de)s 5703(scrip)s 6160(tor\(s\).)s 6762(The)s 7172(pipes)s
4449 7710(cor)s 8015(re)s 8196(spond)s 8767(ing)s 480 9424(to)m
4450 719(these)s 1266(de)s 1488(scrip)s 1945(tors)s 2354(will)s
4451 2780(be)s 3062(closed)s 3731(just)s 4136(be)s 4358(fore)s
4452 4798(the)s 5146(ser)s 5424(vice)s 5878(is)s 6088(in)s
4453 6271(v)s 4(ok)k 2(ed.)k gsave
4454 120 9084 translate
4455 0.6953 1.0000 scale
4456 240 fnt31 0 -52(disconnect\211hup)m
4457
4458 grestore
4459 gsave
4460 120 8844 translate
4461 0.6953 1.0000 scale
4462 240 fnt31 0 -52(no\211disconnect\211hup)m 
4463 grestore
4464 480 8550(Causes)m 1209(the)s 1557(service')s 13(s)k
4465 2443(process)s 3211(group)s 3823(to)s 4062(get)s 4414(a)s
4466 gsave
4467 4580 8604 translate
4468 0.6953 1.0000 scale
4469 240 fnt31 0 -52(SIGHUP)m 
4470 grestore
4471 5240(if)s 5457(the)s 5805(client)s
4472 6395(disconnects)s 7562(before)s 8228(the)s 8576(main)s 480 8310(service)m
4473 1212(process)s 1980(terminates.)s gsave
4474 3078 8364 translate
4475 0.6953 1.0000 scale
4476 240 fnt31 0 -52(no\211disconnect\211hup)m 
4477 grestore
4478 4840(cancels)s
4479 gsave
4480 5594 8364 translate
4481 0.6953 1.0000 scale
4482 240 fnt31 0 -52(disconnect\211hup)m 
4483 grestore
4484 6995(.)s 480 7902(If)m 700(one)s
4485 1091(of)s 1352(the)s 1689(reading)s 2449(descriptors)s 3537(speci\207ed)s
4486 4435(when)s 5000(the)s 5337(client)s 5917(is)s 6116(called)s
4487 6734(gets)s 7159(a)s 7315(read)s 7773(error)s 9(,)k
4488 8324(or)s 8572(if)s 8778(the)s 480 7661(service)m 1212(is)s
4489 1422(disconnected)s 2729(for)s 3067(some)s 3628(other)s 4179(reason,)s
4490 4910(then)s 5379(the)s gsave
4491 5727 7715 translate
4492 0.6953 1.0000 scale
4493 240 fnt31 0 -52(SIGHUP)m 
4494 grestore
4495 6387(will)s
4496 6813(be)s 7095(deli)s 6(v)k 3(ered)k 240 fnt83
4497 8033 7663(befor)m 8(e)k 240 fnt82 8689 7661(the)m 480 7421(writing)m
4498 1223(end\(s\))s 1869(of)s 2140(the)s 2488(service')s 13(s)k
4499 3374(reading)s 4144(pipe\(s\))s 4856(are)s 5203(closed,)s 5921(so)s
4500 6187(that)s 6605(the)s 6953(client)s 7543(can)s 7932(distinguish)s
4501 480 7181(disconnection)m 1866(from)s 2390(reading)s 3160(EOF)s 3670(on)s
4502 3967(a)s 4133(pipe.)s gsave
4503 120 6841 translate
4504 0.6953 1.0000 scale
4505 240 fnt31 0 -52(reset)m 
4506 grestore
4507 480 6547(Resets)m
4508 1155(the)s 1503(e)s 3(x)k 3(ecution)k 2484(settings)s
4509 3265(to)s 3504(the)s 3852(def)s 2(ault.)k 4617(This)s
4510 5093(is)s 5303(equi)s 6(v)k 6(alent)k 6347(to:)s
4511 gsave
4512 960 6361 translate
4513 0.6953 1.0000 scale
4514 240 fnt31 0 -52(cd)m 432(~/)s 0 -292(reject)m 0 -532(no\211set\211environment)m
4515 0 -772(suppress\211args)m 0 -1012(allow\211fd)m 1296(0)s 1584(read)s 0 -1252(allow\211fd)m
4516 1296(1\2112)s 1872(write)s 0 -1492(reject\211fd)m 1440(3\211)s 0 -1732(disconnect\211hup)m
4517
4518 grestore
4519 0 4085(If)m 230(no)s gsave
4520 523 4139 translate
4521 0.6953 1.0000 scale
4522 240 fnt31 0 -52(execute)m 
4523 grestore
4524 1223(,)s
4525 gsave
4526 1330 4139 translate
4527 0.6953 1.0000 scale
4528 240 fnt31 0 -52(execute\211from\211path)m 
4529 grestore
4530 3032(,)s gsave
4531 3139 4139 translate
4532 0.6953 1.0000 scale
4533 240 fnt31 0 -52(execute\211from\211directory)m
4534
4535 grestore
4536 5401(or)s gsave
4537 5660 4139 translate
4538 0.6953 1.0000 scale
4539 240 fnt31 0 -52(builtin)m 
4540 grestore
4541 6420(is)s 6630(interpreted)s
4542 7722(before)s 8388(all)s 8681(the)s 0 3845(\207les)m 449(are)s
4543 796(read)s 1265(then)s 1734(the)s 2082(request)s 2832(is)s
4544 3042(rejected.)s 9066 670 0 670 240 240 60 0 2821 LoutGr2
4545 newpath 0 ysize 0.3 ft sub moveto
4546 xsize 0 rlineto
4547 0 0.1 ft rlineto
4548 xsize neg 0 rlineto
4549 closepath fill
4550 grestore
4551 320 fnt84 0 66(4.3.)m 628(Err)s 5(ors)k
4552 1618(in)s 1958(the)s 2458(con\207guration)s 4359(\207le)s 
4553 grestore
4554 0 2359(If)m
4555 230(a)s 396(syntax)s 1076(error)s 1599(or)s 1858(other)s
4556 2409(problem)s 3266(occurs)s 3941(when)s 4517(processing)s 5593(a)s
4557 5759(con\207guration)s 7092(\207le)s 7453(then)s 7922(a)s 8088(diagnostic)s
4558 0 2119(will)m 422(be)s 699(issued,)s 1399(to)s 1633(where)s 6(v)k 3(er)k
4559 2568(the)s 2911(error)s 3429(messages)s 4378(are)s 4721(currently)s
4560 5632(being)s 6212(sent)s 6652(\(see)s 7087(the)s gsave
4561 7430 2173 translate
4562 0.6953 1.0000 scale
4563 240 fnt31
4564 0 -52(errors\211)m 
4565 grestore
4566 8185(f)s 2(amily)k 8855(of)s 0 1879(directi)m 6(v)k 3(es,)k
4567 1026(abo)s 3(v)k 3(e\).)k 0 1471(The)m 428(error)s
4568 951(will)s 1377(cause)s 1964(processing)s 3040(of)s 3311(the)s
4569 3659(con\207guration)s 4992(\207les)s 5441(to)s 5680(cease)s 6253(at)s
4570 6485(that)s 6903(point,)s 7502(unless)s 8151(the)s 8499(error)s
4571 0 1231(w)m 2(as)k 421(inside)s 1048(a)s gsave
4572 1214 1285 translate
4573 0.6953 1.0000 scale
4574 240 fnt31
4575 0 -52(catch\211quit)m 
4576 grestore
4577 2275(construct.)s 3255(In)s 3511(this)s 3907(case)s
4578 4374(the)s 4722(settings)s 5503(controlling)s 6605(the)s 6953(program')s 13(s)k
4579 7973(e)s 3(x)k 3(ecution)k 0 991(will)m 426(be)s
4580 708(reset)s 1218(to)s 1457(the)s 1805(def)s 2(aults)k
4581 2610(as)s 2860(if)s 3077(a)s gsave
4582 3243 1045 translate
4583 0.6953 1.0000 scale
4584 240 fnt31 0 -52(reset)m
4585
4586 grestore
4587 3803(directi)s 6(v)k 3(e)k 4685(had)s 5089(been)s
4588 5598(issued,)s 6303(and)s 6707(parsing)s 7464(continues)s 8432(after)s
4589 gsave
4590 0 805 translate
4591 0.6953 1.0000 scale
4592 240 fnt31 0 -52(hctac)m 
4593 grestore
4594 500 751(.)m 0 52(0.62)m 4809(User)s
4595 5320(service)s 6052(daemon)s 6867(and)s 7271(client)s 7861(speci\207cation)s
4596
4597 grestore
4598
4599 grestore
4600
4601 pgsave restore
4602 showpage
4603
4604 %%Page: 17 17
4605 %%BeginPageSetup
4606 %%PageResources: font Times-Roman
4607 %%+ font Times-Bold
4608 %%+ font Courier-Bold
4609 %%+ font Times-Italic
4610 /pgsave save def
4611 0.0500 dup scale 10 setlinewidth
4612 %%EndPageSetup
4613 gsave
4614 0 0 translate
4615 240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic
4616 gsave
4617 LoutPageSet
4618 grestore
4619 gsave
4620 0 16840 translate
4621 0.0000 rotate
4622
4623 grestore
4624
4625 grestore
4626 gsave
4627 0 16840 translate
4628 0.0000 rotate
4629 gsave
4630 1417 -15423 translate
4631 240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic
4632 gsave
4633 1 LoutMargSet
4634 grestore
4635 240 fnt84 8831 13842(17)m gsave
4636 0 12808 translate
4637 240 fnt82 9066 609 0 609 240 240 60 LoutGraphic
4638 gsave
4639 newpath 0 ysize 0.3 ft sub moveto
4640 xsize 0 rlineto
4641 0 0.1 ft rlineto
4642 xsize neg 0 rlineto
4643 closepath fill
4644 grestore
4645 320 fnt84 0 5(4.4.)m 628(Defaults)s
4646
4647 grestore
4648 240 fnt82 0 12346(The)m 428(def)s 2(ault)k 1149(con\207guration)s
4649 2482(processing)s 3558(is)s 3768(as)s 4018(if)s 4235(the)s
4650 4583(daemon)s 5398(were)s 5918(parsing)s 6675(an)s 6958(o)s 3(v)k 3(erall)k
4651 7670(con\207guration)s 0 12106(\207le)m 361(whose)s 1029(contents)s 1877(were)s
4652 2397(as)s 2647(follo)s 6(ws:)k gsave
4653 480 11920 translate
4654 0.6953 1.0000 scale
4655 240 fnt31 0 -52(reset)m
4656 0 -292(user\211rcfile)m 1728(~/.userv/rc)s 0 -532(errors\211to\211stderr)m 0 -772(include)m 1152(/etc/userv/system.default)s
4657 0 -1012(if)m 432(grep)s 1152(service\211user\211shell)s 3888(/etc/shells)s 432 -1252(errors\211push)m
4658 720 -1492(catch\211quit)m 1008 -1732(include\211ifexist)m gsave
4659 3312 -1680 translate
4660 1.4219 1.0000 scale
4661 240 fnt83 0 -52(\207le)m 345(speci\207ed)s
4662 1248(by)s 1530(most)s 2046(r)s 8(ecent)k 2699(user\211r)s 8(c\207le)k
4663 3767(dir)s 8(ective)k 
4664 grestore
4665 720 -1972(hctac)m 432 -2212(srorre)m 0 -2452(fi)m
4666 0 -2692(include)m 1152(/etc/userv/system.override)s 0 -2932(quit)m 
4667 grestore
4668 0 8444(If)m 226(one)s
4669 624(of)s 891(the)s gsave
4670 1235 8498 translate
4671 0.6953 1.0000 scale
4672 240 fnt31 0 -52(\211\211override)m 
4673 grestore
4674 2292(options)s
4675 3044(to)s 3279(the)s 3623(client)s 4209(is)s 4415(used)s
4676 4908(then)s 5373(it)s 5561(will)s 5983(instead)s 6714(be)s
4677 6992(as)s 7238(if)s 7451(the)s 7795(daemon)s 8606(were)s
4678 0 8204(parsing)m 757(an)s 1040(o)s 3(v)k 3(erall)k
4679 1752(con\207guration)s 3085(as)s 3335(follo)s 6(ws:)k gsave
4680 480 8018 translate
4681 0.6953 1.0000 scale
4682 240 fnt31
4683 0 -52(reset)m 0 -292(errors\211to\211stderr)m 0 -532(include)m gsave
4684 1152 -480 translate
4685 1.4219 1.0000 scale
4686 240 fnt83 0 -52(\207le)m
4687 345(containing)s 1423(con\207gur)s 3(ation)k 2765(data)s 3246(sent)s
4688 3695(by)s 3977(client)s 
4689 grestore
4690 0 -772(quit)m 
4691 grestore
4692 0 52(User)m 511(service)s
4693 1243(daemon)s 2058(and)s 2462(client)s 3052(speci\207cation)s 8652(0.62)s
4694
4695 grestore
4696
4697 grestore
4698
4699 pgsave restore
4700 showpage
4701
4702 %%Page: 18 18
4703 %%BeginPageSetup
4704 %%PageResources: font Times-Roman
4705 %%+ font Times-Bold
4706 %%+ font Courier-Bold
4707 /pgsave save def
4708 0.0500 dup scale 10 setlinewidth
4709 %%EndPageSetup
4710 gsave
4711 0 0 translate
4712 240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic
4713 gsave
4714 LoutPageSet
4715 grestore
4716 gsave
4717 0 16840 translate
4718 0.0000 rotate
4719
4720 grestore
4721
4722 grestore
4723 gsave
4724 0 16840 translate
4725 0.0000 rotate
4726 gsave
4727 1417 -15423 translate
4728 240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic
4729 gsave
4730 0 LoutMargSet
4731 grestore
4732 240 fnt84 0 13842(18)m gsave
4733 0 12726 translate
4734 240 fnt82 9066 688 0 688 240 240 60 LoutGraphic
4735 gsave
4736 newpath 0 ysize 0.3 ft sub moveto
4737 xsize 0 rlineto
4738 0 0.2 ft rlineto
4739 xsize neg 0 rlineto
4740 closepath fill
4741 grestore
4742 340 fnt84 0 70(5.)m 412(Inf)s 8(ormation)k
4743 2257(passed)s 3297(thr)s 6(ough)k 4539(the)s 5070(client/daemon)s
4744 7185(combination)s 
4745 grestore
4746 240 fnt82 0 12264(The)m 428(information)s 1613(described)s
4747 2587(belo)s 6(w)k 3220(is)s 3430(the)s 3778(only)s
4748 4258(information)s 5443(which)s 6085(passes)s 6747(between)s 7601(the)s
4749 7949(caller)s 8538(and)s 0 12024(the)m 348(service.)s 0 11616(\213)m
4750 480(The)s 908(service)s 1640(name)s 2214(supplied)s 3083(by)s
4751 3377(the)s 3725(caller)s 4314(is)s 4524(a)s 4(v)k 6(ailable)k
4752 5432(in)s 5675(the)s 6023(con\207guration)s 7356(language)s 8276(for)s
4753 480 11376(deciding)m 1343(whether)s 2158(and)s 2547(which)s 3175(service)s
4754 3892(program)s 4747(to)s 4971(in)s 9(v)k 4(ok)k 2(e,)k
4755 5701(in)s 5929(the)s gsave
4756 6262 11430 translate
4757 0.6953 1.0000 scale
4758 240 fnt31 0 -52(service)m 
4759 grestore
4760 7008(parameter)s 9(,)k
4761 8045(and)s 8434(is)s 8629(used)s 480 11136(by)m 774(the)s
4762 gsave
4763 1122 11190 translate
4764 0.6953 1.0000 scale
4765 240 fnt31 0 -52(execute\211from\211directory)m 
4766 grestore
4767 3384(and)s gsave
4768 3788 11190 translate
4769 0.6953 1.0000 scale
4770 240 fnt31 0 -52(execute\211from\211path)m
4771
4772 grestore
4773 5550(con\207guration)s 6883(directi)s 6(v)k 3(es.)k 7906(It)s
4774 8111(is)s 8321(usually)s 480 10896(used)m 977(to)s 1216(select)s
4775 1819(which)s 2461(service)s 3193(program)s 4063(to)s 4302(in)s 9(v)k 4(ok)k 2(e.)k
4776 5043(It)s 5248(is)s 5458(also)s 5896(passed)s 6592(to)s
4777 6831(the)s 7179(service)s 7911(program)s 8781(in)s 480 10656(the)m
4778 gsave
4779 828 10710 translate
4780 0.6953 1.0000 scale
4781 240 fnt31 0 -52(USERV_SERVICE)m 
4782 grestore
4783 2189(en)s 9(vironment)k 3449(v)s 6(ariable.)k
4784 0 10225(\213)m 480(File)s 902(descriptors)s 1995(speci\207ed)s 2897(by)s
4785 3185(the)s 3528(client)s 4112(and)s 4510(allo)s 6(wed)k
4786 5313(according)s 6304(to)s 6537(the)s 6879(con\207guration)s 8206(language)s
4787 480 9985(will)m 906(be)s 1188(connected.)s 2262(Each)s 2797(\207le)s
4788 3158(descriptor)s 4173(is)s 4383(opened)s 5133(for)s 5471(reading)s
4789 6241(or)s 6500(writing.)s 7294(Communication)s 8893(is)s 480 9745(via)m
4790 832(pipes,)s 1444(one)s 1846(end)s 2250(of)s 2521(each)s
4791 3016(pipe)s 3484(being)s 4069(open)s 4592(on)s 4889(the)s
4792 5237(appropriate)s 6381(\207le)s 6742(descriptor)s 7757(in)s 8000(the)s
4793 8348(service)s 480 9505(program)m 1350(\(when)s 2005(it)s 2197(is)s
4794 2407(in)s 9(v)k 4(ok)k 2(ed\))k 3292(and)s
4795 3696(the)s 4044(other)s 4595(end)s 4999(being)s 5584(held)s
4796 6054(by)s 6348(the)s 6696(client)s 7286(process,)s 8110(which)s
4797 480 9265(will)m 906(read)s 1375(and)s 1779(write)s 2325(\207les)s
4798 2774(it)s 2966(opens)s 3576(on)s 3873(behalf)s 4542(of)s
4799 4813(its)s 5089(caller)s 5678(or)s 5937(\207le)s 6298(descriptors)s
4800 7397(it)s 7589(is)s 7799(passed)s 8495(by)s 480 9025(its)m
4801 756(caller)s 13(.)k 480 8617(Data)m 991(may)s 1457(be)s
4802 1739(passed)s 2435(into)s 2860(the)s 3208(service)s 3940(through)s
4803 4742(reading)s 5512(pipes)s 6068(and)s 6472(out)s 6838(of)s
4804 7109(it)s 7301(through)s 8103(writing)s 480 8377(pipes.)m 1083(These)s
4805 1703(pipes)s 2252(can)s 2634(remain)s 3347(open)s 3864(only)s
4806 4337(until)s 4823(the)s 5164(service)s 5889(and)s 6287(client)s
4807 6870(ha)s 4(v)k 3(e)k 7364(terminated,)s 8485(or)s
4808 8737(can)s 480 8137(be)m 762(made)s 1336(to)s 1575(stay)s
4809 2014(open)s 2537(after)s 3033(the)s 3381(client)s 3971(has)s
4810 4341(terminated)s 5420(and)s 5824(\(if)s 6120(the)s 6468(service)s
4811 7200(program)s 8070(forks\))s 8689(the)s 480 7897(main)m 1015(service)s
4812 1747(process)s 2515(has)s 2885(e)s 3(xited;)k 3578(the)s
4813 3926(beha)s 4(viour)k 4939(is)s 5149(controlled)s 6176(by)s
4814 6470(options)s 7226(passed)s 7922(to)s 8161(the)s 8509(client)s
4815 480 7657(by)m 774(its)s 1050(caller)s 13(.)k 480 7249(The)m
4816 901(caller)s 1483(can)s 1864(arrange)s 2629(that)s 3039(a)s
4817 3198(writing)s 3934(pipe)s 4394(be)s 4669(connected)s 5689(to)s
4818 5921(a)s 6080(pipe)s 6540(or)s 6792(similar)s 7506(object)s
4819 8143(and)s 8539(cause)s 480 7009(attempts)m 1340(to)s 1579(write)s
4820 2125(to)s 2364(that)s 2782(descriptor)s 3797(by)s 4091(the)s
4821 4439(service)s 5171(to)s 5410(generate)s 6275(a)s gsave
4822 6441 7063 translate
4823 0.6953 1.0000 scale
4824 240 fnt31
4825 0 -52(SIGPIPE)m 
4826 grestore
4827 7201(\(or)s gsave
4828 7539 7063 translate
4829 0.6953 1.0000 scale
4830 240 fnt31 0 -52(EPIPE)m 
4831 grestore
4832 8099(if)s
4833 gsave
4834 8316 7063 translate
4835 0.6953 1.0000 scale
4836 240 fnt31 0 -52(SIGPIPE)m 
4837 grestore
4838 480 6769(is)m 690(caught)s 1388(or)s
4839 1647(ignored\))s 2506(in)s 2749(the)s 3097(service.)s 480 6361(Lik)m 2(e)k 6(wise,)k
4840 1455(the)s 1803(service)s 2535(can)s 2924(close)s 3471(\207ledescriptors)s
4841 4875(speci\207ed)s 5783(for)s 6121(reading,)s 6945(which)s 7587(will)s
4842 8013(cause)s 8600(the)s 480 6121(corresponding)m 1902(\207ledescriptors)s 3306(passed)s
4843 4002(by)s 4296(the)s 4644(caller)s 5233(to)s 5472(be)s
4844 5754(closed,)s 6472(so)s 6738(that)s 7156(if)s 7373(these)s
4845 7920(are)s 8267(pipes)s 480 5881(processes)m 1447(which)s 2089(write)s
4846 2635(to)s 2874(them)s 3412(will)s 3838(recei)s 6(v)k 3(e)k
4847 gsave
4848 4574 5935 translate
4849 0.6953 1.0000 scale
4850 240 fnt31 0 -52(SIGPIPE)m 
4851 grestore
4852 5334(or)s gsave
4853 5593 5935 translate
4854 0.6953 1.0000 scale
4855 240 fnt31 0 -52(EPIPE)m
4856
4857 grestore
4858 6093(.)s 0 5426(\213)m 480(If)s gsave
4859 706 5480 translate
4860 0.6953 1.0000 scale
4861 240 fnt31 0 -52(no\211suppress\211args)m
4862
4863 grestore
4864 2363(is)s 2568(set)s 2888(then)s 3353(ar)s 4(guments)k
4865 4391(passed)s 5082(to)s 5316(the)s 5660(client)s 6245(by)s
4866 6534(its)s 6805(caller)s 7390(will)s 7811(be)s 8088(passed)s
4867 8779(on,)s 480 5186(v)m 3(erbatim,)k 1433(to)s 1672(the)s
4868 2020(service.)s 0 4750(\213)m 480(F)s 3(a)k 716(tal)s
4869 1009(sig)s 1281(nals)s 1717(and)s 2121(sys)s 2418(tem)s
4870 2836(call)s 3235(f)s 2(ail)k 3545(ures)s 3994(e)s 3(x)k
4871 4212(pe)s 4434(ri)s 4573(enced)s 5189(by)s 5483(the)s
4872 5831(client)s 6421(will)s 6847(re)s 7028(sult)s 7433(in)s
4873 7676(the)s 8024(dis)s 8294(con)s 8637(nec)s 8962(-)s
4874 480 4510(tion)m 909(of)s 1180(the)s 1528(ser)s 1806(vice)s
4875 2260(from)s 2784(the)s 3132(client)s 3722(and)s 4126(pos)s
4876 4450(si)s 4603(bly)s 4963(some)s 5524(of)s 5795(the)s
4877 6143(com)s 6555(mu)s 6856(ni)s 7036(ca)s 7248(tion)s
4878 7677(\207le)s 8038(de)s 8260(scrip)s 8717(tors)s 480 4270(de)m
4879 702(scribed)s 1450(abo)s 3(v)k 3(e;)k 2128(if)s
4880 gsave
4881 2345 4324 translate
4882 0.6953 1.0000 scale
4883 240 fnt31 0 -52(disconnect\211hup)m 
4884 grestore
4885 3806(is)s 4016(set)s 4341(then)s
4886 4810(the)s 5158(ser)s 5436(vice)s 5890(will)s 6316(also)s
4887 6754(be)s 7036(sent)s 7481(a)s gsave
4888 7647 4324 translate
4889 0.6953 1.0000 scale
4890 240 fnt31 0 -52(SIGHUP)m
4891
4892 grestore
4893 8247(.)s 0 3834(\213)m 480(The)s 908(v)s 6(alue)k
4894 1476(of)s 1747(the)s gsave
4895 2095 3888 translate
4896 0.6953 1.0000 scale
4897 240 fnt31 0 -52(LOGNAME)m 
4898 grestore
4899 2855(\(or)s
4900 gsave
4901 3193 3888 translate
4902 0.6953 1.0000 scale
4903 240 fnt31 0 -52(USER)m 
4904 grestore
4905 3593(\))s 3721(en)s 9(vironment)k
4906 4981(v)s 6(ariable)k 5800(as)s 6050(passed)s 6746(to)s
4907 6985(the)s 7333(client)s 7923(will)s 8349(be)s 480 3594(used)m
4908 977(as)s 1227(the)s 1575(login)s 2124(name)s 2698(of)s
4909 2969(the)s 3317(calling)s 4020(user)s 4478(if)s 4695(the)s
4910 5043(uid)s 5407(of)s 5678(the)s 6026(calling)s 6729(process)s
4911 7497(matches)s 8331(the)s 8679(uid)s 480 3354(corresponding)m 1902(to)s
4912 2141(that)s 2559(login)s 3108(name.)s 3730(Otherwise)s 4768(the)s
4913 5116(calling)s 5819(uid')s 13(s)k 6335(passw)s 2(ord)k
4914 7295(entry)s 7840(will)s 8266(be)s 8548(used)s 480 3114(to)m
4915 719(determine)s 1730(the)s 2078(calling)s 2781(user')s 13(s)k
4916 3389(login)s 3938(name.)s 480 2706(This)m 956(login)s 1505(name)s
4917 2079(and)s 2483(the)s 2831(calling)s 3534(uid)s 3898(are)s
4918 4245(a)s 4(v)k 6(ailable)k 5153(in)s 5396(the)s
4919 5744(con\207guration)s 7077(language)s 7997(in)s 8240(the)s gsave
4920 480 2520 translate
4921 0.6953 1.0000 scale
4922 240 fnt31
4923 0 -52(calling\211user)m 
4924 grestore
4925 1741 2466(parameter)m 2755(and)s 3159(are)s 3506(passed)s
4926 4202(to)s 4441(the)s 4789(service)s 5521(program)s 6391(in)s
4927 6634(en)s 9(vironment)k 7894(v)s 6(ariables)k gsave
4928 480 2280 translate
4929 0.6953 1.0000 scale
4930 240 fnt31
4931 0 -52(USERV_USER)m 
4932 grestore
4933 1541 2226(and)m gsave
4934 1945 2280 translate
4935 0.6953 1.0000 scale
4936 240 fnt31 0 -52(USERV_UID)m 
4937 grestore
4938 2846(.)s
4939 480 1818(The)m 901(shell)s 1400(corresponding)s 2815(to)s 3047(that)s
4940 3458(login)s 4000(name)s 4567(\(according)s 5635(to)s 5867(the)s
4941 6208(passw)s 2(ord)k 7161(entry\))s 7773(is)s 7976(a)s 4(v)k 6(ailable)k
4942 8876(as)s 480 1578(in)m 723(the)s 1071(con\207guration)s 2404(language')s 13(s)k
4943 gsave
4944 3478 1632 translate
4945 0.6953 1.0000 scale
4946 240 fnt31 0 -52(calling\211user\211shell)m 
4947 grestore
4948 5340(parameter)s 13(.)k 480 1170(If)m
4949 710(no)s 1003(rele)s 6(v)k 6(ant)k 1820(passw)s 2(ord)k
4950 2780(entry)s 3325(can)s 3714(be)s 3996(found)s 4613(then)s
4951 5082(no)s 5375(service)s 6107(will)s 6533(be)s 6815(in)s 9(v)k 4(ok)k 2(ed.)k
4952 0 715(\213)m 480(The)s 908(numeric)s 1744(v)s 6(alues)k
4953 2400(and)s 2804(te)s 3(xtual)k 3506(names)s 4168(for)s
4954 4506(calling)s 5209(gid)s 5573(and)s 5977(supplementary)s 7439(group)s
4955 8051(list)s 8402(are)s 0 52(0.62)m 4809(User)s 5320(service)s
4956 6052(daemon)s 6867(and)s 7271(client)s 7861(speci\207cation)s 
4957 grestore
4958
4959 grestore
4960
4961 pgsave restore
4962 showpage
4963
4964 %%Page: 19 19
4965 %%BeginPageSetup
4966 %%PageResources: font Times-Roman
4967 %%+ font Times-Bold
4968 %%+ font Courier-Bold
4969 %%+ font Times-Italic
4970 /pgsave save def
4971 0.0500 dup scale 10 setlinewidth
4972 %%EndPageSetup
4973 gsave
4974 0 0 translate
4975 240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic
4976 gsave
4977 LoutPageSet
4978 grestore
4979 gsave
4980 0 16840 translate
4981 0.0000 rotate
4982
4983 grestore
4984
4985 grestore
4986 gsave
4987 0 16840 translate
4988 0.0000 rotate
4989 gsave
4990 1417 -15423 translate
4991 240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic
4992 gsave
4993 1 LoutMargSet
4994 grestore
4995 240 fnt84 8832 13842(19)m 240 fnt82 480 13251(a)m 4(v)k 6(ailable)k
4996 1380(in)s 1615(the)s 1955(con\207guration)s 3280(language)s 4192(in)s
4997 4427(the)s gsave
4998 4766 13305 translate
4999 0.6953 1.0000 scale
5000 240 fnt31 0 -52(calling\211group)m 
5001 grestore
5002 6119(parameter)s 7125(and)s
5003 7521(are)s 7860(passed)s 8548(to)s 8778(the)s 480 13011(service)m
5004 1212(in)s 1455(en)s 9(vironment)k 2715(v)s 6(ariables.)k
5005 480 12603(If)m 710(no)s 1003(name)s 1577(can)s 1966(be)s
5006 2248(found)s 2865(for)s 3203(a)s 3369(numeric)s 4205(group)s
5007 4817(to)s 5056(which)s 5698(the)s 6046(calling)s 6749(process)s
5008 7517(belongs)s 8313(then)s 8782(no)s 480 12363(service)m 1212(will)s
5009 1638(be)s 1920(in)s 9(v)k 4(ok)k 2(ed.)k
5010 0 11957(\213)m 480(The)s 908(name)s 1482(of)s 1753(the)s
5011 2101(current)s 2837(w)s 2(orking)k 3686(directory)s 4602(in)s
5012 4845(which)s 5487(the)s 5835(client)s 6425(w)s 2(as)k
5013 6846(in)s 9(v)k 4(ok)k 2(ed)k 7661(is)s
5014 7871(passed,)s 8616(if)s 480 11717(a)m 4(v)k 6(ailable)k
5015 1388(and)s 1792(not)s 2158(hidden)s 2867(using)s gsave
5016 3439 11771 translate
5017 0.6953 1.0000 scale
5018 240 fnt31
5019 0 -52(\211\211hidecwd)m 
5020 grestore
5021 4340(,)s 4447(to)s 4686(the)s 5034(service)s
5022 5766(program)s 6636(in)s 6879(the)s gsave
5023 7227 11771 translate
5024 0.6953 1.0000 scale
5025 240 fnt31 0 -52(USERV_CWD)m
5026
5027 grestore
5028 8188(v)s 6(ariable.)k 480 11477(This)m 946(grants)s 1570(no)s
5029 1852(special)s 2560(access)s 3210(to)s 3438(that)s 3846(directory)s
5030 4751(unless)s 5389(it)s 5571(is)s 5770(a)s 5925(subdirectory)s
5031 7164(of)s 7424(a)s 7579(directory)s 8484(which)s 480 11237(is)m
5032 690(e)s 3(x)k 3(ecutable)k 1762(\(searchable\))s 2977(b)s 4(ut)k
5033 3339(not)s 3705(readable)s 4570(by)s 4864(the)s 5212(service)s
5034 5944(user)s 13(.)k 0 10780(\213)m 480(Settings)s 1301(speci\207ed)s
5035 2209(by)s 2503(the)s 2851(caller)s 3440(using)s 4012(the)s
5036 gsave
5037 4360 10834 translate
5038 0.6953 1.0000 scale
5039 240 fnt31 0 -52(\211\211defvar)m gsave
5040 1295 0 translate
5041 1.4219 1.0000 scale
5042 240 fnt83 0 -52(name)m 
5043 grestore
5044 2023(=)s
5045 gsave
5046 2167 0 translate
5047 1.4219 1.0000 scale
5048 240 fnt83 0 -52(value)m 
5049 grestore
5050
5051 grestore
5052 6432(option)s 7101(to)s 7340(the)s
5053 7688(client)s 8278(are)s 480 10540(a)m 4(v)k 6(ailable)k
5054 1388(in)s 1631(the)s 1979(con\207guration)s 3312(language)s 4232(as)s
5055 4482(the)s 4830(corresponding)s gsave
5056 6252 10594 translate
5057 0.6953 1.0000 scale
5058 240 fnt31 0 -52(u\211)m gsave
5059 288 0 translate
5060 1.4219 1.0000 scale
5061 240 fnt83
5062 0 -52(name)m 
5063 grestore
5064
5065 grestore
5066 7018(parameters)s 8116(and)s 8520(are)s 480 10300(passed)m
5067 1176(to)s 1415(the)s 1763(service)s 2495(program)s 3365(in)s
5068 3608(en)s 9(vironment)k 4868(v)s 6(ariables)k gsave
5069 5775 10354 translate
5070 0.6953 1.0000 scale
5071 240 fnt31
5072 0 -52(USERV_U_)m gsave
5073 1152 0 translate
5074 1.4219 1.0000 scale
5075 240 fnt83 0 -52(name)m 
5076 grestore
5077
5078 grestore
5079 7082(.)s 0 9845(\213)m
5080 480(If)s 710(the)s 1058(calling)s 1761(user)s 2219(is)s
5081 2429(root)s 2874(or)s 3133(the)s 3481(same)s 4028(as)s
5082 4278(the)s 4626(service)s 5358(user)s 5816(then)s 6285(options)s
5083 7041(may)s 7507(be)s 7789(gi)s 6(v)k 3(en)k
5084 8369(to)s 8608(the)s 480 9605(client)m 1070(which)s 1712(bypass)s
5085 2415(the)s 2763(usual)s 3323(security)s 4133(features;)s 5000(in)s
5086 5243(this)s 5639(case)s 6106(other)s 6657(information)s 7842(may)s
5087 8308(pass)s 480 9365(between)m 1334(the)s 1682(caller)s 2271(and)s
5088 2675(the)s 3023(service.)s 0 52(User)m 511(service)s 1243(daemon)s
5089 2058(and)s 2462(client)s 3052(speci\207cation)s 8652(0.62)s 
5090 grestore
5091
5092 grestore
5093
5094 pgsave restore
5095 showpage
5096
5097 %%Page: 20 20
5098 %%BeginPageSetup
5099 %%PageResources: font Times-Roman
5100 %%+ font Times-Bold
5101 %%+ font Courier-Bold
5102 %%+ font Times-Italic
5103 /pgsave save def
5104 0.0500 dup scale 10 setlinewidth
5105 %%EndPageSetup
5106 gsave
5107 0 0 translate
5108 240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic
5109 gsave
5110 LoutPageSet
5111 grestore
5112 gsave
5113 0 16840 translate
5114 0.0000 rotate
5115
5116 grestore
5117
5118 grestore
5119 gsave
5120 0 16840 translate
5121 0.0000 rotate
5122 gsave
5123 1417 -15423 translate
5124 240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic
5125 gsave
5126 0 LoutMargSet
5127 grestore
5128 240 fnt84 0 13842(20)m gsave
5129 0 12727 translate
5130 240 fnt82 9066 687 0 687 240 240 60 LoutGraphic
5131 gsave
5132 newpath 0 ysize 0.3 ft sub moveto
5133 xsize 0 rlineto
5134 0 0.2 ft rlineto
5135 xsize neg 0 rlineto
5136 closepath fill
5137 grestore
5138 340 fnt84 0 69(6.)m 412(A)s 8(pplications)k
5139 2309(and)s 2935(notes)s 3765(on)s 4204(use)s 
5140 grestore
5141 gsave
5142 0 11649 translate
5143 240 fnt82 9066 670 0 670 240 240 60 LoutGraphic
5144 gsave
5145 newpath 0 ysize 0.3 ft sub moveto
5146 xsize 0 rlineto
5147 0 0.1 ft rlineto
5148 xsize neg 0 rlineto
5149 closepath fill
5150 grestore
5151 320 fnt84
5152 0 66(6.1.)m 628(Standard)s 1977(ser)s 3(vices)k 3110(and)s
5153 3697(dir)s 5(ectory)k 5025(management)s 
5154 grestore
5155 240 fnt82 0 11187(In)m
5156 250(later)s 726(v)s 3(ersions)k 1565(of)s 1829(this)s
5157 2219(speci\207cation)s 3477(standard)s 4339(service)s 5064(names)s 5720(and)s
5158 6117(interf)s 2(aces)k 7087(for)s 7418(common)s 8306(services)s
5159 0 10947(such)m 496(as)s 746(mail)s 1225(deli)s 6(v)k 3(ery)k
5160 2053(and)s 2457(WWW)s 3193(CGI)s 3661(scripts)s 4335(will)s
5161 4761(be)s 5043(speci\207ed.)s gsave
5162 0 10593 translate
5163 0.6953 1.0000 scale
5164 240 fnt31 0 -52(userv)m 
5165 grestore
5166 500 10539(-us)m
5167 783(ing)s 1142(ap)s 1361(pli)s 1607(ca)s 1819(tions)s
5168 2335(and)s 2739(sys)s 3036(tem)s 3454(ser)s 3732(vices)s
5169 4274(which)s 4916(hide)s gsave
5170 5384 10593 translate
5171 0.6953 1.0000 scale
5172 240 fnt31 0 -52(userv)m 
5173 grestore
5174 5944(be)s
5175 6166(hind)s 6650(wrap)s 7121(per)s 7486(scripts)s 8160(may)s
5176 0 10299(need)m 510(to)s 749(store)s 1269(in)s 1452(for)s
5177 1730(ma)s 2022(tion)s 2451(in)s 2694(the)s 3042(user')s 13(s)k
5178 3650(\207lespace)s 4542(to)s 4781(pre)s 5082(serv)s 3(e)k
5179 5639(the)s 5987(cor)s 6292(rect)s 6709(place)s 7209(ment)s
5180 7747(of)s 8018(the)s 8366(se)s 8561(-)s 0 10059(cu)m
5181 221(ri)s 360(ty)s 600(perim)s 1157(iters.)s 1671(Such)s
5182 2207(ap)s 2426(pli)s 2672(ca)s 2884(tions)s 3400(should)s
5183 4097(usu)s 4425(al)s 4592(ly)s 4832(do)s 5125(so)s
5184 5391(in)s 5634(a)s 5800(di)s 5980(rec)s 6264(to)s
5185 6443(ry)s 6696(\(cre)s 7062(at)s 7234(ed)s 7518(by)s
5186 7812(them\))s gsave
5187 0 9873 translate
5188 0.6953 1.0000 scale
5189 240 fnt31 0 -52(~/.userv/.servdata/)m gsave
5190 2736 0 translate
5191 1.4219 1.0000 scale
5192 240 fnt83 0 -52(service)m
5193
5194 grestore
5195
5196 grestore
5197 2563 9819(,)m 2670(where)s 240 fnt83 3310 9821(ser)m 3607(vice)s
5198 240 fnt82 4044 9819(is)m 4254(the)s 4602(ser)s 4880(vice)s
5199 5334(name)s 5908(or)s 6167(ap)s 6386(pli)s 6632(ca)s
5200 6844(tion)s 7273(in)s 7516(ques)s 7946(tion.)s 0 9411(The)m
5201 428(use)s 803(of)s 1074(a)s 1240(dot-directory)s 2541(inside)s
5202 gsave
5203 3168 9465 translate
5204 0.6953 1.0000 scale
5205 240 fnt31 0 -52(~/.userv)m 
5206 grestore
5207 4029(will)s 4455(hopefully)s 5426(a)s 4(v)k 4(oid)k
5208 6008(the)s 6356(user)s 6814(becoming)s 7811(confused)s 0 9171(by)m
5209 294(\207nding)s 1026(parts)s 1541(of)s 1812(a)s 1978(semi-pri)s 6(vile)k 3(ged)k
5210 3526(application')s 13(s)k 4798(internal)s 5582(state)s 6075(in)s
5211 6318(their)s 6815(\207lespace,)s 7758(and)s 8162(or)s 0 8931(discourage)m
5212 1092(them)s 1630(from)s 2154(\207ddling)s 2952(with)s 3434(and)s
5213 3838(thus)s 4288(corrupting)s 5337(it.)s 5573(\(Note)s 6173(that)s
5214 6591(such)s 7087(applications)s 8293(should)s 0 8691(of)m 271(course)s
5215 951(not)s 1317(rely)s 1742(for)s 2080(their)s 2577(global)s
5216 3230(inte)s 3(grity)k 4090(on)s 4387(the)s 4735(inte)s 3(grity)k
5217 5595(of)s 5866(the)s 6214(data)s 6672(on)s 6969(the)s
5218 7317(user')s 13(s)k 7925(side)s 8366(of)s 8637(the)s
5219 0 8451(security)m 810(boundary)s 15(.\))k 9066 670 0 670 240 240 60 0 7427 LoutGr2
5220 newpath 0 ysize 0.3 ft sub moveto
5221 xsize 0 rlineto
5222 0 0.1 ft rlineto
5223 xsize neg 0 rlineto
5224 closepath fill
5225 grestore
5226 320 fnt84 0 66(6.2.)m
5227 628(Reducing)s 1997(the)s 2497(number)s 3655(of)s 4018(absolutely)s
5228 5474(pri)s 3(vileged)k 6908(subsystems)s 
5229 grestore
5230 0 6965(Currently)m 970(most)s
5231 1495(Unix)s 2029(systems)s 2837(ha)s 4(v)k 3(e)k
5232 3338(man)s 3(y)k 3921(components)s 5129(which)s 5771(need)s
5233 6281(to)s 6520(run)s 6896(as)s 7146(root,)s 7638(e)s 6(v)k 3(en)k
5234 8138(though)s 0 6725(most)m 525(of)s 796(their)s 1293(acti)s 6(vity)k
5235 2057(does)s 2547(not)s 2913(strictly)s 3629(require)s 4361(it.)s
5236 4597(This)s 5073(gi)s 6(v)k 3(es)k 5620(rise)s
5237 6020(to)s 6259(a)s 6425(lar)s 4(ge)k 6954(and)s
5238 7358(comple)s 3(x)k 8234(body)s 8768(of)s 0 6485(code)m
5239 508(which)s 1150(must)s 1675(be)s 1957(trusted)s 2665(with)s
5240 3147(the)s 3495(security)s 4305(of)s 4576(the)s 4924(system.)s
5241 0 6077(Using)m gsave
5242 625 6131 translate
5243 0.6953 1.0000 scale
5244 240 fnt31 0 -52(userv)m 
5245 grestore
5246 1185(man)s 3(y)k
5247 1768(of)s 2039(these)s 2586(subsystems)s 3727(no)s 4020(longer)s
5248 4691(need)s 5201(an)s 3(y)k 5598(unusual)s 6398(pri)s 6(vile)k 3(ge.)k
5249 gsave
5250 0 5723 translate
5251 0.6953 1.0000 scale
5252 240 fnt31 0 -52(cron)m 
5253 grestore
5254 455 5669(and)m gsave
5255 853 5723 translate
5256 0.6953 1.0000 scale
5257 240 fnt31 0 -52(at)m
5258
5259 grestore
5260 1053(,)s gsave
5261 1154 5723 translate
5262 0.6953 1.0000 scale
5263 240 fnt31 0 -52(lpr)m 
5264 grestore
5265 1509(and)s 1907(the)s
5266 2249(system')s 13(s)k 3117(mail)s 3591(transfer)s 4373(agent)s
5267 4945(\()s gsave
5268 5018 5723 translate
5269 0.6953 1.0000 scale
5270 240 fnt31 0 -52(sendmail)m 
5271 grestore
5272 5819(,)s gsave
5273 5921 5723 translate
5274 0.6953 1.0000 scale
5275 240 fnt31
5276 0 -52(smail)m 
5277 grestore
5278 6421(,)s gsave
5279 6522 5723 translate
5280 0.6953 1.0000 scale
5281 240 fnt31 0 -52(exim)m 
5282 grestore
5283 6976(or)s
5284 7229(the)s 7572(lik)s 2(e\))k 8050(all)s 8337(f)s 2(all)k
5285 8701(into)s 0 5429(this)m 396(cate)s 3(gory)k 15(.)k
5286 9066 670 0 670 240 240 60 0 4405 LoutGr2
5287 newpath 0 ysize 0.3 ft sub moveto
5288 xsize 0 rlineto
5289 0 0.1 ft rlineto
5290 xsize neg 0 rlineto
5291 closepath fill
5292 grestore
5293 320 fnt84 0 66(6.3.)m 628(Do)s 1092(not)s 1615(gi)s 3(v)k 3(e)k
5294 2234(away)s 3019(excessi)s 3(v)k 3(e)k 4312(pri)s 3(vilege)k
5295 5571(to)s gsave
5296 5910 139 translate
5297 0.6953 1.0000 scale
5298 320 fnt31 0 -70(userv)m 
5299 grestore
5300 6577(-using)s 7484(facilities)s
5301
5302 grestore
5303 0 3943(There)m 613(is)s 823(a)s 989(danger)s 1700(that)s
5304 2118(people)s 2812(reimplementing)s 4378(the)s 4726(f)s 2(acilities)k
5305 5595(I)s 5730(mention)s 6571(abo)s 3(v)k 3(e)k
5306 7193(using)s gsave
5307 7765 3997 translate
5308 0.6953 1.0000 scale
5309 240 fnt31 0 -52(userv)m 
5310 grestore
5311 8325(will)s 0 3703(discard)m
5312 731(much)s 1303(of)s 1557(the)s 1888(security)s 2680(bene\207t)s
5313 3374(by)s 3651(using)s 4206(a)s 4355(nai)s 6(v)k 3(e)k
5314 4902(implementation)s 6442(technique.)s 7459(This)s 7918(will)s 8326(become)s
5315 0 3463(clearer)m 708(with)s 1190(an)s 1473(e)s 3(xample:)k
5316 0 3055(Consider)m 924(the)s gsave
5317 1272 3109 translate
5318 0.6953 1.0000 scale
5319 240 fnt31 0 -52(lpr)m 
5320 grestore
5321 1632(program.)s
5322 2546(In)s 2802(current)s 3538(systems)s 4346(this)s 4742(needs)s
5323 5338(to)s 5577(ha)s 4(v)k 3(e)k 6078(an)s
5324 6361(absolutely)s 7398(pri)s 6(vile)k 3(ged)k 0 2815(component)m
5325 1124(in)s 1367(order)s 1931(to)s 2170(support)s 2948(delayed)s
5326 3750(printing)s 4560(without)s 5351(cop)s 2(ying:)k 6227(when)s
5327 6803(the)s 7151(user)s 7609(queues)s 8325(a)s 8491(\207le)s
5328 0 2575(to)m 239(be)s 521(printed)s 1256(the)s 1604(\207lename)s
5329 2483(is)s 2693(stored)s 3335(in)s 3578(the)s 3926(print)s
5330 4437(queue,)s 5116(rather)s 5732(than)s 6201(a)s 6367(cop)s 2(y)k
5331 6885(of)s 7156(it,)s 7395(and)s 7799(the)s 8147(printer)s
5332 0 2335(daemon)m 813(accesses)s 1671(the)s 2016(\207le)s 2375(directly)s
5333 3155(when)s 3729(it)s 3918(is)s 4126(ready)s 4708(to)s
5334 4945(print)s 5453(the)s 5799(job)s 9(.)k 6197(In)s
5335 6451(order)s 7012(that)s 7428(the)s 7773(user)s 8229(can)s
5336 8615(print)s 0 2095(\207les)m 449(which)s 1091(are)s 1438(not)s
5337 1804(w)s 2(orld-readable)k 3304(the)s 3652(daemon)s 4467(is)s
5338 4677(gi)s 6(v)k 3(en)k 5257(root)s 5702(pri)s 6(vile)k 3(ge)k
5339 6598(so)s 6864(that)s 7282(it)s 7474(can)s 7863(open)s
5340 8386(the)s 8734(\207le)s 0 1855(in)m 243(the)s 591(conte)s 3(xt)k
5341 1352(of)s 1623(the)s 1971(user)s 9(,)k 2467(rather)s
5342 3083(than)s 3552(its)s 3828(o)s 6(wn.)k 0 1447(A)m
5343 212(simple-minded)s 1686(approach)s 2602(to)s 2823(con)s 9(v)k 3(erting)k
5344 3868(this)s 4246(scheme)s 5001(to)s 5222(use)s gsave
5345 5579 1501 translate
5346 0.6953 1.0000 scale
5347 240 fnt31
5348 0 -52(userv)m 
5349 grestore
5350 6120(might)s 6720(in)s 9(v)k 4(olv)k 3(e)k
5351 7460(gi)s 6(ving)k 8101(the)s 8430(printer)s 0 1207(daemon)m
5352 811(\(the)s gsave
5353 1233 1261 translate
5354 0.6953 1.0000 scale
5355 240 fnt31 0 -52(lp)m 
5356 grestore
5357 1489(user\))s 2010(the)s
5358 2354(ability)s 3013(to)s 3248(read)s 3712(the)s 4055(\207le)s
5359 4412(by)s 4701(allo)s 6(wing)k 5581(them)s 6114(to)s
5360 6349(run)s gsave
5361 6720 1261 translate
5362 0.6953 1.0000 scale
5363 240 fnt31 0 -52(cat)m 
5364 grestore
5365 7076(\(or)s 7409(a)s
5366 7570(special-purpose)s 0 967(\207le-reading)m 1140(program\))s 2063(as)s 2299(an)s 3(y)k
5367 2681(user)s 13(.)k 3155(The)s gsave
5368 3569 1021 translate
5369 0.6953 1.0000 scale
5370 240 fnt31 0 -52(lpr)m
5371
5372 grestore
5373 3914(program)s 4769(w)s 2(ould)k 5410(use)s 5770(a)s
5374 gsave
5375 5922 1021 translate
5376 0.6953 1.0000 scale
5377 240 fnt31 0 -52(userv)m 
5378 grestore
5379 6467(service)s 7184(to)s 7409(store)s
5380 7914(the)s 8247(\207lename)s 0 727(in)m 243(the)s 591(printer)s
5381 1287(daemon')s 13(s)k 2255(queues,)s 3027(and)s 3431(the)s
5382 3779(daemon)s 4594(w)s 2(ould)k 5249(read)s 5718(the)s
5383 6066(\207le)s 6427(later)s 6910(when)s 7486(it)s 7678(felt)s
5384 8055(lik)s 2(e)k 8467(it.)s 0 52(0.62)m 4809(User)s
5385 5320(service)s 6052(daemon)s 6867(and)s 7271(client)s 7861(speci\207cation)s
5386
5387 grestore
5388
5389 grestore
5390
5391 pgsave restore
5392 showpage
5393
5394 %%Page: 21 21
5395 %%BeginPageSetup
5396 %%PageResources: font Times-Roman
5397 %%+ font Times-Bold
5398 %%+ font Courier-Bold
5399 %%+ font Times-Italic
5400 /pgsave save def
5401 0.0500 dup scale 10 setlinewidth
5402 %%EndPageSetup
5403 gsave
5404 0 0 translate
5405 240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic
5406 gsave
5407 LoutPageSet
5408 grestore
5409 gsave
5410 0 16840 translate
5411 0.0000 rotate
5412
5413 grestore
5414
5415 grestore
5416 gsave
5417 0 16840 translate
5418 0.0000 rotate
5419 gsave
5420 1417 -15423 translate
5421 240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic
5422 gsave
5423 1 LoutMargSet
5424 grestore
5425 240 fnt84 8839 13842(21)m 240 fnt82 0 13254(Ho)m 6(we)k 6(v)k 3(er)k 9(,)k
5426 960(this)s 1356(w)s 2(ould)k 2011(allo)s 6(w)k
5427 2590(the)s 2938(printer)s 3634(daemon)s 4449(to)s 4688(read)s
5428 5157(an)s 3(y)k 5554(\207le)s 5915(on)s 6212(the)s
5429 6560(system,)s 7331(whether)s 8161(or)s 8420(not)s 0 13014(someone)m
5430 907(had)s 1311(ask)s 2(ed)k 1912(for)s 2250(it)s
5431 2442(to)s 2681(be)s 2963(printed.)s 3744(Since)s 4331(man)s 3(y)k
5432 4914(\207les)s 5363(will)s 5789(contain)s 6550(passw)s 2(ords)k
5433 7596(and)s 8000(other)s 0 12774(security-critical)m 1551(information)s 2736(this)s
5434 3132(is)s 3342(nearly)s 3993(as)s 4243(bad)s 4647(as)s
5435 4897(gi)s 6(ving)k 5556(the)s 5904(daemon)s 6719(root)s
5436 7164(access)s 7825(in)s 8068(the)s 8416(\207rst)s 0 12534(place.)m
5437 608(An)s 3(y)k 1072(security)s 1882(holes)s 2438(in)s
5438 2681(the)s 3029(print)s 3540(serv)s 3(er)k 4180(which)s
5439 4822(allo)s 6(w)k 5401(a)s 5567(user)s 6025(to)s
5440 6264(e)s 3(x)k 3(ecute)k 7044(commands)s 8132(as)s
5441 8382(the)s gsave
5442 8730 12588 translate
5443 0.6953 1.0000 scale
5444 240 fnt31 0 -52(lp)m 
5445 grestore
5446 0 12294(user)m 458(will)s
5447 884(gi)s 6(v)k 3(e)k 1343(the)s 1691(user)s
5448 2149(the)s 2497(ability)s 3161(to)s 3400(read)s 3869(an)s 3(y)k
5449 4266(\207le)s 4627(on)s 4924(the)s 5272(system.)s 0 11886(Instead,)m
5450 790(it)s 975(is)s 1178(necessary)s 2153(to)s 2385(k)s 2(eep)k
5451 2881(a)s 3040(record)s 3700(of)s 3964(which)s 4599(\207les)s
5452 5040(the)s 5381(daemon)s 6189(has)s 6552(been)s 7053(ask)s 2(ed)k
5453 7647(to)s 7879(print)s 240 fnt83 8382 11888(outside)m 240 fnt82
5454 0 11646(the)m 348(control)s 1080(of)s 1351(the)s 1699(print)s
5455 2210(daemon.)s 3072(This)s 3548(record)s 4216(could)s 4806(be)s
5456 5088(k)s 2(ept)k 5558(by)s 5852(a)s 6018(ne)s 6(w)k
5457 6465(root-pri)s 6(vile)k 3(ged)k 7947(component,)s 0 11406(b)m 4(ut)k
5458 352(this)s 737(is)s 936(not)s 1291(necessary:)s 2315(the)s
5459 2652(record)s 3309(of)s 3569(which)s 4200(\207les)s 4638(a)s
5460 4794(user)s 5241(has)s 5600(ask)s 2(ed)k 6190(to)s
5461 6418(be)s 6689(printed)s 7413(can)s 7791(be)s 8062(k)s 2(ept)k
5462 8521(under)s 0 11166(the)m 348(control)s 1080(of)s 1351(the)s
5463 1699(user)s 2157(in)s 2400(question.)s 3315(The)s 3743(submission)s
5464 4877(program)s gsave
5465 5747 11220 translate
5466 0.6953 1.0000 scale
5467 240 fnt31 0 -52(lpr)m 
5468 grestore
5469 6107(will)s 6533(mak)s 2(e)k
5470 7105(a)s 7271(record)s 7939(in)s 8182(an)s 8465(area)s
5471 0 10926(under)m 605(the)s 953(user')s 13(s)k 1561(control)s
5472 2293(before)s 2959(communicating)s 4500(with)s 4982(the)s 5330(print)s
5473 5841(serv)s 3(er)k 9(,)k 6519(and)s 6923(the)s
5474 7271(print)s 7782(serv)s 3(er)k 8422(w)s 2(ould)k
5475 0 10686(be)m 279(gi)s 6(v)k 3(en)k 855(the)s
5476 1199(ability)s 1859(to)s 2094(run)s 2466(a)s 2628(special)s
5477 3342(\207le-reading)s 4493(program)s 5359(which)s 5997(w)s 2(ould)k
5478 6648(only)s 7124(allo)s 6(w)k 7699(\207les)s 8144(to)s
5479 8379(be)s 8657(read)s 0 10446(which)m 642(were)s 1162(listed)s
5480 1737(in)s 1980(the)s 2328(user')s 13(s)k 2936(\207le)s
5481 3297(of)s 3568(things)s 4204(the)s 3(y')k 12(d)k
5482 4858(ask)s 2(ed)k 5459(to)s 5698(print.)s 0 10038(No)m 6(w)k
5483 502(security)s 1300(holes)s 1844(in)s 2075(most)s 2588(of)s
5484 2846(the)s 3182(printing)s 3980(system)s 4692(do)s 4973(not)s
5485 5327(critically)s 6215(af)s 6(fect)k 6799(the)s 7135(security)s
5486 7933(of)s 8192(the)s 8527(entire)s 0 9798(system:)m 770(the)s 3(y)k
5487 1233(only)s 1713(allo)s 6(w)k 2292(the)s 2640(attack)s 2(er)k
5488 3453(to)s 3692(read)s 4161(and)s 4565(interfere)s 5428(with)s
5489 5910(print)s 6421(jobs.)s 6924(Bugs)s 7468(in)s 7711(the)s
5490 8059(programs)s 0 9558(run)m 373(by)s 664(the)s 1009(print)s
5491 1517(serv)s 3(er)k 2154(to)s 2390(read)s 2856(users')s
5492 3456(\207les)s 3902(\(and)s 4382(to)s 4618(remo)s 3(v)k 3(e)k
5493 5382(entries)s 6066(from)s 6587(the)s 6932(list)s 7280(of)s
5494 7548(\207les)s 7994(when)s 8567(it)s 8756(has)s 0 9318(done)m
5495 522(with)s 1004(them\))s 1610(will)s 2036(still)s 2448(be)s
5496 2730(serious,)s 3514(b)s 4(ut)k 3876(this)s 4272(program)s
5497 5142(can)s 5531(be)s 5813(quite)s 6347(simple.)s 0 8910(Similar)m
5498 762(considerations)s 2194(apply)s 2780(to)s 3019(man)s 3(y)k
5499 gsave
5500 3602 8964 translate
5501 0.6953 1.0000 scale
5502 240 fnt31 0 -52(userv)m 
5503 grestore
5504 4102(-based)s 4784(v)s 3(ersions)k
5505 5629(of)s 5900(f)s 2(acilities)k 6769(which)s 7411(currently)s
5506 8327(run)s 0 8670(as)m 250(root.)s 0 8262(It)m 198(is)s
5507 401(debatable)s 1366(whether)s 2189(the)s 2530(user)s 4(-controlled)k
5508 4023(state)s 4509(should)s 5199(be)s 5474(k)s 2(ept)k
5509 5937(in)s 6173(the)s 6514(user')s 13(s)k 7115(\207lespace)s
5510 8000(\(in)s 8315(dot\207les,)s 0 8022(say\))m 440(or)s 692(k)s 2(ept)k
5511 1155(in)s 1391(a)s 1550(separate)s 2381(area)s 2831(set)s
5512 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
5513 6123(using)s 6688(the)s 7029(user')s 13(s)k 7630(home)s
5514 8210(directory)s 0 7782(\(and)m 468(probably)s 1357(creating)s 2164(a)s
5515 2314(separate)s 3137(subdirectory)s 4370(of)s 4626(it)s 4802(as)s
5516 5037(a)s 5187(dot\207le)s 5839(to)s 6062(contain)s 6808(man)s 3(y)k
5517 7375(subsystems')s 8561(state\))s 0 7542(has)m 370(fe)s 6(wer)k
5518 967(implications)s 2199(for)s 2537(the)s 2885(rest)s 3289(of)s
5519 3560(the)s 3908(system)s 4632(and)s 5036(mak)s 2(es)k
5520 5696(it)s 5888(entirely)s 6671(clear)s 7194(where)s 7834(the)s
5521 8182(security)s 0 7302(boundaries)m 1101(lie.)s 9066 670 0 670 240 240 60 0 6278 LoutGr2
5522 newpath 0 ysize 0.3 ft sub moveto
5523 xsize 0 rlineto
5524 0 0.1 ft rlineto
5525 xsize neg 0 rlineto
5526 closepath fill
5527 grestore
5528 320 fnt84 0 66(6.4.)m
5529 gsave
5530 628 139 translate
5531 0.6953 1.0000 scale
5532 320 fnt31 0 -70(userv)m 
5533 grestore
5534 1375(is)s 1659(not)s 2182(a)s
5535 2419(r)s 5(eplacement)k 4178(f)s 8(or)k gsave
5536 4655 139 translate
5537 0.6953 1.0000 scale
5538 320 fnt31
5539 0 -70(really)m 
5540 grestore
5541 5536(and)s gsave
5542 6123 139 translate
5543 0.6953 1.0000 scale
5544 320 fnt31 0 -70(sudo)m 
5545 grestore
5546
5547 grestore
5548 gsave
5549 0 5870 translate
5550 0.6953 1.0000 scale
5551 240 fnt31
5552 0 -52(userv)m 
5553 grestore
5554 560 5816(is)m 770(not)s 1136(intended)s 2018(as)s
5555 2268(a)s 2434(general-purpose)s 4030(system)s 4754(administration)s 6191(tool)s
5556 6618(with)s 7100(which)s 7742(system)s 0 5576(administrators)m 1398(can)s
5557 1767(e)s 3(x)k 3(ecute)k 2528(pri)s 6(vile)k 3(ged)k
5558 3526(programs)s 4461(when)s 5017(the)s 3(y)k 5461(need)s
5559 5951(to.)s 6222(It)s 6407(is)s 6598(unsuitable)s 7617(for)s
5560 7936(this)s 8312(purpose)s 0 5336(precisely)m 916(because)s 1729(it)s
5561 1921(enforces)s 2781(a)s 2947(strong)s 3598(separation)s 4637(between)s
5562 5491(the)s 5839(calling)s 6542(and)s 6946(the)s 7294(called)s
5563 7922(program,)s 0 5096(which)m 642(is)s 852(undesirable)s 2010(in)s
5564 2253(this)s 2649(conte)s 3(xt.)k 0 4688(Its)m 289(f)s 2(acilities)k
5565 1158(for)s 1496(restricting)s 2516(acti)s 6(vities)k 3422(to)s
5566 3661(running)s 4459(certain)s 5165(programs)s 6119(may)s 6585(at)s
5567 6817(\207rst)s 7248(glance)s 7928(seem)s 8479(to)s 0 4420(pro)m 3(vide)k
5568 769(similar)s 1476(functionality)s 2736(to)s gsave
5569 2960 4474 translate
5570 0.6953 1.0000 scale
5571 240 fnt31 0 -52(sudo)m
5572
5573 grestore
5574 153 fnt82 3360 4509(1)m 240 fnt82 3420 4420(.)m 3509(Ho)s 6(we)k 6(v)k 3(er)k 9(,)k
5575 4454(the)s 4787(separation)s 5811(mentioned)s 6864(abo)s 3(v)k 3(e)k
5576 7471(is)s 7666(a)s 7817(problem)s 8659(here)s 0 4180(too,)m
5577 413(particular)s 1387(for)s 1725(interaction)s 2803(-)s 2931(it)s
5578 3123(can)s 3512(be)s 3794(hard)s 4277(for)s 4615(a)s
5579 gsave
5580 4781 4234 translate
5581 0.6953 1.0000 scale
5582 240 fnt31 0 -52(userv)m 
5583 grestore
5584 5341(service)s 6073(program)s 6943(to)s
5585 7182(interact)s 7957(with)s 8439(its)s 8714(real)s 0 3940(caller)m
5586 589(or)s 848(the)s 1196(user)s 1654(in)s 1897(question.)s
5587 9066 670 0 670 240 240 60 0 2916 LoutGr2
5588 newpath 0 ysize 0.3 ft sub moveto
5589 xsize 0 rlineto
5590 0 0.1 ft rlineto
5591 xsize neg 0 rlineto
5592 closepath fill
5593 grestore
5594 320 fnt84 0 66(6.5.)m 628(Don't)s 1488(gi)s 3(v)k 3(e)k
5595 2107(access)s 3013(to)s 3352(general-pur)s 3(pose)k 5640(utilities)s
5596
5597 grestore
5598 0 2454(Do)m 346(not)s 712(specify)s 1456(general)s 2214(purpose)s
5599 3028(programs)s 3982(lik)s 2(e)k gsave
5600 4394 2508 translate
5601 0.6953 1.0000 scale
5602 240 fnt31 0 -52(mv)m
5603
5604 grestore
5605 4654(or)s gsave
5606 4913 2508 translate
5607 0.6953 1.0000 scale
5608 240 fnt31 0 -52(cat)m 
5609 grestore
5610 5273(in)s gsave
5611 5516 2508 translate
5612 0.6953 1.0000 scale
5613 240 fnt31
5614 0 -52(execute\211)m 
5615 grestore
5616 6377(directi)s 6(v)k 3(es)k 7347(without)s
5617 8138(careful)s 0 2214(thought)m 792(about)s 1384(their)s 1881(ar)s 4(guments,)k
5618 2980(and)s 3384(certainly)s 4273(not)s 4639(if)s gsave
5619 4856 2268 translate
5620 0.6953 1.0000 scale
5621 240 fnt31
5622 0 -52(no\211suppress\211args)m 
5623 grestore
5624 6518(is)s 6728(speci\207ed.)s 7682(If)s 7912(you)s
5625 8327(do)s 8620(so)s 8886(it)s 0 1974(will)m 426(gi)s 6(v)k 3(e)k
5626 885(the)s 1233(caller)s 1822(much)s 2411(more)s 2958(pri)s 6(vilige)k
5627 3817(than)s 4286(you)s 4701(probably)s 5606(intend.)s 0 1566(It)m
5628 205(is)s 415(a)s 581(shame)s 1248(that)s 1666(I)s
5629 1801(ha)s 4(v)k 3(e)k 2302(to)s 2541(say)s
5630 2914(this)s 3310(here,)s 3828(b)s 4(ut)k 4190(ine)s 3(xperienced)k
5631 5586(administrators)s 7003(ha)s 4(v)k 3(e)k 7504(made)s
5632 8078(similar)s 1134 0 0 0 240 240 60 0 1178 LoutGr2
5633 0 0 moveto xsize 0 lineto stroke
5634 grestore
5635
5636 grestore
5637 122 fnt82 0 983(1)m gsave
5638 58 956 translate
5639 0.6953 1.0000 scale
5640 192 fnt31 0 -42(sudo)m
5641
5642 grestore
5643 192 fnt82 425 913(is)m 593(a)s 726(program)s 1422(which)s
5644 1936(allo)s 4(ws)k 2472(users)s 2905(to)s 3097(e)s 2(x)k 2(ecute)k
5645 3723(certain)s 4289(programs)s 5052(as)s 5252(root,)s 5646(according)s
5646 6444(to)s 6636(con\207guration)s 7703(\207les)s 8062(speci\207ed)s 8789(by)s
5647 0 683(the)m 279(system)s 858(administrator)s 10(.)k 240 fnt82
5648 0 52(User)m 511(service)s 1243(daemon)s 2058(and)s 2462(client)s
5649 3052(speci\207cation)s 8652(0.62)s 
5650 grestore
5651
5652 grestore
5653
5654 pgsave restore
5655 showpage
5656
5657 %%Page: 22 22
5658 %%BeginPageSetup
5659 %%PageResources: font Times-Roman
5660 %%+ font Times-Bold
5661 %%+ font Courier-Bold
5662 /pgsave save def
5663 0.0500 dup scale 10 setlinewidth
5664 %%EndPageSetup
5665 gsave
5666 0 0 translate
5667 240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic
5668 gsave
5669 LoutPageSet
5670 grestore
5671 gsave
5672 0 16840 translate
5673 0.0000 rotate
5674
5675 grestore
5676
5677 grestore
5678 gsave
5679 0 16840 translate
5680 0.0000 rotate
5681 gsave
5682 1417 -15423 translate
5683 240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic
5684 gsave
5685 0 LoutMargSet
5686 grestore
5687 240 fnt84 0 13842(22)m 240 fnt82 0 13254(mistak)m 2(es)k
5688 885(with)s 1367(programs)s 2321(lik)s 2(e)k gsave
5689 2733 13308 translate
5690 0.6953 1.0000 scale
5691 240 fnt31
5692 0 -52(sudo)m 
5693 grestore
5694 3133(.)s 0 52(0.62)m 4809(User)s 5320(service)s
5695 6052(daemon)s 6867(and)s 7271(client)s 7861(speci\207cation)s 
5696 grestore
5697
5698 grestore
5699
5700 pgsave restore
5701 showpage
5702
5703 %%Trailer
5704 %%DocumentNeededResources: font Courier-Bold
5705 %%+ font Times-Roman
5706 %%+ font Times-Italic
5707 %%+ font Times-Bold
5708 %%DocumentSuppliedResources: procset LoutStartUp
5709 %%+  procset LoutMarginNotes
5710 %%+ encoding vec2
5711 %%Pages: 22
5712 %%EOF