chiark / gitweb /
@@ -9,6 +9,7 @@
[userv.git] / spec.ps
diff --git a/spec.ps b/spec.ps
index a4283095edfc4727e7f24d5d2c7b70027be4658f..f482349e7703bc63ee1ed539e4e9c0798ff67537 100644 (file)
--- a/spec.ps
+++ b/spec.ps
@@ -1,6 +1,6 @@
 %!PS-Adobe-3.0
 %%Creator: Basser Lout Version 3.10 (November 1996)
-%%CreationDate: Sun Jun 20 18:45:09 1999
+%%CreationDate: Sun Aug 13 13:16:53 2000
 %%DocumentData: Binary
 %%DocumentNeededResources: (atend)
 %%DocumentMedia: Plain 595 842 0 white ()
@@ -268,8 +268,8 @@ grestore
 0.6953 1.0000 scale
 200 fnt31 1031 -43(<ian@davenant.greenend.org.uk>)m 
 grestore
-240 fnt82 4326 12513(0.62)m
-9066 609 0 609 240 240 60 0 11253 LoutGr2
+240 fnt82 4305 12515(1.0.1)m
+9066 609 0 609 240 240 60 0 11255 LoutGr2
 newpath 0 ysize 0.3 ft sub moveto
 xsize 0 rlineto
 0 0.1 ft rlineto
@@ -278,12 +278,12 @@ closepath fill
 grestore
 320 fnt84 0 5(0.1.)m 628(Abstract)s 
 grestore
-0 10959(This)m 476(is)s
+0 10961(This)m 476(is)s
 686(a)s 852(speci\207cation)s 2117(for)s 2455(a)s 2621(Unix)s
 3155(system)s 3879(f)s 2(acility)k 4606(to)s 4845(allo)s 6(w)k
 5424(one)s 5826(program)s 6696(to)s 6935(in)s 9(v)k 4(ok)k 2(e)k
-7628(another)s 8405(when)s 0 10719(only)m 480(limited)s 1214(trust)s
-1698(e)s 3(xists)k 2290(between)s 3144(them.)s 9066 670 0 670 240 240 60 0 9695 LoutGr2
+7628(another)s 8405(when)s 0 10721(only)m 480(limited)s 1214(trust)s
+1698(e)s 3(xists)k 2290(between)s 3144(them.)s 9066 670 0 670 240 240 60 0 9697 LoutGr2
 newpath 0 ysize 0.3 ft sub moveto
 xsize 0 rlineto
 0 0.1 ft rlineto
@@ -294,53 +294,53 @@ grestore
 0 66(0.2.)m 628(Copyright)s 2109(Notice)s 
 grestore
 gsave
-0 9455 translate
+0 9457 translate
 0.6953 1.0000 scale
 240 fnt31 0 -52(userv)m
 
 grestore
-560 9401(is)m 770(Cop)s 2(yright)k 1799(1996-1999)s 2889(Ian)s
-3251(Jackson.)s gsave
-0 9047 translate
+560 9403(is)m 770(Cop)s 2(yright)k 1799(1996-2000)s 2893(Ian)s
+3255(Jackson.)s gsave
+0 9049 translate
 0.6953 1.0000 scale
 240 fnt31 0 -52(userv)m 
 grestore
-544 8993(is)m 737(free)s
+544 8995(is)m 737(free)s
 1146(softw)s 2(are;)k 2062(you)s 2460(can)s 2832(redistrib)s 4(ute)k
 3955(it)s 4130(and/or)s 4784(modify)s 5512(it)s 5688(under)s
 6276(the)s 6607(terms)s 7172(of)s 7426(the)s 7757(GNU)s
-8315(General)s 0 8753(Public)m 659(License)s 1453(as)s 1698(published)s
+8315(General)s 0 8755(Public)m 659(License)s 1453(as)s 1698(published)s
 2682(by)s 2971(the)s 3314(Free)s 3789(Softw)s 2(are)k
 4699(F)s 3(oundation;)k 5894(either)s 6492(v)s 3(ersion)k
 7245(2)s 7414(of)s 7680(the)s 8023(License,)s 8867(or)s
-0 8513(\(at)m 311(your)s 810(option\))s 1550(an)s 3(y)k
-1947(later)s 2430(v)s 3(ersion.)k 0 8105(This)m 476(program)s
+0 8515(\(at)m 311(your)s 810(option\))s 1550(an)s 3(y)k
+1947(later)s 2430(v)s 3(ersion.)k 0 8107(This)m 476(program)s
 1346(is)s 1556(distrib)s 4(uted)k 2632(in)s 2875(the)s
 3223(hope)s 3745(that)s 4163(it)s 4355(will)s 4781(be)s
-5063(useful,)s 5754(b)s 4(ut)k 240 fnt83 6116 8107(without)m
-6898(any)s 7300(warr)s 3(anty)k 240 fnt82 8171 8105(;)m
-8283(without)s 0 7864(e)m 6(v)k 3(en)k 500(the)s
+5063(useful,)s 5754(b)s 4(ut)k 240 fnt83 6116 8109(without)m
+6898(any)s 7300(warr)s 3(anty)k 240 fnt82 8171 8107(;)m
+8283(without)s 0 7866(e)m 6(v)k 3(en)k 500(the)s
 848(implied)s 1636(w)s 2(arranty)k 2537(of)s 240 fnt83
-2808 7866(mer)m 8(c)k 3(hantability)k 240 fnt82 4367 7864(or)m
-240 fnt83 4626 7866(\207tness)m 5279(for)s 5623(a)s 5798(particular)s
-6833(purpose)s 240 fnt82 7598 7864(.)m 7702(See)s 8103(the)s
-8451(GNU)s 0 7624(General)m 811(Public)s 1475(License)s 2274(for)s
-2612(more)s 3159(details.)s 0 7216(Y)m 26(ou)k 442(should)s
+2808 7868(mer)m 8(c)k 3(hantability)k 240 fnt82 4367 7866(or)m
+240 fnt83 4626 7868(\207tness)m 5279(for)s 5623(a)s 5798(particular)s
+6833(purpose)s 240 fnt82 7598 7866(.)m 7702(See)s 8103(the)s
+8451(GNU)s 0 7626(General)m 811(Public)s 1475(License)s 2274(for)s
+2612(more)s 3159(details.)s 0 7218(Y)m 26(ou)k 442(should)s
 1139(ha)s 4(v)k 3(e)k 1640(re)s 1821(cei)s 6(v)k 3(ed)k
 2494(a)s 2660(cop)s 2(y)k 3178(of)s 3449(the)s
 3797(GNU)s 4372(Gen)s 4768(er)s 4953(al)s 5180(Pub)s
 5546(lic)s 5837(Li)s 6043(cense)s 6630(along)s 7215(with)s
 gsave
-7697 7270 translate
+7697 7272 translate
 0.6953 1.0000 scale
 240 fnt31 0 -52(userv)m 
 grestore
 8197(;)s 8309(if)s 8526(not,)s
-0 6975(write)m 546(to)s 785(the)s 1133(Free)s 1613(Soft)s
+0 6977(write)m 546(to)s 785(the)s 1133(Free)s 1613(Soft)s
 2011(w)s 2(are)k 2529(F)s 3(oun)k 3016(da)s
 3242(tion,)s 3721(59)s 4012(T)s 16(em)k 4434(ple)s
 4782(Place)s 5355(-)s 5483(Suite)s 6030(330,)s 6497(Boston,)s
-7283(MA)s 7726(02111-1307,)s 0 6735(USA.)m 9066 610 0 610 240 240 60 0 5771 LoutGr2
+7283(MA)s 7726(02111-1307,)s 0 6737(USA.)m 9066 610 0 610 240 240 60 0 5773 LoutGr2
 newpath 0 ysize 0.3 ft sub moveto
 xsize 0 rlineto
 0 0.1 ft rlineto
@@ -350,33 +350,36 @@ grestore
 320 fnt84 0 6(0.3.)m
 628(Contents)s 
 grestore
-0 5477(1.)m 1200(Introduction)s 8962(3)s 0 5250(2.)m
-1200(Client)s 1844(program)s 2714(usage)s 8952(4)s 0 5013(2.1.)m
-1200(Options)s 8952(4)s 0 4776(2.2.)m 1200(Security-o)s 3(v)k 3(erriding)k
-3118(options)s 8958(7)s 0 4539(3.)m 1200(Ex)s 3(ecution)k
+0 5479(1.)m 1200(Introduction)s 8962(3)s 0 5252(2.)m
+1200(Client)s 1844(program)s 2714(usage)s 8952(4)s 0 5015(2.1.)m
+1200(Options)s 8952(4)s 0 4778(2.2.)m 1200(Security-o)s 3(v)k 3(erriding)k
+3118(options)s 8958(7)s 0 4541(3.)m 1200(Ex)s 3(ecution)k
 2224(en)s 9(vironment)k 3484(of)s 3755(the)s 4103(service)s
-4835(program)s 8959(8)s 0 4302(3.1.)m 1200(File)s 1627(descriptors)s
-8959(8)s 0 4065(3.2.)m 1200(En)s 9(vironment)k 8955(9)s
-0 3838(4.)m 1200(Service-side)s 2436(con\207guration)s 8831(10)s 0 3601(4.1.)m
-1200(Con\207guration)s 2587(\207le)s 2948(syntax)s 8831(10)s 0 3364(4.2.)m
+4835(program)s 8959(8)s 0 4304(3.1.)m 1200(File)s 1627(descriptors)s
+8959(8)s 0 4067(3.2.)m 1200(En)s 9(vironment)k 8955(9)s
+0 3840(4.)m 1200(Service-side)s 2436(con\207guration)s 8831(10)s 0 3603(4.1.)m
+1200(Con\207guration)s 2587(\207le)s 2948(syntax)s 8831(10)s 0 3366(4.2.)m
 1200(Con\207guration)s 2587(\207le)s 2948(directi)s 6(v)k 3(es)k
-8831(10)s 0 3127(4.2.1.)m 1200(Immediate)s 2277(directi)s 6(v)k 3(es)k
-8851(11)s 0 2900(4.2.2.)m 1200(Directi)s 6(v)k 3(es)k
-2223(with)s 2705(delayed)s 3507(ef)s 6(fect)k 8832(12)s
-0 2663(4.2.3.)m 1200(Control)s 1986(structure)s 2877(directi)s 6(v)k 3(es)k
-8832(12)s 0 2436(4.2.4.)m 1200(Directi)s 6(v)k 3(es)k
-2223(for)s 2561(changing)s 3492(e)s 3(x)k 3(ecution)k
-4473(settings)s 8832(14)s 0 2198(4.3.)m 1200(Errors)s 1847(in)s
-2090(the)s 2438(con\207guration)s 3771(\207le)s 8833(16)s 0 1960(4.4.)m
-1200(Def)s 2(aults)k 8833(16)s 0 1733(5.)m 1200(Information)s
-2398(passed)s 3094(through)s 3896(the)s 4244(client/daemon)s 5655(combination)s
-8839(18)s 0 1495(6.)m 1200(Applications)s 2473(and)s 2877(notes)s
-3433(on)s 3730(use)s 8831(20)s 0 1257(6.1.)m 1200(Standard)s
-2108(services)s 2928(and)s 3332(directory)s 4248(management)s 8831(20)s
-0 1019(6.2.)m 1200(Reducing)s 2171(the)s 2519(number)s 3310(of)s
-3581(absolutely)s 4618(pri)s 6(vile)k 3(ged)k 5636(subsystems)s
+8831(10)s 0 3128(4.3.)m 1200(Errors)s 1847(in)s 2090(the)s
+2438(con\207guration)s 3771(\207le)s 8833(16)s 0 2890(4.4.)m 1200(Def)s 2(aults)k
+8833(16)s 0 2663(5.)m 1200(Information)s 2398(passed)s 3094(through)s
+3896(the)s 4244(client/daemon)s 5655(combination)s 8839(18)s 0 2425(6.)m
+1200(Applications)s 2473(and)s 2877(notes)s 3433(on)s 3730(use)s
+8831(20)s 0 2187(6.1.)m 1200(Examples)s 8831(20)s 0 1949(6.2.)m
+1200(Standard)s 2108(services)s 2928(and)s 3332(directory)s 4248(management)s
+8831(20)s 0 1711(6.3.)m 1200(Reducing)s 2171(the)s 2519(number)s
+3310(of)s 3581(absolutely)s 4618(pri)s 6(vile)k 3(ged)k
+5636(subsystems)s 8831(20)s 0 1473(6.4.)m 1200(Do)s 1546(not)s
+1912(gi)s 6(v)k 3(e)k 2371(a)s 3(w)k 2(ay)k
+2925(e)s 3(xcessi)k 6(v)k 3(e)k 3885(pri)s 6(vile)k 3(ge)k
+4781(to)s gsave
+5020 1527 translate
+0.6953 1.0000 scale
+240 fnt31 0 -52(userv)m 
+grestore
+5520(-using)s 6171(f)s 2(acilities)k
 8831(20)s 0 52(User)m 511(service)s 1243(daemon)s 2058(and)s
-2462(client)s 3052(speci\207cation)s 8652(0.62)s 
+2462(client)s 3052(speci\207cation)s 8611(1.0.1)s 
 grestore
 
 grestore
@@ -414,37 +417,31 @@ gsave
 gsave
 0 LoutMargSet
 grestore
-240 fnt84 0 13842(2)m 240 fnt82 0 13253(6.3.)m 1200(Do)s
-1546(not)s 1912(gi)s 6(v)k 3(e)k 2371(a)s 3(w)k 2(ay)k
-2925(e)s 3(xcessi)k 6(v)k 3(e)k 3885(pri)s 6(vile)k 3(ge)k
-4781(to)s gsave
-5020 13307 translate
-0.6953 1.0000 scale
-240 fnt31 0 -52(userv)m 
-grestore
-5520(-using)s 6171(f)s 2(acilities)k
-8831(20)s 0 13015(6.4.)m gsave
-1200 13069 translate
+240 fnt84 0 13842(2)m 240 fnt82 0 13252(6.5.)m gsave
+1200 13306 translate
 0.6953 1.0000 scale
-240 fnt31 0 -52(userv)m 
+240 fnt31
+0 -52(userv)m 
 grestore
-1760(is)s
-1970(not)s 2336(a)s 2502(replacement)s 3729(for)s gsave
-4067 13069 translate
+1760(can)s 2149(often)s 2697(replace)s gsave
+3442 13306 translate
 0.6953 1.0000 scale
 240 fnt31
-0 -52(really)m 
+0 -52(sudo)m 
 grestore
-4727(and)s gsave
-5131 13069 translate
+3842(,)s 3949(b)s 4(ut)k 4311(not)s
+gsave
+4677 13306 translate
 0.6953 1.0000 scale
-240 fnt31 0 -52(sudo)m 
+240 fnt31 0 -52(really)m 
 grestore
-8851(21)s
-0 12776(6.5.)m 1200(Don')s 4(t)k 1814(gi)s 6(v)k 3(e)k
-2273(access)s 2934(to)s 3173(general-purpose)s 4769(utilities)s 8851(21)s
-0 52(0.62)m 4809(User)s 5320(service)s 6052(daemon)s 6867(and)s
-7271(client)s 7861(speci\207cation)s 
+8851(21)s 0 13014(6.6.)m 1200(Error)s
+1763(handling)s 2654(and)s 3058(input)s 3610(streams)s 4390(\(e)s 3(g)k
+4745(stdin\))s 8832(22)s 0 12776(6.7.)m 1200(Don')s 4(t)k
+1814(gi)s 6(v)k 3(e)k 2273(access)s 2934(to)s
+3173(general-purpose)s 4769(utilities)s 8832(22)s 0 52(1.0.1)m 4809(User)s
+5320(service)s 6052(daemon)s 6867(and)s 7271(client)s 7861(speci\207cation)s
+
 grestore
 
 grestore
@@ -530,7 +527,7 @@ grestore
 0 10002(with)m 482(each)s 977(other)s 1528(in)s 1771(an)s 3(y)k
 2168(une)s 3(xpected)k 3313(w)s 2(ays.)k 0 52(User)m
 511(service)s 1243(daemon)s 2058(and)s 2462(client)s 3052(speci\207cation)s
-8652(0.62)s 
+8611(1.0.1)s 
 grestore
 
 grestore
@@ -885,20 +882,20 @@ grestore
 240 fnt31
 0 -52(write)m 
 grestore
-1134 0 0 0 240 240 60 0 948 LoutGr2
+1134 0 0 0 240 240 60 0 947 LoutGr2
 0 0 moveto xsize 0 lineto stroke
 grestore
 
 grestore
-122 fnt82 0 753(1)m gsave
-58 726 translate
+122 fnt82 0 752(1)m gsave
+58 725 translate
 0.6953 1.0000 scale
 192 fnt31 0 -42(userv)m
 
 grestore
-192 fnt82 505 683(is)m 673(short)s 1103(for)s 1373(`user)s
+192 fnt82 505 682(is)m 673(short)s 1103(for)s 1373(`user)s
 1802(services',)s 2566(and)s 2890(is)s 3058(pronounced)s 4010(`you-serv)s 2(e'.)k
-240 fnt82 0 52(0.62)m 4809(User)s 5320(service)s 6052(daemon)s
+240 fnt82 0 52(1.0.1)m 4809(User)s 5320(service)s 6052(daemon)s
 6867(and)s 7271(client)s 7861(speci\207cation)s 
 grestore
 
@@ -1380,7 +1377,7 @@ grestore
 5015(the)s 5358(speci\207ed)s 6261(\207le)s 6616(descriptor;)s 240 fnt83
 7678 835(action)m 240 fnt82 8325 833(must)m 8844(be)s 0 52(User)m
 511(service)s 1243(daemon)s 2058(and)s 2462(client)s 3052(speci\207cation)s
-8652(0.62)s 
+8611(1.0.1)s 
 grestore
 
 grestore
@@ -1722,7 +1719,7 @@ grestore
 1693(calling)s 2396(process')s 13(s)k 3323(current)s 4059(directory)s
 4975(name)s 5549(from)s 6073(being)s 6658(passed)s 7354(to)s
 7593(the)s 7941(service;)s 8729(the)s 480 956(null)m 907(string)s
-1504(will)s 1930(be)s 2212(passed)s 2908(instead.)s 0 52(0.62)m
+1504(will)s 1930(be)s 2212(passed)s 2908(instead.)s 0 52(1.0.1)m
 4809(User)s 5320(service)s 6052(daemon)s 6867(and)s 7271(client)s
 7861(speci\207cation)s 
 grestore
@@ -1935,7 +1932,7 @@ grestore
 7954(the)s 8302(service)s 480 5072(user)m 938(will)s 1364(be)s
 1646(the)s 1994(real)s 2406(calling)s 3109(user)s 13(.)k
 0 52(User)m 511(service)s 1243(daemon)s 2058(and)s 2462(client)s
-3052(speci\207cation)s 8652(0.62)s 
+3052(speci\207cation)s 8611(1.0.1)s 
 grestore
 
 grestore
@@ -2192,7 +2189,7 @@ grestore
 8175(for)s 8513(the)s 0 864(rele)m 6(v)k 6(ant)k
 817(\207le)s 1178(descriptor)s 2193(in)s 2436(the)s 2784(client')s 13(s)k
 3524(ar)s 4(guments.)k 4620(By)s 4954(def)s 2(ault)k
-5675(writing)s 6418(\207ledescriptors)s 7822(remain)s 8542(open)s 0 52(0.62)m
+5675(writing)s 6418(\207ledescriptors)s 7822(remain)s 8542(open)s 0 52(1.0.1)m
 4809(User)s 5320(service)s 6052(daemon)s 6867(and)s 7271(client)s
 7861(speci\207cation)s 
 grestore
@@ -2419,7 +2416,7 @@ grestore
 3671(be)s 3953(set)s 4278(appropriately)s 5606(\(according)s 6681(to)s
 6920(the)s 7268(details)s 7942(of)s 8213(the)s 0 5083(service)m
 732(user\).)s 0 52(User)m 511(service)s 1243(daemon)s 2058(and)s
-2462(client)s 3052(speci\207cation)s 8652(0.62)s 
+2462(client)s 3052(speci\207cation)s 8611(1.0.1)s 
 grestore
 
 grestore
@@ -2670,7 +2667,7 @@ grestore
 628(Con\207guration)s 2618(\207le)s 3100(dir)s 5(ecti)k 3(v)k 3(es)k
 
 grestore
-0 52(0.62)m 4809(User)s 5320(service)s 6052(daemon)s 6867(and)s
+0 52(1.0.1)m 4809(User)s 5320(service)s 6052(daemon)s 6867(and)s
 7271(client)s 7861(speci\207cation)s 
 grestore
 
@@ -3039,7 +3036,7 @@ grestore
 3653(all)s 3941(the)s 4284(characters)s 5298(until)s 5786(the)s
 6129(end)s 6528(of)s 6794(the)s 7137(line)s 7546(will)s
 7967(be)s 8244(included)s 0 52(User)m 511(service)s 1243(daemon)s
-2058(and)s 2462(client)s 3052(speci\207cation)s 8652(0.62)s 
+2058(and)s 2462(client)s 3052(speci\207cation)s 8611(1.0.1)s 
 grestore
 
 grestore
@@ -3345,7 +3342,7 @@ grestore
 240 fnt82 2252 810(refers)m 2845(to)s 3084(a)s 3250(\207le)s
 3611(one)s 4013(of)s 4284(whose)s 4952(lines)s 5454(is)s
 5664(the)s 6012(v)s 6(alue)k 6580(of)s 6851(the)s
-7199(parameter)s 8213(\(leading)s 0 52(0.62)m 4809(User)s 5320(service)s
+7199(parameter)s 8213(\(leading)s 0 52(1.0.1)m 4809(User)s 5320(service)s
 6052(daemon)s 6867(and)s 7271(client)s 7861(speci\207cation)s 
 grestore
 
@@ -3690,7 +3687,7 @@ grestore
 
 grestore
 8490(after)s 0 52(User)m 511(service)s 1243(daemon)s 2058(and)s
-2462(client)s 3052(speci\207cation)s 8652(0.62)s 
+2462(client)s 3052(speci\207cation)s 8611(1.0.1)s 
 grestore
 
 grestore
@@ -3992,7 +3989,7 @@ grestore
 240 fnt31
 0 -52(catch\211quit)m 
 grestore
-5645(\).)s 0 52(0.62)m 4809(User)s 5320(service)s
+5645(\).)s 0 52(1.0.1)m 4809(User)s 5320(service)s
 6052(daemon)s 6867(and)s 7271(client)s 7861(speci\207cation)s 
 grestore
 
@@ -4062,119 +4059,107 @@ grestore
 960 11584(Displays)m 1848(a)s 2014(list)s
 2365(of)s 2636(the)s 2984(understood)s 4106(b)s 4(uiltin)k
 4783(service)s 5515(names)s 6177(and)s 6581(ar)s 4(guments.)k
+480 11321(In)m 736(the)s 1084(fu)s 1278(ture)s 1705(oth)s
+2008(er)s 2253(b)s 4(uiltin)k 2930(ser)s 3208(vices)s
+3750(may)s 4216(be)s 4498(de)s 4720(\207ned)s 5257(which)s
+5899(do)s 6192(more)s 6739(than)s 7208(just)s 7613(print)s
+8124(in)s 8307(for)s 8585(-)s 480 11081(ma)m 772(tion.)s
 gsave
-600 11398 translate
-0.6953 1.0000 scale
-240 fnt31 0 -52(shutdown)m 
-grestore
-960 11104(Arranges)m 1876(for)s 2203(the)s
-gsave
-2540 11158 translate
+120 10791 translate
 0.6953 1.0000 scale
-240 fnt31 0 -52(uservd)m 
-grestore
-3189(to)s 3417(shut)s 3865(do)s 6(wn.)k
-4485(A)s 17(v)k 6(ailable)k 5435(only)s 5904(when)s
-6469(the)s 6806(service)s 7527(user)s 7974(is)s 8173(root.)s
-8650(This)s 960 10864(only)m 1440(af)s 6(fects)k 2120(ne)s 6(w)k
-2567(requests;)s 3462(it)s 3654(doesn')s 4(t)k 4414(terminate)s
-5371(an)s 3(y)k 5768(currently-running)s 7507(requests)s gsave
-120 10476 translate
-0.6953 1.0000 scale
-240 fnt31
-0 -52(set\211environment)m 
+240 fnt31 0 -52(set\211environment)m 
 grestore
 gsave
-120 10236 translate
+120 10551 translate
 0.6953 1.0000 scale
 240 fnt31 0 -52(no\211set\211environment)m 
 grestore
-480 9942(Runs)m gsave
-1024 9996 translate
+480 10257(Runs)m
+gsave
+1024 10311 translate
 0.6953 1.0000 scale
-240 fnt31
-0 -52(/etc/environment)m 
+240 fnt31 0 -52(/etc/environment)m 
 grestore
-2686(to)s 2925(set)s 3250(the)s 3598(service)s
-4330(user')s 13(s)k 4938(en)s 9(vironment.)k 6242(This)s
-6718(adds)s 7208(the)s 7556(o)s 3(v)k 3(erhead)k
-8485(of)s 480 9702(in)m 9(v)k 4(oking)k 1372(a)s
+2686(to)s 2925(set)s 3250(the)s
+3598(service)s 4330(user')s 13(s)k 4938(en)s 9(vironment.)k
+6242(This)s 6718(adds)s 7208(the)s 7556(o)s 3(v)k 3(erhead)k
+8485(of)s 480 10017(in)m 9(v)k 4(oking)k 1372(a)s
 1538(shell,)s 2096(b)s 4(ut)k 2458(doesn')s 4(t)k
 3218(cause)s 3805(an)s 3(y)k 4202(shell)s 4708(\(de\)mangling)s
 6049(of)s 6320(the)s 6668(service')s 13(s)k 7554(ar)s 4(guments.)k
-8650(This)s 480 9462(is)m 690(achie)s 6(v)k 3(ed)k
+8650(This)s 480 9777(is)m 690(achie)s 6(v)k 3(ed)k
 1589(by)s 1883(in)s 9(v)k 4(oking)k gsave
-960 9276 translate
+960 9591 translate
 0.6953 1.0000 scale
 240 fnt31
 0 -52(.../program)m 1728(arg)s 2304(arg)s 2880(arg)s 3456(\202)s
 
 grestore
-480 9031(as)m gsave
-960 8845 translate
+480 9346(as)m gsave
+960 9160 translate
 0.6953 1.0000 scale
 240 fnt31 0 -52(/bin/sh)m 1152(\211c)s 1584('.)s
 2016(/etc/environment;)s 4608(exec)s 5328("$@"')s 6192(\211)s 6480(.../program)s
 8208(arg)s 8784(arg)s 9360(arg)s 9936(\202)s 
 grestore
 gsave
-480 8601 translate
+480 8916 translate
 0.6953 1.0000 scale
 240 fnt31
 0 -52(no\211set\211environment)m 
 grestore
-2342 8547(cancels)m 3096(the)s 3444(ef)s 6(fect)k
+2342 8862(cancels)m 3096(the)s 3444(ef)s 6(fect)k
 4040(of)s gsave
-4311 8601 translate
+4311 8916 translate
 0.6953 1.0000 scale
 240 fnt31 0 -52(set\211environment)m 
 grestore
 5812(.)s gsave
-120 8257 translate
+120 8572 translate
 0.6953 1.0000 scale
 240 fnt31
 0 -52(no\211suppress\211args)m 
 grestore
 gsave
-120 8017 translate
+120 8332 translate
 0.6953 1.0000 scale
 240 fnt31 0 -52(suppress\211args)m 
 grestore
-480 7723(Include)m 1253(an)s 3(y)k
+480 8038(Include)m 1253(an)s 3(y)k
 1650(ar)s 4(guments)k 2693(gi)s 6(v)k 3(en)k
 3273(to)s 3512(the)s 3860(client)s 4450(as)s 4700(ar)s 4(guments)k
 5743(to)s 5982(the)s 6330(program)s 7200(in)s 9(v)k 4(ok)k 2(ed)k
-8015(as)s 8265(a)s 8431(result)s 480 7483(of)m 749(an)s
+8015(as)s 8265(a)s 8431(result)s 480 7798(of)m 749(an)s
 gsave
-1030 7537 translate
+1030 7852 translate
 0.6953 1.0000 scale
 240 fnt31 0 -52(execute)m 
 grestore
 1730(,)s gsave
-1834 7537 translate
+1834 7852 translate
 0.6953 1.0000 scale
 240 fnt31 0 -52(execute\211from\211directory)m
 
 grestore
 4094(or)s gsave
-4351 7537 translate
+4351 7852 translate
 0.6953 1.0000 scale
 240 fnt31 0 -52(execute\211from\211path)m 
 grestore
 6110(directi)s 6(v)k 3(e.)k
 gsave
-7038 7537 translate
+7038 7852 translate
 0.6953 1.0000 scale
 240 fnt31 0 -52(suppress\211args)m 
 grestore
-8396(undoes)s 480 7243(the)m 828(ef)s 6(fect)k
+8396(undoes)s 480 7558(the)m 828(ef)s 6(fect)k
 1424(of)s gsave
-1695 7297 translate
+1695 7612 translate
 0.6953 1.0000 scale
 240 fnt31 0 -52(no\211suppress\211args)m 
 grestore
 3297(.)s gsave
-120 6922 translate
+120 7237 translate
 0.6953 1.0000 scale
 240 fnt31
 0 -52(require\211fd)m gsave
@@ -4185,135 +4170,135 @@ grestore
 grestore
 2940(read|write)s 
 grestore
-480 6623(In)m 676(sist)s 1054(that)s 1472(the)s
+480 6938(In)m 676(sist)s 1054(that)s 1472(the)s
 1820(\207ledescrip)s 2808(tor\(s\))s 3373(be)s 3655(opened)s 4405(for)s
 4743(read)s 5152(ing)s 5511(resp.)s 6013(writ)s 6397(ing.)s
 6807(It)s 7012(is)s 7222(an)s 7505(er)s 7690(ror)s
 8028(if)s 8245(an)s 3(y)k 8642(de)s 8864(-)s
-480 6383(scrip)m 937(tor)s 1258(mark)s 2(ed)k 2027(as)s
+480 6698(scrip)m 937(tor)s 1258(mark)s 2(ed)k 2027(as)s
 2272(re)s 2453(quired)s 3118(when)s 3689(the)s 4033(ser)s
 4311(vice)s 4760(is)s 4966(about)s 5554(to)s 5788(be)s
 6066(in)s 6249(v)s 4(ok)k 2(ed)k 6882(\(af)s
 7158(ter)s 7465(the)s 7808(con)s 8151(\207g)s 8397(u)s
-8512(ra)s 8697(tion)s 480 6143(has)m 850(been)s 1359(parsed\))s
+8512(ra)s 8697(tion)s 480 6458(has)m 850(been)s 1359(parsed\))s
 2111(w)s 2(as)k 2532(not)s 2898(spec)s 3316(i)s
 3376(\207ed)s 3793(when)s 4369(the)s 4717(client)s 5307(w)s 2(as)k
 5728(in)s 5911(v)s 4(ok)k 2(ed.)k 6595(Each)s
 7130(\207le)s 7491(de)s 7713(scrip)s 8170(tor)s 8495(has)s
-480 5903(a)m 646(sep)s 958(a)s 1064(rate)s 1477(set)s
+480 6218(a)m 646(sep)s 958(a)s 1064(rate)s 1477(set)s
 1742(ting,)s 2221(and)s 2625(the)s 2973(last)s 3364(one)s
 3766(of)s gsave
-4037 5957 translate
+4037 6272 translate
 0.6953 1.0000 scale
 240 fnt31 0 -52(require\211fd)m 
 grestore
 5038(,)s gsave
-5145 5957 translate
+5145 6272 translate
 0.6953 1.0000 scale
 240 fnt31
 0 -52(allow\211fd)m 
 grestore
 5946(,)s gsave
-6053 5957 translate
+6053 6272 translate
 0.6953 1.0000 scale
 240 fnt31 0 -52(ignore\211fd)m 
 grestore
 6954(,)s
 gsave
-7061 5957 translate
+7061 6272 translate
 0.6953 1.0000 scale
 240 fnt31 0 -52(null\211fd)m 
 grestore
 7821(or)s gsave
-8080 5957 translate
+8080 6272 translate
 0.6953 1.0000 scale
 240 fnt31 0 -52(reject\211fd)m
 
 grestore
-480 5662(which)m 1122(af)s 1319(fect)s 1676(ed)s 1960(a)s
+480 5977(which)m 1122(af)s 1319(fect)s 1676(ed)s 1960(a)s
 2126(par)s 2431(tic)s 2662(u)s 2777(lar)s 3088(\207le)s
 3449(de)s 3671(scrip)s 4128(tor)s 4453(will)s 4879(tak)s 2(e)k
-5331(ef)s 5528(fect.)s 240 fnt83 6049 5664(fd-)m 6302(r)s 3(ang)k 2(e)k
-240 fnt82 6909 5662(may)m 7375(be)s 7657(a)s 7823(sin)s
-8099(gle)s 8447(num)s 8873(-)s 480 5422(ber)m 9(,)k
+5331(ef)s 5528(fect.)s 240 fnt83 6049 5979(fd-)m 6302(r)s 3(ang)k 2(e)k
+240 fnt82 6909 5977(may)m 7375(be)s 7657(a)s 7823(sin)s
+8099(gle)s 8447(num)s 8873(-)s 480 5737(ber)m 9(,)k
 883(tw)s 2(o)k 1293(num)s 1719(bers)s 2168(sep)s
 2480(a)s 2586(rat)s 2837(ed)s 3121(by)s 3415(a)s
 3581(h)s 1(y)k 3814(phen,)s 4387(or)s 4646(one)s
 5048(num)s 5474(ber)s 5839(fol)s 6099(lo)s 6(wed)k
 6736(by)s 7030(a)s 7196(h)s 1(y)k 7429(phen)s
-7952(\(in)s 8214(di)s 8394(cat)s 8672(ing)s 480 5182(all)m
+7952(\(in)s 8214(di)s 8394(cat)s 8672(ing)s 480 5497(all)m
 772(de)s 994(scrip)s 1451(tors)s 1858(from)s 2380(that)s
 2796(num)s 3222(ber)s 3585(on)s 3822(w)s 2(ards\).)k
 4573(It)s 4776(may)s 5240(also)s 5676(be)s 5956(one)s
 6357(of)s 6626(the)s 6972(w)s 2(ords)k gsave
-7604 5236 translate
+7604 5551 translate
 0.6953 1.0000 scale
 240 fnt31
 0 -52(stdin)m 
 grestore
 8104(,)s gsave
-8209 5236 translate
+8209 5551 translate
 0.6953 1.0000 scale
 240 fnt31 0 -52(stdout)m 
 grestore
 8867(or)s
 gsave
-480 4996 translate
+480 5311 translate
 0.6953 1.0000 scale
 240 fnt31 0 -52(stderr)m 
 grestore
-1080 4942(.)m 1174(Open-)s 1761(ended)s
+1080 5257(.)m 1174(Open-)s 1761(ended)s
 2380(\207le)s 2730(de)s 2952(scrip)s 3409(tor)s 3723(rangers)s
 4466(are)s 4802(al)s 4969(lo)s 6(wed)k 5596(only)s
 6065(with)s gsave
-6536 4996 translate
+6536 5311 translate
 0.6953 1.0000 scale
 240 fnt31 0 -52(reject\211fd)m 
 grestore
 7486(and)s gsave
-7879 4996 translate
+7879 5311 translate
 0.6953 1.0000 scale
 240 fnt31
 0 -52(ignore\211fd)m 
 grestore
-8780(,)s 8876(as)s 480 4702(oth)m 783(er)s
+8780(,)s 8876(as)s 480 5017(oth)m 783(er)s
 968(wise)s 1457(the)s 1799(ser)s 2077(vice)s 2526(pro)s
 2838(gram)s 3383(w)s 2(ould)k 4033(\207nd)s 4458(it)s
 4590(self)s 5001(with)s 5477(a)s 5638(v)s 3(ery)k
 6108(lar)s 4(ge)k 6632(num)s 7058(ber)s 7417(of)s
-7683(\207le)s 8038(de)s 8260(scrip)s 8717(tors)s 480 4462(open.)m
+7683(\207le)s 8038(de)s 8260(scrip)s 8717(tors)s 480 4777(open.)m
 1090(When)s 1699(the)s 2027(con)s 2370(\207g)s 2616(u)s
 2731(ra)s 2916(tion)s 3325(has)s 3674(been)s 4163(parsed,)s
 4874(and)s 5258(be)s 5480(fore)s 5900(the)s 6227(ser)s
 6505(vice)s 6939(is)s 7129(about)s 7701(to)s 7920(be)s
 8181(e)s 3(x)k 8399(e)s 8501(cut)s 8793(ed,)s
-480 4222(stderr)m 1083(\(fd)s 1418(2\))s 1665(must)s 2189(be)s
+480 4537(stderr)m 1083(\(fd)s 1418(2\))s 1665(must)s 2189(be)s
 2470(re)s 2651(quired)s 3320(or)s 3578(al)s 3745(lo)s 6(wed)k
 4381(\()s gsave
-4454 4276 translate
+4454 4591 translate
 0.6953 1.0000 scale
 240 fnt31 0 -52(require\211fd)m 
 grestore
 5514(or)s gsave
-5772 4276 translate
+5772 4591 translate
 0.6953 1.0000 scale
 240 fnt31
 0 -52(allow\211fd)m 
 grestore
 6573(\))s 6701(for)s 7038(writ)s 7422(ing;)s
-7839(this)s 8234(is)s 8443(so)s 8708(that)s 480 3982(the)m
+7839(this)s 8234(is)s 8443(so)s 8708(that)s 480 4297(the)m
 825(er)s 1010(ror)s 1345(mes)s 1721(sage)s 2198(print)s
 2649(ed)s 2930(by)s 3220(the)s 3565(serv)s 3958(er')s 13(s)k
 4350(child)s 4882(pro)s 5194(cess)s 5640(if)s 5853(it)s
 6042(can)s 6371(not)s gsave
-6734 4036 translate
+6734 4351 translate
 0.6953 1.0000 scale
 240 fnt31 0 -52(exec)m 
 grestore
 7190(the)s
-7535(ser)s 7813(vice)s 8263(pro)s 8575(gram)s 480 3742(is)m
+7535(ser)s 7813(vice)s 8263(pro)s 8575(gram)s 480 4057(is)m
 690(not)s 1056(lost.)s gsave
-120 3452 translate
+120 3767 translate
 0.6953 1.0000 scale
 240 fnt31 0 -52(allow\211fd)m gsave
 1296 0 translate
@@ -4323,45 +4308,45 @@ grestore
 grestore
 2652([read|write])s 
 grestore
-480 3153(Allo)m 6(w)k
+480 3468(Allo)m 6(w)k
 1126(the)s 1474(descriptor\(s\))s 2729(to)s 2968(be)s 3250(opened)s
 4000(for)s 4338(reading)s 5108(resp.)s 5610(writing,)s 6407(or)s
 6666(either)s 7269(if)s 7486(neither)s gsave
-8209 3207 translate
+8209 3522 translate
 0.6953 1.0000 scale
 240 fnt31 0 -52(read)m
 
 grestore
 8669(nor)s gsave
-480 2967 translate
+480 3282 translate
 0.6953 1.0000 scale
 240 fnt31 0 -52(write)m 
 grestore
-1040 2913(is)m 1250(speci\207ed.)s
+1040 3228(is)m 1250(speci\207ed.)s
 2204(If)s 2434(a)s 2600(particular)s 3574(descriptor)s 4589(not)s
 4955(speci\207ed)s 5863(by)s 6157(the)s 6505(client)s 7095(then)s
-7564(it)s 7756(will)s 8182(be)s 8464(open)s 480 2673(onto)m
+7564(it)s 7756(will)s 8182(be)s 8464(open)s 480 2988(onto)m
 gsave
-959 2727 translate
+959 3042 translate
 0.6953 1.0000 scale
 240 fnt31 0 -52(/dev/null)m 
 grestore
 1920(\(for)s 2337(reading,)s 3161(writing,)s
 3958(or)s 4217(both,)s 4750(depending)s 5801(on)s 6098(whether)s
 gsave
-6928 2727 translate
+6928 3042 translate
 0.6953 1.0000 scale
 240 fnt31 0 -52(read)m 
 grestore
 7328(,)s gsave
-7435 2727 translate
+7435 3042 translate
 0.6953 1.0000 scale
 240 fnt31 0 -52(write)m
 
 grestore
-7995(or)s 8254(neither)s 480 2433(w)m 2(as)k 901(speci\207ed\).)s
+7995(or)s 8254(neither)s 480 2748(w)m 2(as)k 901(speci\207ed\).)s
 gsave
-120 2093 translate
+120 2408 translate
 0.6953 1.0000 scale
 240 fnt31 0 -52(null\211fd)m gsave
 1152 0 translate
@@ -4371,23 +4356,23 @@ gsave
 grestore
 2508([read|write])s 
 grestore
-480 1794(Spec)m 938(i)s 998(fy)s 1251(that)s
+480 2109(Spec)m 938(i)s 998(fy)s 1251(that)s
 1669(the)s 2017(de)s 2239(scrip)s 2696(tor\(s\))s 3261(be)s
 3543(opened)s 4293(onto)s gsave
-4772 1848 translate
+4772 2163 translate
 0.6953 1.0000 scale
 240 fnt31 0 -52(/dev/null)m 
 grestore
 5733(for)s
 6071(read)s 6480(ing)s 6839(resp.)s 7341(writ)s 7725(ing,)s
-8138(or)s 8397(both)s 8880(if)s 480 1554(nei)m 766(ther)s
+8138(or)s 8397(both)s 8880(if)s 480 1869(nei)m 766(ther)s
 gsave
-1181 1608 translate
+1181 1923 translate
 0.6953 1.0000 scale
 240 fnt31 0 -52(read)m 
 grestore
 1624(nor)s gsave
-1986 1608 translate
+1986 1923 translate
 0.6953 1.0000 scale
 240 fnt31 0 -52(write)m
 
@@ -4396,13 +4381,13 @@ grestore
 4093(spec)s 4511(i)s 4571(\207)s 4696(ca)s 4908(tion)s
 5320(of)s 5574(these)s 6104(\207le)s 6448(de)s 6670(scrip)s
 7127(tors)s 7519(by)s 7796(the)s 8127(client)s 8700(will)s
-480 1314(be)m 762(silent)s 1279(ly)s 1519(ig)s 1698(nored;)s
+480 1629(be)m 762(silent)s 1279(ly)s 1519(ig)s 1698(nored;)s
 2355(the)s 2703(client)s 3293(will)s 3719(see)s 4080(its)s
 4356(ends)s 4846(of)s 5117(the)s 5465(de)s 5687(scrip)s
 6144(tors)s 6553(be)s 6775(ing)s 7134(closed)s 7803(im)s
 8055(me)s 8343(di)s 8523(ate)s 8797(ly)s 15(.)k
 gsave
-120 974 translate
+120 1289 translate
 0.6953 1.0000 scale
 240 fnt31 0 -52(reject\211fd)m gsave
 1440 0 translate
@@ -4412,8 +4397,15 @@ gsave
 grestore
 
 grestore
-0 52(User)m 511(service)s 1243(daemon)s 2058(and)s 2462(client)s
-3052(speci\207cation)s 8652(0.62)s 
+480 995(Do)m 824(not)s 1187(allo)s 6(w)k 1764(the)s
+2109(descriptor\(s\))s 3362(to)s 3598(be)s 3878(speci\207ed)s 4783(by)s
+5075(the)s 5420(client.)s 6052(It)s 6254(is)s 6462(an)s
+6742(error)s 7263(if)s 7477(an)s 3(y)k 7871(descriptor\(s\))s
+480 755(mark)m 2(ed)k 1253(for)s 1591(rejection)s 2483(are)s
+2830(speci\207ed)s 3738(when)s 4314(the)s 4662(service)s 5394(is)s
+5604(about)s 6196(to)s 6435(be)s 6717(in)s 9(v)k 4(ok)k 2(ed)k
+7532(\(after)s 8107(the)s 0 52(User)m 511(service)s 1243(daemon)s
+2058(and)s 2462(client)s 3052(speci\207cation)s 8611(1.0.1)s 
 grestore
 
 grestore
@@ -4452,133 +4444,125 @@ gsave
 gsave
 0 LoutMargSet
 grestore
-240 fnt84 0 13842(16)m 240 fnt82 480 13251(Do)m 824(not)s
-1187(allo)s 6(w)k 1764(the)s 2109(descriptor\(s\))s 3362(to)s
-3598(be)s 3878(speci\207ed)s 4783(by)s 5075(the)s 5420(client.)s
-6052(It)s 6254(is)s 6462(an)s 6742(error)s 7263(if)s
-7477(an)s 3(y)k 7871(descriptor\(s\))s 480 13011(mark)m 2(ed)k
-1253(for)s 1591(rejection)s 2483(are)s 2830(speci\207ed)s 3738(when)s
-4314(the)s 4662(service)s 5394(is)s 5604(about)s 6196(to)s
-6435(be)s 6717(in)s 9(v)k 4(ok)k 2(ed)k
-7532(\(after)s 8107(the)s 480 12771(con\207guration)m 1813(has)s 2183(been)s
-2692(parsed\).)s gsave
-120 12431 translate
+240 fnt84 0 13842(16)m 240 fnt82 480 13251(con\207guration)m 1813(has)s
+2183(been)s 2692(parsed\).)s gsave
+120 12911 translate
 0.6953 1.0000 scale
 240 fnt31 0 -52(ignore\211fd)m gsave
 1440 0 translate
 1.4219 1.0000 scale
-240 fnt83 0 -52(fd\211r)m 3(ang)k 2(e)k
-
+240 fnt83
+0 -52(fd\211r)m 3(ang)k 2(e)k 
 grestore
 
 grestore
-480 12137(Silent)m 1037(ly)s 1260(ig)s 1439(nore)s 1902(an)s 3(y)k
-2281(spec)s 2699(i)s 2759(\207)s 2884(ca)s 3096(tion)s
-3507(by)s 3783(the)s 4113(client)s 4685(of)s 4938(those)s
-5481(de)s 5703(scrip)s 6160(tor\(s\).)s 6762(The)s 7172(pipes)s
-7710(cor)s 8015(re)s 8196(spond)s 8767(ing)s 480 11897(to)m
-719(these)s 1266(de)s 1488(scrip)s 1945(tors)s 2354(will)s
-2780(be)s 3062(closed)s 3731(just)s 4136(be)s 4358(fore)s
-4798(the)s 5146(ser)s 5424(vice)s 5878(is)s 6088(in)s
-6271(v)s 4(ok)k 2(ed.)k gsave
-120 11557 translate
+480 12617(Silent)m 1037(ly)s
+1260(ig)s 1439(nore)s 1902(an)s 3(y)k 2281(spec)s
+2699(i)s 2759(\207)s 2884(ca)s 3096(tion)s 3507(by)s
+3783(the)s 4113(client)s 4685(of)s 4938(those)s 5481(de)s
+5703(scrip)s 6160(tor\(s\).)s 6762(The)s 7172(pipes)s 7710(cor)s
+8015(re)s 8196(spond)s 8767(ing)s 480 12377(to)m 719(these)s
+1266(de)s 1488(scrip)s 1945(tors)s 2354(will)s 2780(be)s
+3062(closed)s 3731(just)s 4136(be)s 4358(fore)s 4798(the)s
+5146(ser)s 5424(vice)s 5878(is)s 6088(in)s 6271(v)s 4(ok)k 2(ed.)k
+gsave
+120 12037 translate
 0.6953 1.0000 scale
-240 fnt31 0 -52(disconnect\211hup)m
-
+240 fnt31 0 -52(disconnect\211hup)m 
 grestore
 gsave
-120 11317 translate
+120 11797 translate
 0.6953 1.0000 scale
 240 fnt31 0 -52(no\211disconnect\211hup)m 
 grestore
-480 11023(Caus)m 950(es)s 1200(the)s
-1548(ser)s 1826(vice')s 13(s)k 2434(pro)s 2746(cess)s
-3195(group)s 3807(to)s 4046(get)s 4398(a)s gsave
-4564 11077 translate
+480 11503(Caus)m
+950(es)s 1200(the)s 1548(ser)s 1826(vice')s 13(s)k
+2434(pro)s 2746(cess)s 3195(group)s 3807(to)s 4046(get)s
+4398(a)s gsave
+4564 11557 translate
 0.6953 1.0000 scale
-240 fnt31
-0 -52(SIGHUP)m 
+240 fnt31 0 -52(SIGHUP)m 
 grestore
-5224(if)s 5441(the)s 5789(client)s 6379(dis)s
-6649(con)s 6992(nects)s 7534(be)s 7756(fore)s 8196(the)s
-8544(main)s 480 10783(ser)m 758(vice)s 1209(pro)s 1521(cess)s
-1966(ter)s 2217(mi)s 2463(nates.)s gsave
-3055 10837 translate
+5224(if)s 5441(the)s
+5789(client)s 6379(dis)s 6649(con)s 6992(nects)s 7534(be)s
+7756(fore)s 8196(the)s 8544(main)s 480 11263(ser)m 758(vice)s
+1209(pro)s 1521(cess)s 1966(ter)s 2217(mi)s 2463(nates.)s
+gsave
+3055 11317 translate
 0.6953 1.0000 scale
-240 fnt31 0 -52(no\211disconnect\211hup)m
-
+240 fnt31 0 -52(no\211disconnect\211hup)m 
 grestore
 4813(can)s 5142(cels)s gsave
-5560 10837 translate
+5560 11317 translate
 0.6953 1.0000 scale
-240 fnt31 0 -52(disconnect\211hup)m 
-grestore
-6961(.)s
-7122(If)s 7348(one)s 7747(of)s 8014(the)s 8358(read)s
-8767(ing)s 480 10543(de)m 702(scrip)s 1159(tors)s 1568(spec)s
-1986(i)s 2046(\207ed)s 2463(when)s 3039(the)s 3387(client)s
-3977(is)s 4187(called)s 4815(gets)s 5251(a)s 5417(read)s
-5886(er)s 6071(ror)s 9(,)k 6447(or)s 6706(if)s
-6923(the)s 7271(ser)s 7549(vice)s 8003(is)s 8213(dis)s
-8483(con)s 8826(-)s 480 10302(nect)m 878(ed)s 1162(for)s
-1500(some)s 2061(oth)s 2364(er)s 2609(rea)s 2900(son,)s
-3340(then)s 3809(the)s gsave
-4157 10356 translate
+240 fnt31
+0 -52(disconnect\211hup)m 
+grestore
+6961(.)s 7122(If)s 7348(one)s 7747(of)s
+8014(the)s 8358(read)s 8767(ing)s 480 11023(de)m 702(scrip)s
+1159(tors)s 1568(spec)s 1986(i)s 2046(\207ed)s 2463(when)s
+3039(the)s 3387(client)s 3977(is)s 4187(called)s 4815(gets)s
+5251(a)s 5417(read)s 5886(er)s 6071(ror)s 9(,)k
+6447(or)s 6706(if)s 6923(the)s 7271(ser)s 7549(vice)s
+8003(is)s 8213(dis)s 8483(con)s 8826(-)s 480 10782(nect)m
+878(ed)s 1162(for)s 1500(some)s 2061(oth)s 2364(er)s
+2609(rea)s 2900(son,)s 3340(then)s 3809(the)s gsave
+4157 10836 translate
 0.6953 1.0000 scale
-240 fnt31 0 -52(SIGHUP)m 
+240 fnt31
+0 -52(SIGHUP)m 
 grestore
-4817(will)s
-5243(be)s 5525(de)s 5747(li)s 6(v)k 5988(ered)s
-240 fnt83 6457 10304(be)m 6676(for)s 8(e)k 240 fnt82
-7106 10302(the)m 7454(writ)s 7838(ing)s 8197(end\(s\))s 8843(of)s
-480 10062(the)m 818(ser)s 1096(vice')s 13(s)k 1694(read)s
-2103(ing)s 2452(pipe\(s\))s 3154(are)s 3491(closed,)s 4199(so)s
-4455(that)s 4863(the)s 5201(client)s 5781(can)s 6160(dis)s
-6430(tin)s 6679(guish)s 7245(dis)s 7515(con)s 7858(nec)s
-8183(tion)s 8602(from)s 480 9822(read)m 889(ing)s 1248(EOF)s
-1758(on)s 2055(a)s 2221(pipe.)s gsave
-120 9482 translate
+4817(will)s 5243(be)s 5525(de)s 5747(li)s 6(v)k
+5988(ered)s 240 fnt83 6457 10784(be)m 6676(for)s 8(e)k
+240 fnt82 7106 10782(the)m 7454(writ)s 7838(ing)s 8197(end\(s\))s
+8843(of)s 480 10542(the)m 818(ser)s 1096(vice')s 13(s)k
+1694(read)s 2103(ing)s 2452(pipe\(s\))s 3154(are)s 3491(closed,)s
+4199(so)s 4455(that)s 4863(the)s 5201(client)s 5781(can)s
+6160(dis)s 6430(tin)s 6679(guish)s 7245(dis)s 7515(con)s
+7858(nec)s 8183(tion)s 8602(from)s 480 10302(read)m 889(ing)s
+1248(EOF)s 1758(on)s 2055(a)s 2221(pipe.)s gsave
+120 9962 translate
 0.6953 1.0000 scale
-240 fnt31 0 -52(reset)m
-
+240 fnt31
+0 -52(reset)m 
 grestore
-480 9188(Resets)m 1155(the)s 1503(e)s 3(x)k 3(ecution)k
+480 9668(Resets)m 1155(the)s 1503(e)s 3(x)k 3(ecution)k
 2484(settings)s 3265(to)s 3504(the)s 3852(def)s 2(ault.)k
 4617(This)s 5093(is)s 5303(equi)s 6(v)k 6(alent)k
 6347(to:)s gsave
-960 9002 translate
+960 9482 translate
 0.6953 1.0000 scale
 240 fnt31 0 -52(cd)m 432(~/)s 0 -292(reject)m
 0 -532(no\211set\211environment)m 0 -772(suppress\211args)m 0 -1012(allow\211fd)m 1296(0)s 1584(read)s
 0 -1252(allow\211fd)m 1296(1\2112)s 1872(write)s 0 -1492(reject\211fd)m 1440(3\211)s
 0 -1732(disconnect\211hup)m 
 grestore
-0 7025(If)m 230(no)s gsave
-523 7079 translate
+0 7505(If)m 230(no)s gsave
+523 7559 translate
 0.6953 1.0000 scale
 240 fnt31 0 -52(execute)m
 
 grestore
 1223(,)s gsave
-1330 7079 translate
+1330 7559 translate
 0.6953 1.0000 scale
 240 fnt31 0 -52(execute\211from\211path)m 
 grestore
 3032(,)s gsave
-3139 7079 translate
+3139 7559 translate
 0.6953 1.0000 scale
 240 fnt31
 0 -52(execute\211from\211directory)m 
 grestore
 5401(or)s gsave
-5660 7079 translate
+5660 7559 translate
 0.6953 1.0000 scale
 240 fnt31 0 -52(builtin)m 
 grestore
 6420(is)s
-6630(interpreted)s 7722(before)s 8388(all)s 8681(the)s 0 6785(\207les)m
+6630(interpreted)s 7722(before)s 8388(all)s 8681(the)s 0 7265(\207les)m
 449(are)s 796(read)s 1265(then)s 1734(the)s 2082(request)s
-2832(is)s 3042(rejected.)s 9066 670 0 670 240 240 60 0 5761 LoutGr2
+2832(is)s 3042(rejected.)s 9066 670 0 670 240 240 60 0 6241 LoutGr2
 newpath 0 ysize 0.3 ft sub moveto
 xsize 0 rlineto
 0 0.1 ft rlineto
@@ -4588,35 +4572,35 @@ grestore
 320 fnt84 0 66(4.3.)m 628(Err)s 5(ors)k
 1618(in)s 1958(the)s 2458(con\207guration)s 4359(\207le)s 
 grestore
-0 5299(If)m
+0 5779(If)m
 230(a)s 396(syntax)s 1076(error)s 1599(or)s 1858(other)s
 2409(problem)s 3266(occurs)s 3941(when)s 4517(processing)s 5593(a)s
 5759(con\207guration)s 7092(\207le)s 7453(then)s 7922(a)s 8088(diagnostic)s
-0 5059(will)m 422(be)s 699(issued,)s 1399(to)s 1633(where)s 6(v)k 3(er)k
+0 5539(will)m 422(be)s 699(issued,)s 1399(to)s 1633(where)s 6(v)k 3(er)k
 2568(the)s 2911(error)s 3429(messages)s 4378(are)s 4721(currently)s
 5632(being)s 6212(sent)s 6652(\(see)s 7087(the)s gsave
-7430 5113 translate
+7430 5593 translate
 0.6953 1.0000 scale
 240 fnt31
 0 -52(errors\211)m 
 grestore
-8185(f)s 2(amily)k 8855(of)s 0 4819(directi)m 6(v)k 3(es,)k
-1026(abo)s 3(v)k 3(e\).)k 0 4411(The)m 428(error)s
+8185(f)s 2(amily)k 8855(of)s 0 5299(directi)m 6(v)k 3(es,)k
+1026(abo)s 3(v)k 3(e\).)k 0 4891(The)m 428(error)s
 951(will)s 1377(cause)s 1964(processing)s 3040(of)s 3311(the)s
 3659(con\207guration)s 4992(\207les)s 5441(to)s 5680(cease)s 6253(at)s
 6485(that)s 6903(point,)s 7502(unless)s 8151(the)s 8499(error)s
-0 4171(w)m 2(as)k 421(inside)s 1048(a)s gsave
-1214 4225 translate
+0 4651(w)m 2(as)k 421(inside)s 1048(a)s gsave
+1214 4705 translate
 0.6953 1.0000 scale
 240 fnt31
 0 -52(catch\211quit)m 
 grestore
 2275(construct.)s 3255(In)s 3511(this)s 3907(case)s
 4374(the)s 4722(settings)s 5503(controlling)s 6605(the)s 6953(program')s 13(s)k
-7973(e)s 3(x)k 3(ecution)k 0 3931(will)m 426(be)s
+7973(e)s 3(x)k 3(ecution)k 0 4411(will)m 426(be)s
 708(reset)s 1218(to)s 1457(the)s 1805(def)s 2(aults)k
 2610(as)s 2860(if)s 3077(a)s gsave
-3243 3985 translate
+3243 4465 translate
 0.6953 1.0000 scale
 240 fnt31 0 -52(reset)m
 
@@ -4624,11 +4608,11 @@ grestore
 3803(directi)s 6(v)k 3(e)k 4685(had)s 5089(been)s
 5598(issued,)s 6303(and)s 6707(parsing)s 7464(continues)s 8432(after)s
 gsave
-0 3745 translate
+0 4225 translate
 0.6953 1.0000 scale
 240 fnt31 0 -52(hctac)m 
 grestore
-500 3691(.)m 9066 609 0 609 240 240 60 0 2728 LoutGr2
+500 4171(.)m 9066 609 0 609 240 240 60 0 3208 LoutGr2
 newpath 0 ysize 0.3 ft sub moveto
 xsize 0 rlineto
 0 0.1 ft rlineto
@@ -4638,11 +4622,11 @@ grestore
 320 fnt84 0 5(4.4.)m
 628(Defaults)s 
 grestore
-0 2266(The)m 428(def)s 2(ault)k 1149(con\207guration)s
+0 2746(The)m 428(def)s 2(ault)k 1149(con\207guration)s
 2482(processing)s 3558(is)s 3768(as)s 4018(if)s 4235(the)s
 4583(daemon)s 5398(were)s 5918(parsing)s 6675(an)s 6958(o)s 3(v)k 3(erall)k
-7670(con\207guration)s 0 2026(\207le)m 361(whose)s 1029(contents)s 1877(were)s
-2397(as)s 2647(follo)s 6(ws:)k 0 52(0.62)m 4809(User)s
+7670(con\207guration)s 0 2506(\207le)m 361(whose)s 1029(contents)s 1877(were)s
+2397(as)s 2647(follo)s 6(ws:)k 0 52(1.0.1)m 4809(User)s
 5320(service)s 6052(daemon)s 6867(and)s 7271(client)s 7861(speci\207cation)s
 
 grestore
@@ -4724,7 +4708,7 @@ grestore
 0 -772(quit)m 
 grestore
 0 52(User)m 511(service)s
-1243(daemon)s 2058(and)s 2462(client)s 3052(speci\207cation)s 8652(0.62)s
+1243(daemon)s 2058(and)s 2462(client)s 3052(speci\207cation)s 8611(1.0.1)s
 
 grestore
 
@@ -5022,7 +5006,7 @@ grestore
 8188(v)s 6(ariable.)k 480 887(This)m 946(grants)s 1570(no)s
 1852(special)s 2560(access)s 3210(to)s 3438(that)s 3846(directory)s
 4751(unless)s 5389(it)s 5571(is)s 5770(a)s 5925(subdirectory)s
-7164(of)s 7424(a)s 7579(directory)s 8484(which)s 0 52(0.62)m
+7164(of)s 7424(a)s 7579(directory)s 8484(which)s 0 52(1.0.1)m
 4809(User)s 5320(service)s 6052(daemon)s 6867(and)s 7271(client)s
 7861(speci\207cation)s 
 grestore
@@ -5121,7 +5105,7 @@ grestore
 6106(other)s 6657(information)s 7842(may)s 8308(pass)s 480 11379(between)m
 1334(the)s 1682(caller)s 2271(and)s 2675(the)s 3023(service.)s
 0 52(User)m 511(service)s 1243(daemon)s 2058(and)s 2462(client)s
-3052(speci\207cation)s 8652(0.62)s 
+3052(speci\207cation)s 8611(1.0.1)s 
 grestore
 
 grestore
@@ -5174,8 +5158,8 @@ grestore
 2309(and)s 2935(notes)s 3765(on)s 4204(use)s 
 grestore
 gsave
-0 11649 translate
-240 fnt82 9066 670 0 670 240 240 60 LoutGraphic
+0 11650 translate
+240 fnt82 9066 669 0 669 240 240 60 LoutGraphic
 gsave
 newpath 0 ysize 0.3 ft sub moveto
 xsize 0 rlineto
@@ -5184,148 +5168,191 @@ xsize neg 0 rlineto
 closepath fill
 grestore
 320 fnt84
-0 66(6.1.)m 628(Standard)s 1977(ser)s 3(vices)k 3110(and)s
-3697(dir)s 5(ectory)k 5025(management)s 
-grestore
-240 fnt82 0 11187(In)m
-250(later)s 726(v)s 3(ersions)k 1565(of)s 1829(this)s
-2219(speci\207cation)s 3477(standard)s 4339(service)s 5064(names)s 5720(and)s
-6117(interf)s 2(aces)k 7087(for)s 7418(common)s 8306(services)s
-0 10947(such)m 496(as)s 746(mail)s 1225(deli)s 6(v)k 3(ery)k
-2053(and)s 2457(WWW)s 3193(CGI)s 3661(scripts)s 4335(will)s
-4761(be)s 5043(speci\207ed.)s gsave
-0 10593 translate
+0 66(6.1.)m 628(Examples)s 
+grestore
+240 fnt82 0 11188(The)m 428(companion)s
+1549(package,)s gsave
+2440 11242 translate
+0.6953 1.0000 scale
+240 fnt31 0 -52(userv\211utils)m 
+grestore
+3541(,)s 3648(contains)s
+4496(a)s 4662(selection)s 5568(of)s 5839(e)s 3(xample)k
+6702(services,)s 7578(some)s 8139(of)s 8410(which)s 0 10948(are)m
+347(useful)s 986(tools)s 1502(in)s 1745(their)s 2242(o)s 6(wn)k
+2706(right.)s 3261(See)s 3662(the)s gsave
+4010 11002 translate
+0.6953 1.0000 scale
+240 fnt31 0 -52(README)m
+
+grestore
+4670(in)s 4913(its)s 5189(top-le)s 6(v)k 3(el)k
+6084(directory)s 7000(for)s 7338(details.)s 9066 670 0 670 240 240 60 0 9924 LoutGr2
+newpath 0 ysize 0.3 ft sub moveto
+xsize 0 rlineto
+0 0.1 ft rlineto
+xsize neg 0 rlineto
+closepath fill
+grestore
+320 fnt84 0 66(6.2.)m
+628(Standard)s 1977(ser)s 3(vices)k 3110(and)s 3697(dir)s 5(ectory)k
+5025(management)s 
+grestore
+0 9462(In)m 250(later)s 726(v)s 3(ersions)k
+1565(of)s 1829(this)s 2219(speci\207cation)s 3477(standard)s 4339(service)s
+5064(names)s 5720(and)s 6117(interf)s 2(aces)k 7087(for)s
+7418(common)s 8306(services)s 0 9222(such)m 496(as)s 746(mail)s
+1225(deli)s 6(v)k 3(ery)k 2053(and)s 2457(WWW)s
+3193(CGI)s 3661(scripts)s 4335(may)s 4801(be)s 5083(speci\207ed.)s
+gsave
+0 8868 translate
 0.6953 1.0000 scale
 240 fnt31 0 -52(userv)m 
 grestore
-500 10539(-us)m
-783(ing)s 1142(ap)s 1361(pli)s 1607(ca)s 1819(tions)s
-2335(and)s 2739(sys)s 3036(tem)s 3454(ser)s 3732(vices)s
-4274(which)s 4916(hide)s gsave
-5384 10593 translate
+500 8814(-us)m 783(ing)s 1142(ap)s
+1361(pli)s 1607(ca)s 1819(tions)s 2334(and)s 2737(sys)s
+3034(tem)s 3451(ser)s 3729(vices)s 4270(which)s 4911(hide)s
+gsave
+5379 8868 translate
 0.6953 1.0000 scale
 240 fnt31 0 -52(userv)m 
 grestore
-5944(be)s
-6166(hind)s 6650(wrap)s 7121(per)s 7486(scripts)s 8160(may)s
-0 10299(need)m 510(to)s 749(store)s 1269(in)s 1452(for)s
-1730(ma)s 2022(tion)s 2451(in)s 2694(the)s 3042(user')s 13(s)k
-3650(\207lespace)s 4542(to)s 4781(pre)s 5082(serv)s 3(e)k
-5639(the)s 5987(cor)s 6292(rect)s 6709(place)s 7209(ment)s
-7747(of)s 8018(the)s 8366(se)s 8561(-)s 0 10059(cu)m
-221(ri)s 360(ty)s 600(perim)s 1157(iters.)s 1671(Such)s
-2207(ap)s 2426(pli)s 2672(ca)s 2884(tions)s 3400(should)s
-4097(usu)s 4425(al)s 4592(ly)s 4832(do)s 5125(so)s
-5391(in)s 5634(a)s 5800(di)s 5980(rec)s 6264(to)s
-6443(ry)s 6696(\(cre)s 7062(at)s 7234(ed)s 7518(by)s
-7812(them\))s gsave
-0 9873 translate
-0.6953 1.0000 scale
-240 fnt31 0 -52(~/.userv/.servdata/)m gsave
-2736 0 translate
+5938(be)s 6160(hind)s 6643(wrap)s
+7114(per)s 7478(scripts)s 8151(may)s 8616(need)s 0 8574(to)m
+225(store)s 731(in)s 914(for)s 1192(ma)s 1484(tion)s
+1899(in)s 2128(the)s 2462(user')s 13(s)k 3056(\207lespace)s
+3934(to)s 4159(pre)s 4460(serv)s 3(e)k 5003(the)s
+5337(cor)s 5642(rect)s 6045(place)s 6545(ment)s 7069(of)s
+7326(the)s 7660(se)s 7855(cu)s 8076(ri)s 8215(ty)s
+8441(perim)s 8998(-)s 0 8334(iters.)m 514(Such)s 1050(ap)s
+1269(pli)s 1515(ca)s 1727(tions)s 2243(should)s 2940(usu)s
+3268(al)s 3435(ly)s 3675(do)s 3968(so)s 4234(in)s
+4477(a)s 4643(di)s 4823(rec)s 5107(to)s 5286(ry)s
+5539(\(cre)s 5905(at)s 6077(ed)s 6361(by)s 6655(them\))s
+gsave
+7261 8388 translate
+0.6953 1.0000 scale
+240 fnt31 0 -52(~/.userv/)m gsave
+1296 0 translate
 1.4219 1.0000 scale
-240 fnt83 0 -52(service)m
+240 fnt83 0 -52(service)m 
+grestore
 
 grestore
+8823(,)s
+0 8094(where)m 240 fnt83 640 8096(ser)m 937(vice)s 240 fnt82
+1374 8094(is)m 1584(the)s 1932(ser)s 2210(vice)s 2664(name)s
+3238(or)s 3497(ap)s 3716(pli)s 3962(ca)s 4174(tion)s
+4603(in)s 4846(ques)s 5276(tion.)s 0 7686(If)m 230(desired,)s
+1027(a)s 1193(dot-directory)s 2494(inside)s gsave
+3121 7740 translate
+0.6953 1.0000 scale
+240 fnt31 0 -52(~/.userv)m
 
 grestore
-2563 9819(,)m 2670(where)s 240 fnt83 3310 9821(ser)m 3607(vice)s
-240 fnt82 4044 9819(is)m 4254(the)s 4602(ser)s 4880(vice)s
-5334(name)s 5908(or)s 6167(ap)s 6386(pli)s 6632(ca)s
-6844(tion)s 7273(in)s 7516(ques)s 7946(tion.)s 0 9411(The)m
-428(use)s 803(of)s 1074(a)s 1240(dot-directory)s 2541(inside)s
+3982(may)s 4448(be)s 4730(used)s 5227(to)s 5466(a)s 4(v)k 4(oid)k
+6048(the)s 6396(user)s 6854(becoming)s 7851(confused)s 8773(by)s
+0 7446(\207nding)m 724(parts)s 1231(of)s 1493(a)s 1651(semi-pri)s 6(vile)k 3(ged)k
+3190(application')s 13(s)k 4454(internal)s 5230(state)s 5714(in)s
+5949(their)s 6437(\207lespace,)s 7372(and/or)s 8034(discourage)s 0 7206(them)m
+538(from)s 1062(\207ddling)s 1860(with)s 2342(and)s 2746(thus)s
+3196(corrupting)s 4245(it.)s 0 6798(Ho)m 6(we)k 6(v)k 3(er)k 9(,)k
 gsave
-3168 9465 translate
+960 6852 translate
 0.6953 1.0000 scale
-240 fnt31 0 -52(~/.userv)m 
+240 fnt31 0 -52(userv)m 
 grestore
-4029(will)s 4455(hopefully)s 5426(a)s 4(v)k 4(oid)k
-6008(the)s 6356(user)s 6814(becoming)s 7811(confused)s 0 9171(by)m
-294(\207nding)s 1026(parts)s 1541(of)s 1812(a)s 1978(semi-pri)s 6(vile)k 3(ged)k
-3526(application')s 13(s)k 4798(internal)s 5582(state)s 6075(in)s
-6318(their)s 6815(\207lespace,)s 7758(and)s 8162(or)s 0 8931(discourage)m
-1092(them)s 1630(from)s 2154(\207ddling)s 2952(with)s 3434(and)s
-3838(thus)s 4288(corrupting)s 5337(it.)s 5573(\(Note)s 6173(that)s
-6591(such)s 7087(applications)s 8293(should)s 0 8691(of)m 271(course)s
-951(not)s 1317(rely)s 1742(for)s 2080(their)s 2577(global)s
-3230(inte)s 3(grity)k 4090(on)s 4387(the)s 4735(inte)s 3(grity)k
-5595(of)s 5866(the)s 6214(data)s 6672(on)s 6969(the)s
-7317(user')s 13(s)k 7925(side)s 8366(of)s 8637(the)s
-0 8451(security)m 810(boundary)s 15(.\))k 9066 670 0 670 240 240 60 0 7427 LoutGr2
+1520(applications)s 2726(should)s 3423(of)s
+3694(course)s 4374(not)s 4740(rely)s 5165(for)s 5503(their)s
+6000(global)s 6653(inte)s 3(grity)k 7513(and)s 7917(security)s
+8727(on)s 0 6558(the)m 348(inte)s 3(grity)k 1208(of)s
+1479(the)s 1827(data)s 2285(on)s 2582(the)s 2930(user')s 13(s)k
+3538(side)s 3979(of)s 4250(the)s 4598(security)s 5408(boundary)s 15(.)k
+9066 670 0 670 240 240 60 0 5534 LoutGr2
 newpath 0 ysize 0.3 ft sub moveto
 xsize 0 rlineto
 0 0.1 ft rlineto
 xsize neg 0 rlineto
 closepath fill
 grestore
-320 fnt84 0 66(6.2.)m
-628(Reducing)s 1997(the)s 2497(number)s 3655(of)s 4018(absolutely)s
-5474(pri)s 3(vileged)k 6908(subsystems)s 
+320 fnt84 0 66(6.3.)m 628(Reducing)s 1997(the)s 2497(number)s
+3655(of)s 4018(absolutely)s 5474(pri)s 3(vileged)k 6908(subsystems)s
+
 grestore
-0 6965(Currently)m 970(most)s
-1495(Unix)s 2029(systems)s 2837(ha)s 4(v)k 3(e)k
+0 5072(Currently)m 970(most)s 1495(Unix)s 2029(systems)s 2837(ha)s 4(v)k 3(e)k
 3338(man)s 3(y)k 3921(components)s 5129(which)s 5771(need)s
 6281(to)s 6520(run)s 6896(as)s 7146(root,)s 7638(e)s 6(v)k 3(en)k
-8138(though)s 0 6725(most)m 525(of)s 796(their)s 1293(acti)s 6(vity)k
+8138(though)s 0 4832(most)m 525(of)s 796(their)s 1293(acti)s 6(vity)k
 2057(does)s 2547(not)s 2913(strictly)s 3629(require)s 4361(it.)s
 4597(This)s 5073(gi)s 6(v)k 3(es)k 5620(rise)s
 6020(to)s 6259(a)s 6425(lar)s 4(ge)k 6954(and)s
-7358(comple)s 3(x)k 8234(body)s 8768(of)s 0 6485(code)m
+7358(comple)s 3(x)k 8234(body)s 8768(of)s 0 4592(code)m
 508(which)s 1150(must)s 1675(be)s 1957(trusted)s 2665(with)s
 3147(the)s 3495(security)s 4305(of)s 4576(the)s 4924(system.)s
-0 6077(Using)m gsave
-625 6131 translate
+0 4184(If)m 230(the)s 3(y)k 693(were)s 1213(to)s
+1452(use)s gsave
+1827 4238 translate
 0.6953 1.0000 scale
 240 fnt31 0 -52(userv)m 
 grestore
-1185(man)s 3(y)k
-1768(of)s 2039(these)s 2586(subsystems)s 3727(no)s 4020(longer)s
-4691(need)s 5201(an)s 3(y)k 5598(unusual)s 6398(pri)s 6(vile)k 3(ge.)k
+2327(,)s 2434(man)s 3(y)k
+3017(of)s 3288(these)s 3835(sub)s 4161(sys)s 4458(tems)s
+4960(w)s 2(ould)k 5615(no)s 5908(longer)s 6579(need)s
+7089(an)s 3(y)k 7486(un)s 7723(usu)s 8051(al)s
+8278(pri)s 6(v)k 8652(-)s 0 3944(i)m 60(le)s 3(ge.)k
 gsave
-0 5723 translate
+0 3590 translate
 0.6953 1.0000 scale
 240 fnt31 0 -52(cron)m 
 grestore
-455 5669(and)m gsave
-853 5723 translate
+455 3536(and)m gsave
+853 3590 translate
 0.6953 1.0000 scale
 240 fnt31 0 -52(at)m
 
 grestore
 1053(,)s gsave
-1154 5723 translate
+1154 3590 translate
 0.6953 1.0000 scale
 240 fnt31 0 -52(lpr)m 
 grestore
 1509(and)s 1907(the)s
 2249(system')s 13(s)k 3117(mail)s 3591(transfer)s 4373(agent)s
 4945(\()s gsave
-5018 5723 translate
+5018 3590 translate
 0.6953 1.0000 scale
 240 fnt31 0 -52(sendmail)m 
 grestore
 5819(,)s gsave
-5921 5723 translate
+5921 3590 translate
 0.6953 1.0000 scale
 240 fnt31
 0 -52(smail)m 
 grestore
 6421(,)s gsave
-6522 5723 translate
+6522 3590 translate
 0.6953 1.0000 scale
 240 fnt31 0 -52(exim)m 
 grestore
 6976(or)s
 7229(the)s 7572(lik)s 2(e\))k 8050(all)s 8337(f)s 2(all)k
-8701(into)s 0 5429(this)m 396(cate)s 3(gory)k 15(.)k
-9066 670 0 670 240 240 60 0 4405 LoutGr2
+8701(into)s 0 3296(this)m 396(cate)s 3(gory)k 15(,)k
+1308(though)s gsave
+2031 3350 translate
+0.6953 1.0000 scale
+240 fnt31 0 -52(userv)m 
+grestore
+2531(-based)s 3213(v)s 3(ersions)k
+4058(of)s 4329(these)s 4876(programs)s 5830(are)s 6177(not)s
+6543(currently)s 7459(a)s 4(v)k 6(ailable.)k 9066 670 0 670 240 240 60 0 2272 LoutGr2
 newpath 0 ysize 0.3 ft sub moveto
 xsize 0 rlineto
 0 0.1 ft rlineto
 xsize neg 0 rlineto
 closepath fill
 grestore
-320 fnt84 0 66(6.3.)m 628(Do)s 1092(not)s 1615(gi)s 3(v)k 3(e)k
+320 fnt84
+0 66(6.4.)m 628(Do)s 1092(not)s 1615(gi)s 3(v)k 3(e)k
 2234(away)s 3019(excessi)s 3(v)k 3(e)k 4312(pri)s 3(vilege)k
 5571(to)s gsave
 5910 139 translate
@@ -5335,57 +5362,98 @@ grestore
 6577(-using)s 7484(facilities)s
 
 grestore
-0 3943(There)m 613(is)s 823(a)s 989(danger)s 1700(that)s
+0 1810(There)m 613(is)s 823(a)s 989(danger)s 1700(that)s
 2118(people)s 2812(reimplementing)s 4378(the)s 4726(f)s 2(acilities)k
 5595(I)s 5730(mention)s 6571(abo)s 3(v)k 3(e)k
 7193(using)s gsave
-7765 3997 translate
+7765 1864 translate
 0.6953 1.0000 scale
 240 fnt31 0 -52(userv)m 
 grestore
-8325(will)s 0 3703(discard)m
+8325(will)s 0 1570(discard)m
 731(much)s 1303(of)s 1557(the)s 1888(security)s 2680(bene\207t)s
 3374(by)s 3651(using)s 4206(a)s 4355(nai)s 6(v)k 3(e)k
 4902(implementation)s 6442(technique.)s 7459(This)s 7918(will)s 8326(become)s
-0 3463(clearer)m 708(with)s 1190(an)s 1473(e)s 3(xample:)k
-0 3055(Consider)m 924(the)s gsave
-1272 3109 translate
+0 1330(clearer)m 708(with)s 1190(an)s 1473(e)s 3(xample:)k
+0 922(Consider)m 924(the)s gsave
+1272 976 translate
 0.6953 1.0000 scale
 240 fnt31 0 -52(lpr)m 
 grestore
 1632(program.)s
 2546(In)s 2802(current)s 3538(systems)s 4346(this)s 4742(needs)s
 5338(to)s 5577(ha)s 4(v)k 3(e)k 6078(an)s
-6361(absolutely)s 7398(pri)s 6(vile)k 3(ged)k 0 2815(component)m
-1124(in)s 1367(order)s 1931(to)s 2170(support)s 2948(delayed)s
-3750(printing)s 4560(without)s 5351(cop)s 2(ying:)k 6227(when)s
-6803(the)s 7151(user)s 7609(queues)s 8325(a)s 8491(\207le)s
-0 2575(to)m 239(be)s 521(printed)s 1256(the)s 1604(\207lename)s
-2483(is)s 2693(stored)s 3335(in)s 3578(the)s 3926(print)s
-4437(queue,)s 5116(rather)s 5732(than)s 6201(a)s 6367(cop)s 2(y)k
+6361(absolutely)s 7398(pri)s 6(vile)k 3(ged)k 0 52(1.0.1)m
+4809(User)s 5320(service)s 6052(daemon)s 6867(and)s 7271(client)s
+7861(speci\207cation)s 
+grestore
+
+grestore
+
+pgsave restore
+showpage
+
+%%Page: 21 21
+%%BeginPageSetup
+%%PageResources: font Times-Roman
+%%+ font Times-Bold
+%%+ font Courier-Bold
+%%+ font Times-Italic
+/pgsave save def
+0.0500 dup scale 10 setlinewidth
+%%EndPageSetup
+gsave
+0 0 translate
+240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic
+gsave
+LoutPageSet
+grestore
+gsave
+0 16840 translate
+0.0000 rotate
+
+grestore
+
+grestore
+gsave
+0 16840 translate
+0.0000 rotate
+gsave
+1417 -15423 translate
+240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic
+gsave
+1 LoutMargSet
+grestore
+240 fnt84 8839 13842(21)m 240 fnt82 0 13254(component)m 1124(in)s
+1367(order)s 1931(to)s 2170(support)s 2948(delayed)s 3750(printing)s
+4560(without)s 5351(cop)s 2(ying:)k 6227(when)s 6803(the)s
+7151(user)s 7609(queues)s 8325(a)s 8491(\207le)s 0 13014(to)m
+239(be)s 521(printed)s 1256(the)s 1604(\207lename)s 2483(is)s
+2693(stored)s 3335(in)s 3578(the)s 3926(print)s 4437(queue,)s
+5116(rather)s 5732(than)s 6201(a)s 6367(cop)s 2(y)k
 6885(of)s 7156(it,)s 7395(and)s 7799(the)s 8147(printer)s
-0 2335(daemon)m 813(accesses)s 1671(the)s 2016(\207le)s 2375(directly)s
+0 12774(daemon)m 813(accesses)s 1671(the)s 2016(\207le)s 2375(directly)s
 3155(when)s 3729(it)s 3918(is)s 4126(ready)s 4708(to)s
 4945(print)s 5453(the)s 5799(job)s 9(.)k 6197(In)s
 6451(order)s 7012(that)s 7428(the)s 7773(user)s 8229(can)s
-8615(print)s 0 2095(\207les)m 449(which)s 1091(are)s 1438(not)s
+8615(print)s 0 12534(\207les)m 449(which)s 1091(are)s 1438(not)s
 1804(w)s 2(orld-readable)k 3304(the)s 3652(daemon)s 4467(is)s
 4677(gi)s 6(v)k 3(en)k 5257(root)s 5702(pri)s 6(vile)k 3(ge)k
 6598(so)s 6864(that)s 7282(it)s 7474(can)s 7863(open)s
-8386(the)s 8734(\207le)s 0 1855(in)m 243(the)s 591(conte)s 3(xt)k
+8386(the)s 8734(\207le)s 0 12294(in)m 243(the)s 591(conte)s 3(xt)k
 1352(of)s 1623(the)s 1971(user)s 9(,)k 2467(rather)s
-3083(than)s 3552(its)s 3828(o)s 6(wn.)k 0 1447(A)m
+3083(than)s 3552(its)s 3828(o)s 6(wn.)k 0 11886(A)m
 212(simple-minded)s 1686(approach)s 2602(to)s 2823(con)s 9(v)k 3(erting)k
 3868(this)s 4246(scheme)s 5001(to)s 5222(use)s gsave
-5579 1501 translate
+5579 11940 translate
 0.6953 1.0000 scale
 240 fnt31
 0 -52(userv)m 
 grestore
 6120(might)s 6720(in)s 9(v)k 4(olv)k 3(e)k
-7460(gi)s 6(ving)k 8101(the)s 8430(printer)s 0 1207(daemon)m
+7460(gi)s 6(ving)k 8101(the)s 8430(printer)s 0 11646(daemon)m
 811(\(the)s gsave
-1233 1261 translate
+1233 11700 translate
 0.6953 1.0000 scale
 240 fnt31 0 -52(lp)m 
 grestore
@@ -5393,295 +5461,224 @@ grestore
 2354(ability)s 3013(to)s 3248(read)s 3712(the)s 4055(\207le)s
 4412(by)s 4701(allo)s 6(wing)k 5581(them)s 6114(to)s
 6349(run)s gsave
-6720 1261 translate
+6720 11700 translate
 0.6953 1.0000 scale
 240 fnt31 0 -52(cat)m 
 grestore
 7076(\(or)s 7409(a)s
-7570(special-purpose)s 0 967(\207le-reading)m 1140(program\))s 2063(as)s 2299(an)s 3(y)k
+7570(special-purpose)s 0 11406(\207le-reading)m 1140(program\))s 2063(as)s 2299(an)s 3(y)k
 2681(user)s 13(.)k 3155(The)s gsave
-3569 1021 translate
+3569 11460 translate
 0.6953 1.0000 scale
 240 fnt31 0 -52(lpr)m
 
 grestore
 3914(program)s 4769(w)s 2(ould)k 5410(use)s 5770(a)s
 gsave
-5922 1021 translate
+5922 11460 translate
 0.6953 1.0000 scale
 240 fnt31 0 -52(userv)m 
 grestore
 6467(service)s 7184(to)s 7409(store)s
-7914(the)s 8247(\207lename)s 0 727(in)m 243(the)s 591(printer)s
+7914(the)s 8247(\207lename)s 0 11166(in)m 243(the)s 591(printer)s
 1287(daemon')s 13(s)k 2255(queues,)s 3027(and)s 3431(the)s
 3779(daemon)s 4594(w)s 2(ould)k 5249(read)s 5718(the)s
 6066(\207le)s 6427(later)s 6910(when)s 7486(it)s 7678(felt)s
-8055(lik)s 2(e)k 8467(it.)s 0 52(0.62)m 4809(User)s
-5320(service)s 6052(daemon)s 6867(and)s 7271(client)s 7861(speci\207cation)s
-
-grestore
-
-grestore
-
-pgsave restore
-showpage
-
-%%Page: 21 21
-%%BeginPageSetup
-%%PageResources: font Times-Roman
-%%+ font Times-Bold
-%%+ font Courier-Bold
-%%+ font Times-Italic
-/pgsave save def
-0.0500 dup scale 10 setlinewidth
-%%EndPageSetup
-gsave
-0 0 translate
-240 fnt82 0.0 0.0 0.0 setrgbcolor 11900 16840 0 16840 240 240 60 LoutGraphic
-gsave
-LoutPageSet
-grestore
-gsave
-0 16840 translate
-0.0000 rotate
-
-grestore
-
-grestore
-gsave
-0 16840 translate
-0.0000 rotate
-gsave
-1417 -15423 translate
-240 fnt82 0.0 0.0 0.0 setrgbcolor 9066 14006 0 14006 240 240 60 LoutGraphic
-gsave
-1 LoutMargSet
-grestore
-240 fnt84 8839 13842(21)m 240 fnt82 0 13254(Ho)m 6(we)k 6(v)k 3(er)k 9(,)k
+8055(lik)s 2(e)k 8467(it.)s 0 10758(Ho)m 6(we)k 6(v)k 3(er)k 9(,)k
 960(this)s 1356(w)s 2(ould)k 2011(allo)s 6(w)k
 2590(the)s 2938(printer)s 3634(daemon)s 4449(to)s 4688(read)s
 5157(an)s 3(y)k 5554(\207le)s 5915(on)s 6212(the)s
-6560(system,)s 7331(whether)s 8161(or)s 8420(not)s 0 13014(someone)m
+6560(system,)s 7331(whether)s 8161(or)s 8420(not)s 0 10518(someone)m
 907(had)s 1311(ask)s 2(ed)k 1912(for)s 2250(it)s
 2442(to)s 2681(be)s 2963(printed.)s 3744(Since)s 4331(man)s 3(y)k
 4914(\207les)s 5363(will)s 5789(contain)s 6550(passw)s 2(ords)k
-7596(and)s 8000(other)s 0 12774(security-critical)m 1551(information)s 2736(this)s
+7596(and)s 8000(other)s 0 10278(security-critical)m 1551(information)s 2736(this)s
 3132(is)s 3342(nearly)s 3993(as)s 4243(bad)s 4647(as)s
 4897(gi)s 6(ving)k 5556(the)s 5904(daemon)s 6719(root)s
-7164(access)s 7825(in)s 8068(the)s 8416(\207rst)s 0 12534(place.)m
+7164(access)s 7825(in)s 8068(the)s 8416(\207rst)s 0 10038(place.)m
 608(An)s 3(y)k 1072(security)s 1882(holes)s 2438(in)s
 2681(the)s 3029(print)s 3540(serv)s 3(er)k 4180(which)s
 4822(allo)s 6(w)k 5401(a)s 5567(user)s 6025(to)s
 6264(e)s 3(x)k 3(ecute)k 7044(commands)s 8132(as)s
 8382(the)s gsave
-8730 12588 translate
+8730 10092 translate
 0.6953 1.0000 scale
 240 fnt31 0 -52(lp)m 
 grestore
-0 12294(user)m 458(will)s
+0 9798(user)m 458(will)s
 884(gi)s 6(v)k 3(e)k 1343(the)s 1691(user)s
 2149(the)s 2497(ability)s 3161(to)s 3400(read)s 3869(an)s 3(y)k
-4266(\207le)s 4627(on)s 4924(the)s 5272(system.)s 0 11886(Instead,)m
+4266(\207le)s 4627(on)s 4924(the)s 5272(system.)s 0 9390(Instead,)m
 790(it)s 975(is)s 1178(necessary)s 2153(to)s 2385(k)s 2(eep)k
 2881(a)s 3040(record)s 3700(of)s 3964(which)s 4599(\207les)s
 5040(the)s 5381(daemon)s 6189(has)s 6552(been)s 7053(ask)s 2(ed)k
-7647(to)s 7879(print)s 240 fnt83 8382 11888(outside)m 240 fnt82
-0 11646(the)m 348(control)s 1080(of)s 1351(the)s 1699(print)s
+7647(to)s 7879(print)s 240 fnt83 8382 9392(outside)m 240 fnt82
+0 9150(the)m 348(control)s 1080(of)s 1351(the)s 1699(print)s
 2210(daemon.)s 3072(This)s 3548(record)s 4216(could)s 4806(be)s
 5088(k)s 2(ept)k 5558(by)s 5852(a)s 6018(ne)s 6(w)k
-6465(root-pri)s 6(vile)k 3(ged)k 7947(component,)s 0 11406(b)m 4(ut)k
+6465(root-pri)s 6(vile)k 3(ged)k 7947(component,)s 0 8910(b)m 4(ut)k
 352(this)s 737(is)s 936(not)s 1291(necessary:)s 2315(the)s
 2652(record)s 3309(of)s 3569(which)s 4200(\207les)s 4638(a)s
 4794(user)s 5241(has)s 5600(ask)s 2(ed)k 6190(to)s
 6418(be)s 6689(printed)s 7413(can)s 7791(be)s 8062(k)s 2(ept)k
-8521(under)s 0 11166(the)m 348(control)s 1080(of)s 1351(the)s
+8521(under)s 0 8670(the)m 348(control)s 1080(of)s 1351(the)s
 1699(user)s 2157(in)s 2400(question.)s 3315(The)s 3743(submission)s
 4877(program)s gsave
-5747 11220 translate
+5747 8724 translate
 0.6953 1.0000 scale
 240 fnt31 0 -52(lpr)m 
 grestore
 6107(will)s 6533(mak)s 2(e)k
 7105(a)s 7271(record)s 7939(in)s 8182(an)s 8465(area)s
-0 10926(under)m 605(the)s 953(user')s 13(s)k 1561(control)s
+0 8430(under)m 605(the)s 953(user')s 13(s)k 1561(control)s
 2293(before)s 2959(communicating)s 4500(with)s 4982(the)s 5330(print)s
 5841(serv)s 3(er)k 9(,)k 6519(and)s 6923(the)s
 7271(print)s 7782(serv)s 3(er)k 8422(w)s 2(ould)k
-0 10686(be)m 279(gi)s 6(v)k 3(en)k 855(the)s
+0 8190(be)m 279(gi)s 6(v)k 3(en)k 855(the)s
 1199(ability)s 1859(to)s 2094(run)s 2466(a)s 2628(special)s
 3342(\207le-reading)s 4493(program)s 5359(which)s 5997(w)s 2(ould)k
 6648(only)s 7124(allo)s 6(w)k 7699(\207les)s 8144(to)s
-8379(be)s 8657(read)s 0 10446(which)m 642(were)s 1162(listed)s
+8379(be)s 8657(read)s 0 7950(which)m 642(were)s 1162(listed)s
 1737(in)s 1980(the)s 2328(user')s 13(s)k 2936(\207le)s
 3297(of)s 3568(things)s 4204(the)s 3(y')k 12(d)k
-4858(ask)s 2(ed)k 5459(to)s 5698(print.)s 0 10038(No)m 6(w)k
+4858(ask)s 2(ed)k 5459(to)s 5698(print.)s 0 7542(No)m 6(w)k
 502(security)s 1300(holes)s 1844(in)s 2075(most)s 2588(of)s
 2846(the)s 3182(printing)s 3980(system)s 4692(do)s 4973(not)s
 5327(critically)s 6215(af)s 6(fect)k 6799(the)s 7135(security)s
-7933(of)s 8192(the)s 8527(entire)s 0 9798(system:)m 770(the)s 3(y)k
+7933(of)s 8192(the)s 8527(entire)s 0 7302(system:)m 770(the)s 3(y)k
 1233(only)s 1713(allo)s 6(w)k 2292(the)s 2640(attack)s 2(er)k
 3453(to)s 3692(read)s 4161(and)s 4565(interfere)s 5428(with)s
 5910(print)s 6421(jobs.)s 6924(Bugs)s 7468(in)s 7711(the)s
-8059(programs)s 0 9558(run)m 373(by)s 664(the)s 1009(print)s
+8059(programs)s 0 7062(run)m 373(by)s 664(the)s 1009(print)s
 1517(serv)s 3(er)k 2154(to)s 2390(read)s 2856(users')s
 3456(\207les)s 3902(\(and)s 4382(to)s 4618(remo)s 3(v)k 3(e)k
 5382(entries)s 6066(from)s 6587(the)s 6932(list)s 7280(of)s
-7548(\207les)s 7994(when)s 8567(it)s 8756(has)s 0 9318(done)m
+7548(\207les)s 7994(when)s 8567(it)s 8756(has)s 0 6822(done)m
 522(with)s 1004(them\))s 1610(will)s 2036(still)s 2448(be)s
 2730(serious,)s 3514(b)s 4(ut)k 3876(this)s 4272(program)s
-5142(can)s 5531(be)s 5813(quite)s 6347(simple.)s 0 8910(Similar)m
+5142(can)s 5531(be)s 5813(quite)s 6347(simple.)s 0 6414(Similar)m
 762(considerations)s 2194(apply)s 2780(to)s 3019(man)s 3(y)k
 gsave
-3602 8964 translate
+3602 6468 translate
 0.6953 1.0000 scale
 240 fnt31 0 -52(userv)m 
 grestore
 4102(-based)s 4784(v)s 3(ersions)k
 5629(of)s 5900(f)s 2(acilities)k 6769(which)s 7411(currently)s
-8327(run)s 0 8670(as)m 250(root.)s 0 8262(It)m 198(is)s
+8327(run)s 0 6174(as)m 250(root.)s 0 5766(It)m 198(is)s
 401(debatable)s 1366(whether)s 2189(the)s 2530(user)s 4(-controlled)k
 4023(state)s 4509(should)s 5199(be)s 5474(k)s 2(ept)k
 5937(in)s 6173(the)s 6514(user')s 13(s)k 7115(\207lespace)s
-8000(\(in)s 8315(dot\207les,)s 0 8022(say\))m 440(or)s 692(k)s 2(ept)k
+8000(\(in)s 8315(dot\207les,)s 0 5526(say\))m 440(or)s 692(k)s 2(ept)k
 1155(in)s 1391(a)s 1550(separate)s 2381(area)s 2831(set)s
 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
 6123(using)s 6688(the)s 7029(user')s 13(s)k 7630(home)s
-8210(directory)s 0 7782(\(and)m 468(probably)s 1357(creating)s 2164(a)s
-2314(separate)s 3137(subdirectory)s 4370(of)s 4626(it)s 4802(as)s
-5037(a)s 5187(dot\207le)s 5839(to)s 6062(contain)s 6808(man)s 3(y)k
-7375(subsystems')s 8561(state\))s 0 7542(has)m 370(fe)s 6(wer)k
-967(implications)s 2199(for)s 2537(the)s 2885(rest)s 3289(of)s
-3560(the)s 3908(system)s 4632(and)s 5036(mak)s 2(es)k
-5696(it)s 5888(entirely)s 6671(clear)s 7194(where)s 7834(the)s
-8182(security)s 0 7302(boundaries)m 1101(lie.)s 9066 670 0 670 240 240 60 0 6278 LoutGr2
+8210(directory)s 0 5286(\(and)m 483(possibly)s 1335(creating)s 2157(a)s
+2323(separate)s 3161(subdirectory)s 4410(of)s 4681(it)s 4873(as)s
+5123(a)s 5289(dot\207le)s 5956(to)s 6195(contain)s 6956(subsystem)s
+8013(state\))s 0 5046(has)m 370(fe)s 6(wer)k 967(implications)s
+2199(for)s 2537(the)s 2885(rest)s 3289(of)s 3560(the)s
+3908(system)s 4632(and)s 5036(mak)s 2(es)k 5696(it)s
+5888(entirely)s 6671(clear)s 7194(where)s 7834(the)s 8182(security)s
+0 4806(boundaries)m 1101(lie.)s 9066 670 0 670 240 240 60 0 3782 LoutGr2
 newpath 0 ysize 0.3 ft sub moveto
 xsize 0 rlineto
 0 0.1 ft rlineto
 xsize neg 0 rlineto
 closepath fill
 grestore
-320 fnt84 0 66(6.4.)m
-gsave
+320 fnt84 0 66(6.5.)m gsave
 628 139 translate
 0.6953 1.0000 scale
-320 fnt31 0 -70(userv)m 
-grestore
-1375(is)s 1659(not)s 2182(a)s
-2419(r)s 5(eplacement)k 4178(f)s 8(or)k gsave
-4655 139 translate
-0.6953 1.0000 scale
 320 fnt31
-0 -70(really)m 
-grestore
-5536(and)s gsave
-6123 139 translate
-0.6953 1.0000 scale
-320 fnt31 0 -70(sudo)m 
-grestore
-
+0 -70(userv)m 
 grestore
+1375(can)s 1929(often)s 2695(r)s 5(eplace)k
 gsave
-0 5870 translate
+3758 139 translate
 0.6953 1.0000 scale
-240 fnt31
-0 -52(userv)m 
+320 fnt31 0 -70(sudo)m 
 grestore
-560 5816(is)m 770(not)s 1136(intended)s 2018(as)s
-2268(a)s 2434(general-purpose)s 4030(system)s 4754(administration)s 6191(tool)s
-6618(with)s 7100(which)s 7742(system)s 0 5576(administrators)m 1398(can)s
-1767(e)s 3(x)k 3(ecute)k 2528(pri)s 6(vile)k 3(ged)k
-3526(programs)s 4461(when)s 5017(the)s 3(y)k 5461(need)s
-5951(to.)s 6222(It)s 6407(is)s 6598(unsuitable)s 7617(for)s
-7936(this)s 8312(purpose)s 0 5336(precisely)m 916(because)s 1729(it)s
-1921(enforces)s 2781(a)s 2947(strong)s 3598(separation)s 4637(between)s
-5491(the)s 5839(calling)s 6542(and)s 6946(the)s 7294(called)s
-7922(program,)s 0 5096(which)m 642(is)s 852(undesirable)s 2010(in)s
-2253(this)s 2649(conte)s 3(xt.)k 0 4688(Its)m 289(f)s 2(acilities)k
-1158(for)s 1496(restricting)s 2516(acti)s 6(vities)k 3422(to)s
-3661(running)s 4459(certain)s 5165(programs)s 6119(may)s 6585(at)s
-6817(\207rst)s 7248(glance)s 7928(seem)s 8479(to)s 0 4420(pro)m 3(vide)k
-769(similar)s 1476(functionality)s 2736(to)s gsave
-2960 4474 translate
-0.6953 1.0000 scale
-240 fnt31 0 -52(sudo)m
-
-grestore
-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
-4454(the)s 4787(separation)s 5811(mentioned)s 6864(abo)s 3(v)k 3(e)k
-7471(is)s 7666(a)s 7817(problem)s 8659(here)s 0 4180(too,)m
-413(particular)s 1387(for)s 1725(interaction)s 2803(-)s 2931(it)s
-3123(can)s 3512(be)s 3794(hard)s 4277(for)s 4615(a)s
-gsave
-4781 4234 translate
+4292(,)s 4444(b)s 6(ut)k
+4978(not)s gsave
+5501 139 translate
 0.6953 1.0000 scale
-240 fnt31 0 -52(userv)m 
+320 fnt31 0 -70(really)m 
 grestore
-5341(service)s 6073(program)s 6943(to)s
-7182(interact)s 7957(with)s 8439(its)s 8714(real)s 0 3940(caller)m
-589(or)s 848(the)s 1196(user)s 1654(in)s 1897(question.)s
-9066 670 0 670 240 240 60 0 2916 LoutGr2
-newpath 0 ysize 0.3 ft sub moveto
-xsize 0 rlineto
-0 0.1 ft rlineto
-xsize neg 0 rlineto
-closepath fill
-grestore
-320 fnt84 0 66(6.5.)m 628(Don't)s 1488(gi)s 3(v)k 3(e)k
-2107(access)s 3013(to)s 3352(general-pur)s 3(pose)k 5640(utilities)s
 
 grestore
-0 2454(Do)m 346(not)s 712(specify)s 1456(general)s 2214(purpose)s
-3028(programs)s 3982(lik)s 2(e)k gsave
-4394 2508 translate
+gsave
+0 3374 translate
 0.6953 1.0000 scale
-240 fnt31 0 -52(mv)m
+240 fnt31 0 -52(userv)m
 
 grestore
-4654(or)s gsave
-4913 2508 translate
+559 3320(is)m 768(not)s 1133(in)s 1316(tend)s 1726(ed)s
+2009(as)s 2258(a)s 2423(general-)s 3194(purpose)s 4007(sys)s
+4304(tem)s 4721(ad)s 4945(min)s 5314(is)s 5464(tra)s
+5715(tion)s 6143(tool)s 6569(with)s 7050(which)s 7691(sys)s
+7988(tem)s 8405(ad)s 8629(min)s 8998(-)s 0 3080(is)m
+150(tra)s 401(tors)s 801(can)s 1181(e)s 3(x)k
+1399(e)s 1501(cute)s 1946(ar)s 2131(bi)s 2311(trary)s
+2806(pro)s 3118(grams)s 3744(lik)s 2(e)k 4147(te)s 3(xt)k
+4553(ed)s 4777(i)s 4837(tors)s 5236(as)s 5477(root)s
+5913(\(or)s 6242(oth)s 6545(er)s 6781(sys)s 7078(tem)s
+7487(users\))s 8097(when)s 8663(the)s 3(y)k 0 2840(need)m
+501(to.)s 782(It)s 978(is)s 1179(un)s 1416(suit)s
+1761(able)s 2205(for)s 2534(this)s 2921(pur)s 3240(pose)s
+3726(pre)s 4027(cise)s 4394(ly)s 4625(be)s 4847(cause)s
+5424(it)s 5607(en)s 5830(forces)s 6455(a)s 6612(strong)s
+7254(sep)s 7566(a)s 7672(ra)s 7857(tion)s 8276(be)s
+8498(tween)s 0 2600(the)m 348(call)s 687(ing)s 1046(and)s
+1450(the)s 1798(called)s 2426(pro)s 2738(gram,)s 3336(which)s
+3978(is)s 4188(un)s 4425(de)s 4647(sir)s 4885(able)s
+5339(in)s 5582(this)s 5978(con)s 6321(te)s 3(xt.)k
+0 2192(Ho)m 6(we)k 6(v)k 3(er)k 9(,)k
+951(its)s 1217(use)s 1582(when)s 2148(restricted)s 3084(to)s
+3313(running)s 4101(particular)s 5065(programs)s 6009(in)s 6243(particular)s
+7207(w)s 2(ays)k 7738(is)s 7938(v)s 3(ery)k
+8404(similar)s 0 1924(to)m 239(man)s 3(y)k 822(common)s
+1717(uses)s 2180(of)s gsave
+2451 1978 translate
 0.6953 1.0000 scale
-240 fnt31 0 -52(cat)m 
+240 fnt31 0 -52(sudo)m 
 grestore
-5273(in)s gsave
-5516 2508 translate
+153 fnt82
+2851 2013(1)m 240 fnt82 2911 1924(.)m gsave
+3015 1978 translate
 0.6953 1.0000 scale
-240 fnt31
-0 -52(execute\211)m 
+240 fnt31 0 -52(userv)m
+
 grestore
-6377(directi)s 6(v)k 3(es)k 7347(without)s
-8138(careful)s 0 2214(thought)m 792(about)s 1384(their)s 1881(ar)s 4(guments,)k
-2980(and)s 3384(certainly)s 4273(not)s 4639(if)s gsave
-4856 2268 translate
+3575(is)s 3785(generally)s 4728(much)s 5317(better)s 5920(than)s
+6389(restricted)s gsave
+7334 1978 translate
 0.6953 1.0000 scale
-240 fnt31
-0 -52(no\211suppress\211args)m 
+240 fnt31 0 -52(sudo)m 
 grestore
-6518(is)s 6728(speci\207ed.)s 7682(If)s 7912(you)s
-8327(do)s 8620(so)s 8886(it)s 0 1974(will)m 426(gi)s 6(v)k 3(e)k
-885(the)s 1233(caller)s 1822(much)s 2411(more)s 2958(pri)s 6(vilige)k
-3817(than)s 4286(you)s 4701(probably)s 5606(intend.)s 0 1566(It)m
-205(is)s 415(a)s 581(shame)s 1248(that)s 1666(I)s
-1801(ha)s 4(v)k 3(e)k 2302(to)s 2541(say)s
-2914(this)s 3310(here,)s 3828(b)s 4(ut)k 4190(ine)s 3(xperienced)k
-5586(administrators)s 7003(ha)s 4(v)k 3(e)k 7504(made)s
-8078(similar)s 1134 0 0 0 240 240 60 0 1178 LoutGr2
+7734(,)s 7841(because)s
+8654(it)s 0 1684(protects)m 796(the)s 1132(called)s 1748(program)s
+2607(much)s 3184(more)s 3719(strongly)s 4545(from)s 5058(bad)s
+5450(en)s 9(vironmental)k 6865(conditions)s 7902(set)s 8215(up)s
+8496(by)s 8778(the)s 1134 0 0 0 240 240 60 0 1177 LoutGr2
 0 0 moveto xsize 0 lineto stroke
 grestore
 
 grestore
-122 fnt82 0 983(1)m gsave
-58 956 translate
+122 fnt82 0 982(1)m gsave
+58 955 translate
 0.6953 1.0000 scale
-192 fnt31 0 -42(sudo)m
-
+192 fnt31
+0 -42(sudo)m 
 grestore
-192 fnt82 425 913(is)m 593(a)s 726(program)s 1422(which)s
-1936(allo)s 4(ws)k 2472(users)s 2905(to)s 3097(e)s 2(x)k 2(ecute)k
-3723(certain)s 4289(programs)s 5052(as)s 5252(root,)s 5646(according)s
-6444(to)s 6636(con\207guration)s 7703(\207les)s 8062(speci\207ed)s 8789(by)s
-0 683(the)m 279(system)s 858(administrator)s 10(.)k 240 fnt82
-0 52(User)m 511(service)s 1243(daemon)s 2058(and)s 2462(client)s
-3052(speci\207cation)s 8652(0.62)s 
+192 fnt82 425 912(is)m 593(a)s 726(program)s
+1422(which)s 1936(allo)s 4(ws)k 2472(users)s 2905(to)s
+3097(e)s 2(x)k 2(ecute)k 3723(certain)s 4289(programs)s
+5052(as)s 5252(root,)s 5646(according)s 6444(to)s 6636(con\207guration)s
+7703(\207les)s 8062(speci\207ed)s 8789(by)s 0 682(the)m 279(system)s
+858(administrator)s 10(.)k 240 fnt82 0 52(User)m 511(service)s
+1243(daemon)s 2058(and)s 2462(client)s 3052(speci\207cation)s 8611(1.0.1)s
+
 grestore
 
 grestore
@@ -5719,15 +5716,148 @@ gsave
 gsave
 0 LoutMargSet
 grestore
-240 fnt84 0 13842(22)m 240 fnt82 0 13254(mistak)m 2(es)k
-885(with)s 1367(programs)s 2321(lik)s 2(e)k gsave
-2733 13308 translate
+240 fnt84 0 13842(22)m 240 fnt82 0 13254(caller)m 13(.)k
+604(Most)s 1140(programs)s 2077(that)s 2479(one)s 2864(might)s
+3466(w)s 2(ant)k 3972(to)s 4195(run)s 4554(via)s
+4890(restricted)s gsave
+5818 13308 translate
 0.6953 1.0000 scale
-240 fnt31
-0 -52(sudo)m 
+240 fnt31 0 -52(sudo)m 
 grestore
-3133(.)s 0 52(0.62)m 4809(User)s 5320(service)s
-6052(daemon)s 6867(and)s 7271(client)s 7861(speci\207cation)s 
+6218(,)s 6309(ha)s 4(v)k 3(e)k
+6793(not)s 7143(been)s 7635(designed)s 8528(to)s 8750(run)s
+0 13014(in)m 243(a)s 409(partially)s 1258(hostile)s 1951(en)s 9(vironment.)k
+gsave
+3255 13068 translate
+0.6953 1.0000 scale
+240 fnt31 0 -52(userv)m 
+grestore
+3815(allo)s 6(ws)k 4484(these)s
+5031(programs)s 5985(to)s 6224(be)s 6506(run)s 6882(in)s
+7125(a)s 7291(safer)s 7814(en)s 9(vironment)k 0 12774(and)m
+404(should)s 1101(be)s 1383(used)s 1880(instead.)s 9066 671 0 671 240 240 60 0 11749 LoutGr2
+newpath 0 ysize 0.3 ft sub moveto
+xsize 0 rlineto
+0 0.1 ft rlineto
+xsize neg 0 rlineto
+closepath fill
+grestore
+320 fnt84
+0 66(6.6.)m 628(Err)s 5(or)k 1499(handling)s 2778(and)s
+3365(input)s 4170(str)s 5(eams)k 5301(\(eg)s 5784(stdin\))s
+
+grestore
+0 11287(When)m 610(the)s 938(service)s 1651(program)s 2501(is)s
+2692(reading)s 3442(from)s 3947(a)s 4093(\207le)s 4435(descriptor)s
+5430(connected)s 6439(to)s 6658(the)s 6987(calling)s 7670(side,)s
+8143(the)s 8471(fd)s 8708(that)s 0 11047(the)m 348(service)s
+1080(program)s 1950(refers)s 2543(to)s 2782(a)s 2948(pipe)s
+3416(set)s 3741(up)s 4034(by)s gsave
+4328 11101 translate
+0.6953 1.0000 scale
+240 fnt31 0 -52(userv)m
+
+grestore
+4888(and)s 5292(not)s 5658(to)s 5897(the)s 6245(same)s
+6792(object)s 7436(as)s 7686(w)s 2(as)k 8107(presented)s
+0 10807(by)m 294(the)s 642(caller)s 13(.)k 0 10399(Therefore)m
+988(if)s 1195(there)s 1718(is)s 1918(some)s 2469(kind)s
+2943(of)s 3205(error)s 3718(it)s 3900(is)s 4100(possible)s
+4930(for)s 5258(the)s 5597(service-side)s 6783(fd)s 7030(to)s
+7259(gi)s 6(v)k 3(e)k 7708(premature)s 8722(end)s
+0 10159(of)m 271(\207le.)s 680(If)s 910(it)s 1102(is)s
+1312(important)s 2301(to)s 2540(tell)s 2899(whether)s 3729(all)s
+4022(of)s 4293(the)s 4641(intended)s 5523(data)s 5981(has)s
+6351(been)s 6860(recei)s 6(v)k 3(ed)k 7718(by)s
+8012(the)s 8360(service)s 0 9919(program,)m 917(the)s 1265(datastream)s
+2359(must)s 2884(contain)s 3645(an)s 3928(e)s 3(xplicit)k
+4701(end-of-\207le)s 5765(indication)s 6778(of)s 7049(some)s 7610(kind.)s
+0 9511(F)m 3(or)k 385(e)s 3(xample,)k 1294(consider)s
+2159(a)s gsave
+2321 9565 translate
+0.6953 1.0000 scale
+240 fnt31 0 -52(userv)m 
+grestore
+2876(service)s 3603(for)s
+3936(submitting)s 5008(a)s 5169(mail)s 5643(message,)s 6556(where)s
+7191(message)s 8052(is)s 8257(supplied)s 0 9271(on)m 297(the)s
+645(service')s 13(s)k 1531(stdin.)s 2100(Ho)s 6(we)k 6(v)k 3(er)k 9(,)k
+3060(if)s 3277(the)s 3625(calling)s 4328(process)s 5096(is)s
+5306(interrupted)s 6412(before)s 7078(it)s 7270(has)s 7640(written)s
+8373(all)s 8666(of)s 0 9031(the)m 347(message,)s 1262(the)s
+1608(service)s 2339(program)s 3207(will)s 3631(get)s 3982(EOF)s
+4490(on)s 4785(the)s 5132(message)s 5996(data.)s 6496(In)s
+6751(a)s 6915(nai)s 6(v)k 3(e)k 7478(arrangement)s
+8730(this)s 0 8791(w)m 2(ould)k 655(cause)s 1242(a)s
+1408(half-complete)s 2790(message)s 3656(to)s 3895(be)s 4177(sent.)s
+4666(T)s 19(o)k 4966(pre)s 6(v)k 3(ent)k
+5734(this,)s 6186(it)s 6378(is)s 6588(necessary)s 7571(to)s
+7810(adopt)s 8402(some)s 0 8551(kind)m 484(of)s 755(e)s 3(xplicit)k
+1528(end)s 1932(indication;)s 3000(for)s 3338(e)s 3(xample,)k
+4252(the)s 4600(end)s 5004(of)s 5275(the)s 5623(message)s
+6489(could)s 7079(be)s 7361(signalled)s 8282(by)s 8576(a)s
+8742(dot)s 0 8311(on)m 297(a)s 463(line)s 877(by)s
+1171(itself,)s 1754(and)s 2158(dots)s 2608(doubled,)s 3487(as)s
+3737(in)s 3980(SMTP)s 26(.)k 4683(Then)s 5232(the)s
+5580(service)s 6312(program)s 7182(w)s 2(ould)k 7837(kno)s 6(w)k
+8418(when)s 0 8071(the)m 348(entire)s 947(message)s 1813(had)s
+2217(been)s 2726(recei)s 6(v)k 3(ed,)k 3633(and)s
+4037(could)s 4627(a)s 4(v)k 4(oid)k 5209(queueing)s
+6140(incomplete)s 7258(messages.)s 9066 670 0 670 240 240 60 0 7047 LoutGr2
+newpath 0 ysize 0.3 ft sub moveto
+xsize 0 rlineto
+0 0.1 ft rlineto
+xsize neg 0 rlineto
+closepath fill
+grestore
+320 fnt84 0 66(6.7.)m 628(Don't)s
+1488(gi)s 3(v)k 3(e)k 2107(access)s 3013(to)s
+3352(general-pur)s 3(pose)k 5640(utilities)s 
+grestore
+0 6585(Do)m 346(not)s
+712(specify)s 1456(general)s 2214(purpose)s 3028(programs)s 3982(lik)s 2(e)k
+gsave
+4394 6639 translate
+0.6953 1.0000 scale
+240 fnt31 0 -52(mv)m 
+grestore
+4654(or)s gsave
+4913 6639 translate
+0.6953 1.0000 scale
+240 fnt31 0 -52(cat)m
+
+grestore
+5273(in)s gsave
+5516 6639 translate
+0.6953 1.0000 scale
+240 fnt31 0 -52(execute\211)m 
+grestore
+6377(directi)s 6(v)k 3(es)k
+7347(without)s 8138(careful)s 0 6345(thought)m 792(about)s 1384(their)s
+1881(ar)s 4(guments,)k 2980(and)s 3384(certainly)s 4273(not)s
+4639(if)s gsave
+4856 6399 translate
+0.6953 1.0000 scale
+240 fnt31 0 -52(no\211suppress\211args)m 
+grestore
+6518(is)s 6728(speci\207ed.)s
+7682(If)s 7912(you)s 8327(do)s 8620(so)s 8886(it)s
+0 6105(will)m 426(gi)s 6(v)k 3(e)k 885(the)s
+1233(caller)s 1822(much)s 2411(more)s 2958(pri)s 6(vilige)k
+3817(than)s 4286(you)s 4701(probably)s 5606(intend.)s 0 5697(It)m
+205(is)s 415(a)s 581(shame)s 1248(that)s 1666(I)s
+1801(ha)s 4(v)k 3(e)k 2302(to)s 2541(say)s
+2914(this)s 3310(here,)s 3828(b)s 4(ut)k 4190(ine)s 3(xperienced)k
+5586(administrators)s 7003(ha)s 4(v)k 3(e)k 7504(made)s
+8078(similar)s 0 5457(mistak)m 2(es)k 885(with)s 1367(programs)s
+2321(lik)s 2(e)k gsave
+2733 5511 translate
+0.6953 1.0000 scale
+240 fnt31 0 -52(sudo)m 
+grestore
+3133(.)s
+0 52(1.0.1)m 4809(User)s 5320(service)s 6052(daemon)s 6867(and)s
+7271(client)s 7861(speci\207cation)s 
 grestore
 
 grestore