home *** CD-ROM | disk | FTP | other *** search
open in:
MacOS 8.1
|
Win98
|
DOS
view JSON data
|
view as text
This file was processed as: SHell self-extracting ARchive
(archive/shar).
You can browse this item here: 2290
Confidence | Program | Detection | Match Type | Support
|
---|
100%
| dexvert
| Newsgroup Content (archive/news)
| magic
| Supported |
100%
| dexvert
| SHell self-extracting ARchive (archive/shar)
| magic
| Supported |
100%
| dexvert
| Internet Message Format (text/imf)
| magic
| Supported |
1%
| dexvert
| Text File (text/txt)
| fallback
| Supported |
100%
| file
| news or mail, ASCII text
| default
| |
100%
| TrID
| E-Mail message (Var. 2)
| default
| |
100%
| checkBytes
| Printable ASCII
| default
| |
100%
| perlTextCheck
| Likely Text (Perl)
| default
| |
100%
| siegfried
| fmt/329 Shell Archive Format
| default
| |
100%
| detectItEasy
| Format: plain text[LF]
| default (weak)
| |
100%
| xdgMime
| message/rfc822
| default
|
|
hex view+--------+-------------------------+-------------------------+--------+--------+
|00000000| 46 72 6f 6d 3a 20 6a 66 | 68 40 72 70 70 33 38 36 |From: jf|h@rpp386|
|00000010| 2e 63 61 63 74 75 73 2e | 6f 72 67 20 28 4a 6f 68 |.cactus.|org (Joh|
|00000020| 6e 20 46 20 48 61 75 67 | 68 20 49 49 29 0a 4e 65 |n F Haug|h II).Ne|
|00000030| 77 73 67 72 6f 75 70 73 | 3a 20 61 6c 74 2e 73 6f |wsgroups|: alt.so|
|00000040| 75 72 63 65 73 0a 53 75 | 62 6a 65 63 74 3a 20 53 |urces.Su|bject: S|
|00000050| 68 61 64 6f 77 20 50 61 | 73 73 77 6f 72 64 20 53 |hadow Pa|ssword S|
|00000060| 75 69 74 65 2c 20 76 65 | 72 73 69 6f 6e 20 32 20 |uite, ve|rsion 2 |
|00000070| 28 70 61 72 74 20 31 20 | 6f 66 20 35 29 0a 4d 65 |(part 1 |of 5).Me|
|00000080| 73 73 61 67 65 2d 49 44 | 3a 20 3c 31 38 38 31 30 |ssage-ID|: <18810|
|00000090| 40 72 70 70 33 38 36 2e | 63 61 63 74 75 73 2e 6f |@rpp386.|cactus.o|
|000000a0| 72 67 3e 0a 44 61 74 65 | 3a 20 31 32 20 44 65 63 |rg>.Date|: 12 Dec|
|000000b0| 20 39 30 20 31 38 3a 34 | 35 3a 35 39 20 47 4d 54 | 90 18:4|5:59 GMT|
|000000c0| 0a 0a 0a 49 27 76 65 20 | 73 74 61 72 74 65 64 20 |...I've |started |
|000000d0| 67 65 74 74 69 6e 67 20 | 61 20 73 74 65 61 64 79 |getting |a steady|
|000000e0| 20 73 74 72 65 61 6d 20 | 6f 66 20 72 65 71 75 65 | stream |of reque|
|000000f0| 73 74 73 20 66 6f 72 20 | 74 68 69 73 20 63 6f 64 |sts for |this cod|
|00000100| 65 20 61 6e 64 20 74 68 | 6f 75 67 68 74 0a 69 74 |e and th|ought.it|
|00000110| 20 6d 69 67 68 74 20 62 | 65 20 6e 69 63 65 20 74 | might b|e nice t|
|00000120| 6f 20 70 6f 73 74 20 69 | 74 20 72 61 74 68 65 72 |o post i|t rather|
|00000130| 20 74 68 61 6e 20 73 65 | 6e 64 69 6e 67 20 6f 75 | than se|nding ou|
|00000140| 74 20 68 61 6c 66 20 61 | 20 64 6f 7a 65 6e 20 63 |t half a| dozen c|
|00000150| 6f 70 69 65 73 0a 65 76 | 65 72 79 20 77 65 65 6b |opies.ev|ery week|
|00000160| 2e 0a 0a 54 68 69 73 20 | 69 73 20 74 68 65 20 22 |...This |is the "|
|00000170| 6f 6c 64 22 20 76 65 72 | 73 69 6f 6e 20 6f 66 20 |old" ver|sion of |
|00000180| 74 68 65 20 73 68 61 64 | 6f 77 20 6c 6f 67 69 6e |the shad|ow login|
|00000190| 20 63 6f 64 65 2e 20 20 | 54 68 65 72 65 20 69 73 | code. |There is|
|000001a0| 20 61 20 6e 65 77 20 76 | 65 72 73 69 6f 6e 2c 0a | a new v|ersion,.|
|000001b0| 62 75 74 20 69 74 20 69 | 73 6e 27 74 20 63 6f 6d |but it i|sn't com|
|000001c0| 70 6c 65 74 65 64 20 79 | 65 74 2e 20 20 49 66 20 |pleted y|et. If |
|000001d0| 79 6f 75 20 68 61 76 65 | 20 62 65 65 6e 20 63 6f |you have| been co|
|000001e0| 6c 6c 65 63 74 69 6e 67 | 20 70 61 72 74 73 20 6f |llecting| parts o|
|000001f0| 66 20 74 68 65 20 22 6e | 65 77 22 0a 76 65 72 73 |f the "n|ew".vers|
|00000200| 69 6f 6e 2c 20 62 65 77 | 61 72 65 20 2d 20 74 68 |ion, bew|are - th|
|00000210| 69 73 20 69 73 6e 27 74 | 20 63 6f 6d 70 6c 65 74 |is isn't| complet|
|00000220| 65 6c 79 20 63 6f 6d 70 | 61 74 69 62 6c 65 20 77 |ely comp|atible w|
|00000230| 69 74 68 20 69 74 2e 0a | 0a 54 68 65 72 65 20 61 |ith it..|.There a|
|00000240| 72 65 20 62 75 67 73 20 | 69 6e 20 74 68 65 20 63 |re bugs |in the c|
|00000250| 6f 64 65 20 28 61 73 20 | 61 6c 77 61 79 73 20 2e |ode (as |always .|
|00000260| 2e 2e 29 20 61 6e 64 20 | 49 20 77 69 6c 6c 20 73 |..) and |I will s|
|00000270| 65 6e 64 20 6f 75 74 20 | 66 69 78 65 73 20 69 66 |end out |fixes if|
|00000280| 0a 79 6f 75 20 73 65 6e | 64 20 69 6e 20 62 75 67 |.you sen|d in bug|
|00000290| 20 72 65 70 6f 72 74 73 | 2e 20 20 54 68 65 20 63 | reports|. The c|
|000002a0| 6f 64 65 20 77 6f 72 6b | 65 64 20 6a 75 73 74 20 |ode work|ed just |
|000002b0| 66 69 6e 65 20 68 65 72 | 65 20 75 6e 74 69 6c 20 |fine her|e until |
|000002c0| 49 20 73 74 61 72 74 65 | 64 0a 77 6f 72 6b 69 6e |I starte|d.workin|
|000002d0| 67 20 6f 6e 20 74 68 65 | 20 6e 65 77 20 72 65 6c |g on the| new rel|
|000002e0| 65 61 73 65 2e 20 20 54 | 68 65 20 6f 6e 6c 79 20 |ease. T|he only |
|000002f0| 70 72 6f 62 6c 65 6d 20 | 77 69 74 68 20 66 69 78 |problem |with fix|
|00000300| 69 6e 67 20 74 68 69 73 | 20 76 65 72 73 69 6f 6e |ing this| version|
|00000310| 20 69 73 0a 67 6f 69 6e | 67 20 74 6f 20 62 65 20 | is.goin|g to be |
|00000320| 6d 61 6b 69 6e 67 20 74 | 68 65 20 62 72 61 6e 63 |making t|he branc|
|00000330| 68 20 64 65 6c 74 61 73 | 20 69 6e 20 53 43 43 53 |h deltas| in SCCS|
|00000340| 2e 20 20 4e 6f 74 20 65 | 78 61 63 74 6c 79 20 61 |. Not e|xactly a|
|00000350| 20 62 69 67 20 64 65 61 | 6c 2c 0a 62 75 74 20 64 | big dea|l,.but d|
|00000360| 6f 6e 27 74 20 65 78 70 | 65 63 74 20 65 6e 74 68 |on't exp|ect enth|
|00000370| 75 73 69 61 73 6d 20 6f | 76 65 72 20 6d 69 6e 6f |usiasm o|ver mino|
|00000380| 72 20 62 75 67 73 20 28 | 6c 69 6b 65 2c 20 2f 65 |r bugs (|like, /e|
|00000390| 74 63 2f 6e 6f 6c 6f 67 | 69 6e 20 61 6e 64 20 68 |tc/nolog|in and h|
|000003a0| 6f 77 0a 69 74 20 69 73 | 20 68 61 6e 64 6c 65 64 |ow.it is| handled|
|000003b0| 20 2e 2e 2e 29 20 20 41 | 6e 79 6f 6e 65 20 77 68 | ...) A|nyone wh|
|000003c0| 6f 20 68 61 73 20 6d 61 | 69 6e 74 61 69 6e 65 64 |o has ma|intained|
|000003d0| 20 6d 75 6c 74 69 70 6c | 65 20 76 65 72 73 69 6f | multipl|e versio|
|000003e0| 6e 73 20 6f 66 20 73 6f | 66 74 77 61 72 65 0a 75 |ns of so|ftware.u|
|000003f0| 73 69 6e 67 20 53 43 43 | 53 20 77 69 6c 6c 20 61 |sing SCC|S will a|
|00000400| 74 74 65 73 74 20 74 6f | 20 74 68 65 20 4a 6f 79 |ttest to| the Joy|
|00000410| 20 61 6e 64 20 53 61 74 | 69 73 66 61 63 74 69 6f | and Sat|isfactio|
|00000420| 6e 20 6f 66 20 64 6f 69 | 6e 67 20 73 6f 2e 0a 0a |n of doi|ng so...|
|00000430| 54 68 65 72 65 20 61 72 | 65 20 6d 61 6e 70 61 67 |There ar|e manpag|
|00000440| 65 73 20 69 6e 20 76 61 | 72 69 6f 75 73 20 70 6c |es in va|rious pl|
|00000450| 61 63 65 73 20 66 6f 72 | 20 6d 6f 73 74 20 6f 66 |aces for| most of|
|00000460| 20 74 68 65 20 66 65 61 | 74 75 72 65 73 2e 20 20 | the fea|tures. |
|00000470| 49 20 77 69 6c 6c 0a 67 | 6c 61 64 6c 79 20 61 63 |I will.g|ladly ac|
|00000480| 63 65 70 74 20 61 6e 79 | 20 6e 65 77 20 6f 6e 65 |cept any| new one|
|00000490| 73 20 79 6f 75 20 77 72 | 69 74 65 20 61 6e 64 20 |s you wr|ite and |
|000004a0| 65 76 65 6e 20 67 69 76 | 65 20 6f 75 74 20 63 72 |even giv|e out cr|
|000004b0| 65 64 69 74 20 61 73 20 | 61 70 70 72 6f 70 72 69 |edit as |appropri|
|000004c0| 61 74 65 2e 0a 0a 54 68 | 69 73 20 63 6f 64 65 20 |ate...Th|is code |
|000004d0| 68 61 73 20 74 68 65 20 | 6f 6c 64 20 63 6f 70 79 |has the |old copy|
|000004e0| 72 69 67 68 74 20 74 68 | 61 74 20 65 76 65 72 79 |right th|at every|
|000004f0| 6f 6e 65 20 6f 62 6a 65 | 63 74 65 64 20 74 6f 20 |one obje|cted to |
|00000500| 61 6c 6c 20 6f 76 65 72 | 20 69 74 2e 0a 49 66 20 |all over| it..If |
|00000510| 79 6f 75 20 72 65 61 64 | 20 74 68 65 20 52 45 41 |you read| the REA|
|00000520| 44 4d 45 20 66 69 6c 65 | 20 79 6f 75 20 6d 69 67 |DME file| you mig|
|00000530| 68 74 20 62 65 67 69 6e | 20 74 6f 20 75 6e 64 65 |ht begin| to unde|
|00000540| 72 73 74 61 6e 64 20 74 | 68 65 20 77 68 6f 6c 65 |rstand t|he whole|
|00000550| 20 6d 65 73 73 0a 61 20 | 6c 69 74 74 6c 65 20 62 | mess.a |little b|
|00000560| 65 74 74 65 72 2e 20 20 | 54 68 65 20 6e 65 77 20 |etter. |The new |
|00000570| 63 6f 64 65 20 68 61 73 | 20 74 68 65 20 6e 65 77 |code has| the new|
|00000580| 20 63 6f 70 79 72 69 67 | 68 74 2e 20 20 59 6f 75 | copyrig|ht. You|
|00000590| 20 77 69 6c 6c 20 62 65 | 0a 72 65 6c 69 65 76 65 | will be|.relieve|
|000005a0| 64 20 74 6f 20 73 65 65 | 20 69 74 20 49 20 73 75 |d to see| it I su|
|000005b0| 70 70 6f 73 65 2e 0a 2d | 2d 0a 23 21 20 2f 62 69 |ppose..-|-.#! /bi|
|000005c0| 6e 2f 73 68 0a 23 20 54 | 68 69 73 20 69 73 20 61 |n/sh.# T|his is a|
|000005d0| 20 73 68 65 6c 6c 20 61 | 72 63 68 69 76 65 2c 20 | shell a|rchive, |
|000005e0| 6d 65 61 6e 69 6e 67 3a | 0a 23 20 31 2e 20 52 65 |meaning:|.# 1. Re|
|000005f0| 6d 6f 76 65 20 65 76 65 | 72 79 74 68 69 6e 67 20 |move eve|rything |
|00000600| 61 62 6f 76 65 20 74 68 | 65 20 23 21 20 2f 62 69 |above th|e #! /bi|
|00000610| 6e 2f 73 68 20 6c 69 6e | 65 2e 0a 23 20 32 2e 20 |n/sh lin|e..# 2. |
|00000620| 53 61 76 65 20 74 68 65 | 20 72 65 73 75 6c 74 69 |Save the| resulti|
|00000630| 6e 67 20 74 65 78 74 20 | 69 6e 20 61 20 66 69 6c |ng text |in a fil|
|00000640| 65 2e 0a 23 20 33 2e 20 | 45 78 65 63 75 74 65 20 |e..# 3. |Execute |
|00000650| 74 68 65 20 66 69 6c 65 | 20 77 69 74 68 20 2f 62 |the file| with /b|
|00000660| 69 6e 2f 73 68 20 28 6e | 6f 74 20 63 73 68 29 20 |in/sh (n|ot csh) |
|00000670| 74 6f 20 63 72 65 61 74 | 65 3a 0a 23 09 52 45 41 |to creat|e:.#.REA|
|00000680| 44 4d 45 0a 23 09 6e 65 | 77 67 72 70 2e 63 0a 23 |DME.#.ne|wgrp.c.#|
|00000690| 09 4d 61 6b 65 66 69 6c | 65 0a 23 09 63 6f 6e 66 |.Makefil|e.#.conf|
|000006a0| 69 67 2e 68 0a 23 09 70 | 77 75 6e 63 6f 6e 76 2e |ig.h.#.p|wunconv.|
|000006b0| 63 0a 23 09 6f 62 73 63 | 75 72 65 2e 63 0a 23 09 |c.#.obsc|ure.c.#.|
|000006c0| 61 67 65 2e 63 0a 23 09 | 73 75 62 2e 63 0a 23 09 |age.c.#.|sub.c.#.|
|000006d0| 6c 6f 67 69 6e 2e 63 0a | 23 09 73 68 65 6c 6c 2e |login.c.|#.shell.|
|000006e0| 63 0a 23 09 6c 61 73 74 | 6c 6f 67 2e 68 0a 23 20 |c.#.last|log.h.# |
|000006f0| 54 68 69 73 20 61 72 63 | 68 69 76 65 20 63 72 65 |This arc|hive cre|
|00000700| 61 74 65 64 3a 20 57 65 | 64 20 44 65 63 20 31 32 |ated: We|d Dec 12|
|00000710| 20 31 32 3a 33 36 3a 33 | 30 20 31 39 39 30 0a 23 | 12:36:3|0 1990.#|
|00000720| 20 42 79 3a 09 4a 6f 68 | 6e 20 46 20 48 61 75 67 | By:.Joh|n F Haug|
|00000730| 68 20 49 49 20 28 52 69 | 76 65 72 20 50 61 72 69 |h II (Ri|ver Pari|
|00000740| 73 68 65 73 20 50 72 6f | 67 72 61 6d 6d 69 6e 67 |shes Pro|gramming|
|00000750| 2c 20 41 75 73 74 69 6e | 20 54 58 29 0a 65 78 70 |, Austin| TX).exp|
|00000760| 6f 72 74 20 50 41 54 48 | 3b 20 50 41 54 48 3d 2f |ort PATH|; PATH=/|
|00000770| 62 69 6e 3a 2f 75 73 72 | 2f 62 69 6e 3a 24 50 41 |bin:/usr|/bin:$PA|
|00000780| 54 48 0a 65 63 68 6f 20 | 73 68 61 72 3a 20 22 65 |TH.echo |shar: "e|
|00000790| 78 74 72 61 63 74 69 6e | 67 20 27 52 45 41 44 4d |xtractin|g 'READM|
|000007a0| 45 27 22 20 27 28 31 32 | 32 35 38 20 63 68 61 72 |E'" '(12|258 char|
|000007b0| 61 63 74 65 72 73 29 27 | 0a 69 66 20 74 65 73 74 |acters)'|.if test|
|000007c0| 20 2d 66 20 27 52 45 41 | 44 4d 45 27 0a 74 68 65 | -f 'REA|DME'.the|
|000007d0| 6e 0a 09 65 63 68 6f 20 | 73 68 61 72 3a 20 22 77 |n..echo |shar: "w|
|000007e0| 69 6c 6c 20 6e 6f 74 20 | 6f 76 65 72 2d 77 72 69 |ill not |over-wri|
|000007f0| 74 65 20 65 78 69 73 74 | 69 6e 67 20 66 69 6c 65 |te exist|ing file|
|00000800| 20 27 52 45 41 44 4d 45 | 27 22 0a 65 6c 73 65 0a | 'README|'".else.|
|00000810| 73 65 64 20 27 73 2f 5e | 58 2f 2f 27 20 3c 3c 20 |sed 's/^|X//' << |
|00000820| 5c 53 48 41 52 5f 45 4f | 46 20 3e 20 27 52 45 41 |\SHAR_EO|F > 'REA|
|00000830| 44 4d 45 27 0a 58 54 68 | 69 73 20 69 73 20 74 68 |DME'.XTh|is is th|
|00000840| 65 20 65 78 70 6c 61 6e | 61 74 6f 72 79 20 64 6f |e explan|atory do|
|00000850| 63 75 6d 65 6e 74 20 66 | 6f 72 20 4a 6f 68 6e 20 |cument f|or John |
|00000860| 46 2e 20 48 61 75 67 68 | 20 49 49 27 73 20 6c 6f |F. Haugh| II's lo|
|00000870| 67 69 6e 20 72 65 70 6c | 61 63 65 6d 65 6e 74 2e |gin repl|acement.|
|00000880| 0a 58 54 68 69 73 20 64 | 6f 63 75 6d 65 6e 74 20 |.XThis d|ocument |
|00000890| 69 73 20 66 6f 72 20 76 | 65 72 73 69 6f 6e 20 32 |is for v|ersion 2|
|000008a0| 2c 20 6c 61 73 74 20 6d | 6f 64 69 66 69 65 64 20 |, last m|odified |
|000008b0| 6f 6e 20 31 31 2f 32 36 | 2f 39 30 2e 0a 58 0a 58 |on 11/26|/90..X.X|
|000008c0| 54 68 69 73 20 73 6f 66 | 74 77 61 72 65 20 69 73 |This sof|tware is|
|000008d0| 20 63 6f 70 79 72 69 67 | 68 74 20 31 39 38 38 2c | copyrig|ht 1988,|
|000008e0| 20 31 39 38 39 2c 20 31 | 39 39 30 2c 20 4a 6f 68 | 1989, 1|990, Joh|
|000008f0| 6e 20 46 2e 20 48 61 75 | 67 68 20 49 49 2e 20 20 |n F. Hau|gh II. |
|00000900| 41 6c 6c 20 72 69 67 68 | 74 73 0a 58 72 65 73 65 |All righ|ts.Xrese|
|00000910| 72 76 65 64 2e 20 20 55 | 73 65 2c 20 64 75 70 6c |rved. U|se, dupl|
|00000920| 69 63 61 74 69 6f 6e 20 | 61 6e 64 20 64 69 73 63 |ication |and disc|
|00000930| 6c 6f 73 75 72 65 20 69 | 73 20 70 65 72 6d 69 74 |losure i|s permit|
|00000940| 74 65 64 20 61 63 63 6f | 72 64 69 6e 67 20 74 6f |ted acco|rding to|
|00000950| 20 74 68 65 0a 58 67 75 | 69 64 65 6c 69 6e 65 73 | the.Xgu|idelines|
|00000960| 20 6c 69 73 74 65 64 20 | 62 65 6c 6f 77 2e 0a 58 | listed |below..X|
|00000970| 0a 58 54 68 69 73 20 73 | 6f 66 74 77 61 72 65 20 |.XThis s|oftware |
|00000980| 69 73 20 62 65 69 6e 67 | 20 70 72 6f 76 69 64 65 |is being| provide|
|00000990| 64 20 61 73 20 61 20 66 | 72 65 65 6c 79 20 72 65 |d as a f|reely re|
|000009a0| 64 69 73 74 72 69 62 75 | 74 61 62 6c 65 20 6c 6f |distribu|table lo|
|000009b0| 67 69 6e 20 63 6c 6f 6e | 65 2e 0a 58 59 6f 75 20 |gin clon|e..XYou |
|000009c0| 6d 61 79 20 64 69 73 74 | 72 69 62 75 74 65 20 74 |may dist|ribute t|
|000009d0| 68 69 73 20 73 6f 66 74 | 77 61 72 65 20 70 72 6f |his soft|ware pro|
|000009e0| 76 69 64 65 64 20 79 6f | 75 20 64 6f 20 6e 6f 74 |vided yo|u do not|
|000009f0| 20 63 68 61 72 67 65 20 | 66 6f 72 20 6f 74 68 65 | charge |for othe|
|00000a00| 72 20 74 68 61 6e 0a 58 | 74 72 61 6e 73 6d 69 73 |r than.X|transmis|
|00000a10| 73 69 6f 6e 20 63 6f 73 | 74 73 2e 20 20 59 6f 75 |sion cos|ts. You|
|00000a20| 20 61 72 65 20 66 72 65 | 65 20 74 6f 20 63 6f 70 | are fre|e to cop|
|00000a30| 79 20 74 68 69 73 20 73 | 6f 66 74 77 61 72 65 20 |y this s|oftware |
|00000a40| 70 72 6f 76 69 64 65 64 | 20 79 6f 75 0a 58 64 6f |provided| you.Xdo|
|00000a50| 20 6e 6f 74 20 72 65 73 | 74 72 69 63 74 20 74 68 | not res|trict th|
|00000a60| 65 20 72 69 67 68 74 73 | 20 6f 66 20 74 68 65 20 |e rights| of the |
|00000a70| 72 65 63 69 70 69 65 6e | 74 73 20 74 6f 20 66 75 |recipien|ts to fu|
|00000a80| 72 74 68 65 72 20 63 6f | 70 79 20 74 68 69 73 20 |rther co|py this |
|00000a90| 73 6f 66 74 77 61 72 65 | 2e 0a 58 0a 58 54 48 49 |software|..X.XTHI|
|00000aa0| 53 20 53 4f 46 54 57 41 | 52 45 20 49 53 20 42 45 |S SOFTWA|RE IS BE|
|00000ab0| 49 4e 47 20 44 49 53 54 | 52 49 42 55 54 45 44 20 |ING DIST|RIBUTED |
|00000ac0| 41 53 2d 49 53 2e 20 20 | 54 48 45 20 41 55 54 48 |AS-IS. |THE AUTH|
|00000ad0| 4f 52 53 20 44 49 53 43 | 4c 41 49 4d 20 41 4c 4c |ORS DISC|LAIM ALL|
|00000ae0| 0a 58 4c 49 41 42 49 4c | 49 54 59 20 46 4f 52 20 |.XLIABIL|ITY FOR |
|00000af0| 41 4e 59 20 43 4f 4e 53 | 45 51 55 45 4e 43 45 53 |ANY CONS|EQUENCES|
|00000b00| 20 4f 46 20 55 53 45 2e | 20 20 54 48 45 20 55 53 | OF USE.| THE US|
|00000b10| 45 52 20 49 53 20 53 4f | 4c 45 4c 59 20 52 45 53 |ER IS SO|LELY RES|
|00000b20| 50 4f 4e 53 49 42 4c 45 | 0a 58 46 4f 52 20 54 48 |PONSIBLE|.XFOR TH|
|00000b30| 45 20 4d 41 49 4e 54 45 | 4e 41 4e 43 45 20 4f 46 |E MAINTE|NANCE OF|
|00000b40| 20 54 48 49 53 20 53 4f | 46 54 57 41 52 45 20 50 | THIS SO|FTWARE P|
|00000b50| 41 43 4b 41 47 45 2e 20 | 20 54 48 45 20 41 55 54 |ACKAGE. | THE AUT|
|00000b60| 48 4f 52 53 20 41 52 45 | 20 55 4e 44 45 52 20 4e |HORS ARE| UNDER N|
|00000b70| 4f 0a 58 4f 42 4c 49 47 | 41 54 49 4f 4e 20 54 4f |O.XOBLIG|ATION TO|
|00000b80| 20 50 52 4f 56 49 44 45 | 20 4d 4f 44 49 46 49 43 | PROVIDE| MODIFIC|
|00000b90| 41 54 49 4f 4e 53 20 4f | 52 20 49 4d 50 52 4f 56 |ATIONS O|R IMPROV|
|00000ba0| 45 4d 45 4e 54 53 2e 20 | 20 54 48 45 20 55 53 45 |EMENTS. | THE USE|
|00000bb0| 52 20 49 53 0a 58 45 4e | 43 4f 55 52 41 47 45 20 |R IS.XEN|COURAGE |
|00000bc0| 54 4f 20 54 41 4b 45 20 | 41 4e 59 20 41 4e 44 20 |TO TAKE |ANY AND |
|00000bd0| 41 4c 4c 20 53 54 45 50 | 53 20 4e 45 45 44 45 44 |ALL STEP|S NEEDED|
|00000be0| 20 54 4f 20 50 52 4f 54 | 45 43 54 20 41 47 41 49 | TO PROT|ECT AGAI|
|00000bf0| 4e 53 54 20 41 43 43 49 | 44 45 4e 54 41 4c 0a 58 |NST ACCI|DENTAL.X|
|00000c00| 4c 4f 53 45 20 4f 46 20 | 49 4e 46 4f 52 4d 41 54 |LOSE OF |INFORMAT|
|00000c10| 49 4f 4e 20 4f 52 20 4d | 41 43 48 49 4e 45 20 52 |ION OR M|ACHINE R|
|00000c20| 45 53 4f 55 52 43 45 53 | 2e 0a 58 0a 58 53 70 65 |ESOURCES|..X.XSpe|
|00000c30| 63 69 61 6c 20 74 68 61 | 6e 6b 73 20 61 72 65 20 |cial tha|nks are |
|00000c40| 64 75 65 20 74 6f 20 43 | 68 69 70 20 52 6f 73 65 |due to C|hip Rose|
|00000c50| 6e 74 68 61 6c 20 66 6f | 72 20 68 69 73 20 66 69 |nthal fo|r his fi|
|00000c60| 6e 65 20 74 65 73 74 69 | 6e 67 20 65 66 66 6f 72 |ne testi|ng effor|
|00000c70| 74 73 3b 0a 58 74 6f 20 | 53 74 65 76 65 20 53 69 |ts;.Xto |Steve Si|
|00000c80| 6d 6d 6f 6e 73 20 66 6f | 72 20 68 69 73 20 77 6f |mmons fo|r his wo|
|00000c90| 72 6b 20 69 6e 20 70 6f | 72 74 69 6e 67 20 74 68 |rk in po|rting th|
|00000ca0| 69 73 20 63 6f 64 65 20 | 74 6f 20 42 53 44 3b 20 |is code |to BSD; |
|00000cb0| 61 6e 64 20 74 6f 20 42 | 69 6c 6c 0a 58 4b 65 6e |and to B|ill.XKen|
|00000cc0| 6e 65 64 79 20 66 6f 72 | 20 68 69 73 20 63 6f 6e |nedy for| his con|
|00000cd0| 74 72 69 62 75 74 69 6f | 6e 73 20 6f 66 20 4c 61 |tributio|ns of La|
|00000ce0| 73 65 72 4a 65 74 20 70 | 72 69 6e 74 65 72 20 74 |serJet p|rinter t|
|00000cf0| 69 6d 65 20 61 6e 64 20 | 65 6e 65 72 67 69 65 73 |ime and |energies|
|00000d00| 2e 0a 58 0a 58 42 65 67 | 69 6e 20 62 79 20 72 65 |..X.XBeg|in by re|
|00000d10| 61 64 69 6e 67 20 61 6e | 64 20 65 64 69 74 69 6e |ading an|d editin|
|00000d20| 67 20 74 68 65 20 63 6f | 6e 66 69 67 2e 68 20 66 |g the co|nfig.h f|
|00000d30| 69 6c 65 2e 20 20 41 6c | 6c 20 6f 70 74 69 6f 6e |ile. Al|l option|
|00000d40| 73 20 61 72 65 20 73 65 | 6c 65 63 74 65 64 0a 58 |s are se|lected.X|
|00000d50| 62 79 20 75 73 69 6e 67 | 20 23 64 65 66 69 6e 65 |by using| #define|
|00000d60| 27 73 2e 20 20 41 20 62 | 72 69 65 66 20 64 65 73 |'s. A b|rief des|
|00000d70| 63 72 69 70 74 69 6f 6e | 20 66 6f 72 20 65 61 63 |cription| for eac|
|00000d80| 68 20 61 76 61 69 6c 61 | 62 6c 65 20 6f 70 74 69 |h availa|ble opti|
|00000d90| 6f 6e 20 61 70 70 65 61 | 72 73 0a 58 62 65 6c 6f |on appea|rs.Xbelo|
|00000da0| 77 2e 20 20 59 6f 75 20 | 6d 61 79 20 77 61 6e 74 |w. You |may want|
|00000db0| 20 74 6f 20 70 72 69 6e | 74 20 74 68 69 73 20 66 | to prin|t this f|
|00000dc0| 69 6c 65 20 6f 75 74 20 | 61 73 20 69 74 20 69 73 |ile out |as it is|
|00000dd0| 20 4c 4f 4e 47 20 61 6e | 64 20 79 6f 75 20 77 69 | LONG an|d you wi|
|00000de0| 6c 6c 0a 58 6e 65 65 64 | 20 74 6f 20 72 65 66 65 |ll.Xneed| to refe|
|00000df0| 72 20 74 6f 20 69 74 20 | 77 68 69 6c 65 20 65 64 |r to it |while ed|
|00000e00| 69 74 74 69 6e 67 20 63 | 6f 6e 66 69 67 2e 68 2e |itting c|onfig.h.|
|00000e10| 20 20 59 6f 75 20 77 69 | 6c 6c 20 61 6c 73 6f 20 | You wi|ll also |
|00000e20| 68 61 76 65 20 74 6f 20 | 65 64 69 74 0a 58 74 68 |have to |edit.Xth|
|00000e30| 65 20 4d 61 6b 65 66 69 | 6c 65 2e 20 20 54 68 65 |e Makefi|le. The|
|00000e40| 20 70 6f 73 73 69 62 6c | 65 20 64 69 66 66 65 72 | possibl|e differ|
|00000e50| 65 6e 63 65 73 20 61 72 | 65 20 64 6f 63 75 6d 65 |ences ar|e docume|
|00000e60| 6e 74 65 64 20 74 68 65 | 72 65 2e 20 20 50 61 79 |nted the|re. Pay|
|00000e70| 20 63 6c 6f 73 65 0a 58 | 61 74 74 65 6e 74 69 6f | close.X|attentio|
|00000e80| 6e 20 74 6f 20 74 68 65 | 20 69 6e 73 74 61 6c 6c |n to the| install|
|00000e90| 3a 20 72 75 6c 65 2e 20 | 20 44 4f 20 4e 4f 54 20 |: rule. | DO NOT |
|00000ea0| 4d 41 49 4c 20 4d 45 20 | 44 49 46 46 45 52 45 4e |MAIL ME |DIFFEREN|
|00000eb0| 43 45 53 20 46 4f 52 20 | 56 41 52 49 4f 55 53 0a |CES FOR |VARIOUS.|
|00000ec0| 58 49 4e 53 54 41 4c 4c | 41 54 49 4f 4e 20 50 52 |XINSTALL|ATION PR|
|00000ed0| 4f 42 4c 45 4d 53 2e 20 | 20 49 66 20 79 6f 75 20 |OBLEMS. | If you |
|00000ee0| 6d 75 73 74 20 73 68 61 | 72 65 20 79 6f 75 72 20 |must sha|re your |
|00000ef0| 65 78 70 65 72 69 65 6e | 63 65 73 2c 20 64 6f 20 |experien|ces, do |
|00000f00| 73 6f 20 6f 6e 20 74 68 | 65 0a 58 6e 65 74 2e 20 |so on th|e.Xnet. |
|00000f10| 20 4c 6f 67 69 6e 20 6e | 6f 77 20 72 75 6e 73 20 | Login n|ow runs |
|00000f20| 6f 6e 20 61 62 6f 75 74 | 20 33 30 20 64 69 66 66 |on about| 30 diff|
|00000f30| 65 72 65 6e 74 20 76 61 | 72 69 65 74 69 65 73 20 |erent va|rieties |
|00000f40| 6f 66 20 55 4e 49 58 20 | 74 68 61 74 20 49 20 68 |of UNIX |that I h|
|00000f50| 61 76 65 0a 58 62 65 65 | 6e 20 6d 61 64 65 20 61 |ave.Xbee|n made a|
|00000f60| 77 61 72 65 20 6f 66 2e | 0a 58 0a 58 4e 6f 74 65 |ware of.|.X.XNote|
|00000f70| 20 74 68 61 74 20 74 68 | 65 72 65 20 61 72 65 20 | that th|ere are |
|00000f80| 4d 41 4e 59 20 6f 70 74 | 69 6f 6e 73 2e 20 20 41 |MANY opt|ions. A|
|00000f90| 73 20 64 69 73 74 72 69 | 62 75 74 65 64 20 6d 6f |s distri|buted mo|
|00000fa0| 73 74 20 6f 70 74 69 6f | 6e 73 20 61 72 65 20 74 |st optio|ns are t|
|00000fb0| 75 72 6e 65 64 0a 58 6f | 6e 2c 20 77 68 69 63 68 |urned.Xo|n, which|
|00000fc0| 20 70 72 6f 64 75 63 65 | 73 20 61 20 72 65 61 6c | produce|s a real|
|00000fd0| 6c 79 20 6e 69 63 65 20 | 70 61 63 6b 61 67 65 2e |ly nice |package.|
|00000fe0| 20 20 54 68 69 73 20 69 | 73 20 74 68 65 20 73 79 | This i|s the sy|
|00000ff0| 73 74 65 6d 20 61 73 20 | 75 73 65 64 20 6f 6e 0a |stem as |used on.|
|00001000| 58 74 68 65 20 61 75 74 | 68 6f 72 73 27 20 6d 61 |Xthe aut|hors' ma|
|00001010| 63 68 69 6e 65 73 2e 0a | 58 0a 58 44 69 61 6c 75 |chines..|X.XDialu|
|00001020| 70 20 50 61 73 73 77 6f | 72 64 20 46 69 6c 65 73 |p Passwo|rd Files|
|00001030| 20 2d 0a 58 09 54 68 69 | 73 20 6f 70 74 69 6f 6e | -.X.Thi|s option|
|00001040| 20 70 65 72 6d 69 74 73 | 20 69 6e 64 69 76 69 64 | permits| individ|
|00001050| 75 61 6c 20 70 6f 72 74 | 73 20 74 6f 20 68 61 76 |ual port|s to hav|
|00001060| 65 20 61 6e 20 61 64 64 | 69 74 69 6f 6e 61 6c 0a |e an add|itional.|
|00001070| 58 09 70 61 73 73 77 6f | 72 64 20 70 72 6f 6d 70 |X.passwo|rd promp|
|00001080| 74 65 64 20 66 6f 72 20 | 6f 6e 20 61 20 62 79 2d |ted for |on a by-|
|00001090| 73 68 65 6c 6c 20 62 61 | 73 69 73 2e 20 20 2f 65 |shell ba|sis. /e|
|000010a0| 74 63 2f 64 69 61 6c 75 | 70 73 0a 58 09 63 6f 6e |tc/dialu|ps.X.con|
|000010b0| 74 61 69 6e 73 20 61 20 | 6c 69 73 74 20 6f 66 20 |tains a |list of |
|000010c0| 64 69 61 6c 75 70 20 70 | 6f 72 74 73 2c 20 64 5f |dialup p|orts, d_|
|000010d0| 70 61 73 73 77 64 20 63 | 6f 6e 74 61 69 6e 73 20 |passwd c|ontains |
|000010e0| 74 68 65 0a 58 09 70 61 | 73 73 77 6f 72 64 20 66 |the.X.pa|ssword f|
|000010f0| 6f 72 20 65 61 63 68 20 | 73 68 65 6c 6c 20 72 65 |or each |shell re|
|00001100| 71 75 69 72 69 6e 67 20 | 61 20 64 69 61 6c 75 70 |quiring |a dialup|
|00001110| 20 70 61 73 73 77 6f 72 | 64 2e 0a 58 0a 58 09 53 | passwor|d..X.X.S|
|00001120| 65 6c 65 63 74 20 74 68 | 69 73 20 6f 70 74 69 6f |elect th|is optio|
|00001130| 6e 20 62 79 20 64 65 66 | 69 6e 69 6e 67 20 74 68 |n by def|ining th|
|00001140| 65 20 44 49 41 4c 55 50 | 20 6d 61 63 72 6f 2e 0a |e DIALUP| macro..|
|00001150| 58 0a 58 50 6f 72 74 20 | 41 63 63 65 73 73 20 54 |X.XPort |Access T|
|00001160| 69 6d 65 73 20 46 69 6c | 65 20 2d 0a 58 09 54 68 |imes Fil|e -.X.Th|
|00001170| 69 73 20 6f 70 74 69 6f | 6e 20 70 65 72 6d 69 74 |is optio|n permit|
|00001180| 73 20 69 6e 64 69 76 69 | 64 75 61 6c 20 70 6f 72 |s indivi|dual por|
|00001190| 74 73 20 74 6f 20 68 61 | 76 65 20 72 65 73 74 72 |ts to ha|ve restr|
|000011a0| 69 63 74 69 6f 6e 73 0a | 58 09 62 61 73 65 64 20 |ictions.|X.based |
|000011b0| 6f 6e 20 75 73 65 72 20 | 6e 61 6d 65 20 61 6e 64 |on user |name and|
|000011c0| 20 74 69 6d 65 20 6f 66 | 20 64 61 79 20 61 6e 64 | time of| day and|
|000011d0| 20 77 65 65 6b 2e 0a 58 | 0a 58 09 53 65 6c 65 63 | week..X|.X.Selec|
|000011e0| 74 20 74 68 69 73 20 6f | 70 74 69 6f 6e 20 62 79 |t this o|ption by|
|000011f0| 20 64 65 66 69 6e 69 6e | 67 20 74 68 65 20 50 4f | definin|g the PO|
|00001200| 52 54 54 49 4d 45 20 6d | 61 63 72 6f 2e 0a 58 0a |RTTIME m|acro..X.|
|00001210| 58 53 68 61 64 6f 77 20 | 5b 20 75 6e 72 65 61 64 |XShadow |[ unread|
|00001220| 61 62 6c 65 20 5d 20 50 | 61 73 73 77 6f 72 64 20 |able ] P|assword |
|00001230| 46 69 6c 65 73 20 2d 0a | 58 09 54 68 69 73 20 6f |Files -.|X.This o|
|00001240| 70 74 69 6f 6e 20 75 74 | 69 6c 69 7a 65 73 20 61 |ption ut|ilizes a|
|00001250| 6e 20 61 6c 74 65 72 6e | 61 74 65 2c 20 6e 6f 6e |n altern|ate, non|
|00001260| 2d 72 65 61 64 61 62 6c | 65 20 66 69 6c 65 20 74 |-readabl|e file t|
|00001270| 6f 0a 58 09 63 6f 6e 74 | 61 69 6e 20 74 68 65 20 |o.X.cont|ain the |
|00001280| 61 63 74 75 61 6c 20 65 | 6e 63 72 79 70 74 65 64 |actual e|ncrypted|
|00001290| 20 70 61 73 73 77 6f 72 | 64 73 2e 20 20 54 68 69 | passwor|ds. Thi|
|000012a0| 73 20 69 73 20 70 72 65 | 73 75 6d 65 64 0a 58 09 |s is pre|sumed.X.|
|000012b0| 74 6f 20 69 6e 63 72 65 | 61 73 65 20 73 79 73 74 |to incre|ase syst|
|000012c0| 65 6d 20 73 65 63 75 72 | 69 74 79 20 62 79 20 69 |em secur|ity by i|
|000012d0| 6e 63 72 65 61 73 69 6e | 67 20 74 68 65 20 64 69 |ncreasin|g the di|
|000012e0| 66 66 69 63 75 6c 74 79 | 0a 58 09 77 69 74 68 20 |fficulty|.X.with |
|000012f0| 77 68 69 63 68 20 73 79 | 73 74 65 6d 20 63 72 61 |which sy|stem cra|
|00001300| 63 6b 65 72 73 20 6f 62 | 74 61 69 6e 20 65 6e 63 |ckers ob|tain enc|
|00001310| 72 79 70 74 65 64 20 70 | 61 73 73 77 6f 72 64 73 |rypted p|asswords|
|00001320| 2e 0a 58 0a 58 09 53 65 | 6c 65 63 74 20 74 68 69 |..X.X.Se|lect thi|
|00001330| 73 20 6f 70 74 69 6f 6e | 20 62 79 20 64 65 66 69 |s option| by defi|
|00001340| 6e 69 6e 67 20 74 68 65 | 20 53 48 41 44 4f 57 50 |ning the| SHADOWP|
|00001350| 57 44 20 6d 61 63 72 6f | 2e 0a 58 0a 58 44 42 4d |WD macro|..X.XDBM|
|00001360| 20 50 61 73 73 77 6f 72 | 64 20 46 69 6c 65 73 20 | Passwor|d Files |
|00001370| 2d 0a 58 09 54 68 69 73 | 20 6f 70 74 69 6f 6e 20 |-.X.This| option |
|00001380| 75 74 69 6c 69 7a 65 73 | 20 74 68 65 20 44 42 4d |utilizes| the DBM|
|00001390| 20 64 61 74 61 62 61 73 | 65 20 61 63 63 65 73 73 | databas|e access|
|000013a0| 20 72 6f 75 74 69 6e 65 | 73 20 74 6f 0a 58 09 69 | routine|s to.X.i|
|000013b0| 6e 63 72 65 61 73 65 20 | 74 68 65 20 70 65 72 66 |ncrease |the perf|
|000013c0| 6f 72 6d 61 6e 63 65 20 | 6f 66 20 75 73 65 72 20 |ormance |of user |
|000013d0| 6e 61 6d 65 20 61 6e 64 | 20 49 44 20 6c 6f 6f 6b |name and| ID look|
|000013e0| 75 70 73 20 69 6e 20 74 | 68 65 0a 58 09 70 61 73 |ups in t|he.X.pas|
|000013f0| 73 77 6f 72 64 20 66 69 | 6c 65 2e 0a 58 0a 58 09 |sword fi|le..X.X.|
|00001400| 53 65 6c 65 63 74 20 74 | 68 69 73 20 6f 70 74 69 |Select t|his opti|
|00001410| 6f 6e 20 62 79 20 64 65 | 66 69 6e 69 6e 67 20 62 |on by de|fining b|
|00001420| 6f 74 68 20 74 68 65 20 | 44 42 4d 20 61 6e 64 20 |oth the |DBM and |
|00001430| 47 45 54 50 57 45 4e 54 | 0a 58 09 6d 61 63 72 6f |GETPWENT|.X.macro|
|00001440| 73 2e 20 20 54 68 65 20 | 46 47 45 54 50 57 45 4e |s. The |FGETPWEN|
|00001450| 54 20 6d 61 63 72 6f 20 | 6d 75 73 74 20 61 6c 73 |T macro |must als|
|00001460| 6f 20 62 65 20 64 65 66 | 69 6e 65 64 20 6f 72 20 |o be def|ined or |
|00001470| 74 68 65 0a 58 09 66 67 | 65 74 70 77 65 6e 74 28 |the.X.fg|etpwent(|
|00001480| 29 20 6c 69 62 72 61 72 | 79 20 72 6f 75 74 69 6e |) librar|y routin|
|00001490| 65 20 6d 75 73 74 20 62 | 65 20 70 72 65 73 65 6e |e must b|e presen|
|000014a0| 74 2e 0a 58 0a 58 44 6f | 75 62 6c 65 20 4c 65 6e |t..X.XDo|uble Len|
|000014b0| 67 74 68 20 50 61 73 73 | 77 6f 72 64 73 20 2d 0a |gth Pass|words -.|
|000014c0| 58 09 54 68 69 73 20 6f | 70 74 69 6f 6e 20 65 78 |X.This o|ption ex|
|000014d0| 74 65 6e 64 73 20 74 68 | 65 20 6d 61 78 69 6d 75 |tends th|e maximu|
|000014e0| 6d 20 6c 65 6e 67 74 68 | 20 6f 66 20 61 20 75 73 |m length| of a us|
|000014f0| 65 72 20 70 61 73 73 77 | 6f 72 64 0a 58 09 74 6f |er passw|ord.X.to|
|00001500| 20 31 36 20 63 68 61 72 | 61 63 74 65 72 73 20 66 | 16 char|acters f|
|00001510| 72 6f 6d 20 65 69 67 68 | 74 2e 0a 58 0a 58 09 53 |rom eigh|t..X.X.S|
|00001520| 65 6c 65 63 74 20 74 68 | 69 73 20 6f 70 74 69 6f |elect th|is optio|
|00001530| 6e 20 62 79 20 64 65 66 | 69 6e 69 6e 67 20 74 68 |n by def|ining th|
|00001540| 65 20 44 4f 55 42 4c 45 | 53 49 5a 45 20 6d 61 63 |e DOUBLE|SIZE mac|
|00001550| 72 6f 2e 0a 58 09 43 72 | 65 64 69 74 20 66 6f 72 |ro..X.Cr|edit for|
|00001560| 20 74 68 69 73 20 6f 70 | 74 69 6f 6e 20 69 73 20 | this op|tion is |
|00001570| 64 75 65 20 4a 6f 6e 61 | 74 68 61 6e 20 42 61 79 |due Jona|than Bay|
|00001580| 65 72 2e 0a 58 0a 58 4f | 62 73 63 75 72 65 20 50 |er..X.XO|bscure P|
|00001590| 61 73 73 77 6f 72 64 20 | 54 65 73 74 69 6e 67 20 |assword |Testing |
|000015a0| 2d 0a 58 09 54 68 69 73 | 20 6f 70 74 69 6f 6e 20 |-.X.This| option |
|000015b0| 69 6e 63 6c 75 64 65 73 | 20 63 6f 64 65 20 74 6f |includes| code to|
|000015c0| 20 74 65 73 74 20 75 73 | 65 72 20 70 61 73 73 77 | test us|er passw|
|000015d0| 6f 72 64 73 20 66 6f 72 | 0a 58 09 63 6f 6d 70 6c |ords for|.X.compl|
|000015e0| 65 78 69 74 79 2e 20 20 | 54 68 65 20 70 72 6f 67 |exity. |The prog|
|000015f0| 72 61 6d 6d 65 72 20 69 | 73 20 65 6e 63 6f 75 72 |rammer i|s encour|
|00001600| 61 67 65 64 20 74 6f 20 | 65 64 69 74 20 74 68 65 |aged to |edit the|
|00001610| 0a 58 09 66 69 6c 65 20 | 6f 62 73 63 75 72 65 2e |.X.file |obscure.|
|00001620| 63 20 74 6f 20 61 64 64 | 20 61 64 64 69 74 69 6f |c to add| additio|
|00001630| 6e 61 6c 20 6d 65 74 68 | 6f 64 73 20 66 6f 72 20 |nal meth|ods for |
|00001640| 64 65 74 65 63 74 69 6e | 67 0a 58 09 73 69 6d 70 |detectin|g.X.simp|
|00001650| 6c 69 73 74 69 63 20 70 | 61 73 73 77 6f 72 64 73 |listic p|asswords|
|00001660| 2e 0a 58 0a 58 09 53 65 | 6c 65 63 74 20 74 68 69 |..X.X.Se|lect thi|
|00001670| 73 20 6f 70 74 69 6f 6e | 20 62 79 20 64 65 66 69 |s option| by defi|
|00001680| 6e 69 6e 67 20 74 68 65 | 20 4f 42 53 43 55 52 45 |ning the| OBSCURE|
|00001690| 20 6d 61 63 72 6f 2e 0a | 58 0a 58 09 41 64 64 69 | macro..|X.X.Addi|
|000016a0| 74 69 6f 6e 61 6c 6c 79 | 2c 20 74 68 65 20 50 41 |tionally|, the PA|
|000016b0| 53 53 4c 45 4e 47 54 48 | 20 6d 61 63 72 6f 20 6d |SSLENGTH| macro m|
|000016c0| 75 73 74 20 62 65 20 64 | 65 66 69 6e 65 64 20 74 |ust be d|efined t|
|000016d0| 6f 0a 58 09 63 6f 6e 74 | 72 6f 6c 20 74 68 65 20 |o.X.cont|rol the |
|000016e0| 6d 69 6e 69 6d 75 6d 20 | 6c 65 6e 67 74 68 20 66 |minimum |length f|
|000016f0| 6f 72 20 61 20 6c 65 67 | 61 6c 20 70 61 73 73 77 |or a leg|al passw|
|00001700| 6f 72 64 2e 0a 58 0a 58 | 4d 61 6e 64 61 74 6f 72 |ord..X.X|Mandator|
|00001710| 79 20 50 61 73 73 77 6f | 72 64 20 50 72 6f 6d 70 |y Passwo|rd Promp|
|00001720| 74 69 6e 67 20 2d 0a 58 | 09 54 68 69 73 20 6f 70 |ting -.X|.This op|
|00001730| 74 69 6f 6e 20 72 65 71 | 75 69 72 65 73 20 61 6c |tion req|uires al|
|00001740| 6c 20 70 61 73 73 77 6f | 72 64 73 2c 20 69 6e 63 |l passwo|rds, inc|
|00001750| 6c 75 64 69 6e 67 20 6e | 75 6c 6c 20 6f 6e 65 73 |luding n|ull ones|
|00001760| 2c 0a 58 09 74 6f 20 62 | 65 20 70 72 6f 6d 70 74 |,.X.to b|e prompt|
|00001770| 65 64 20 66 6f 72 2e 20 | 20 54 72 61 64 69 74 69 |ed for. | Traditi|
|00001780| 6f 6e 61 6c 6c 79 20 61 | 6e 20 61 63 63 6f 75 6e |onally a|n accoun|
|00001790| 74 20 77 69 74 68 20 61 | 0a 58 09 70 61 73 73 77 |t with a|.X.passw|
|000017a0| 6f 72 64 20 66 69 65 6c | 64 20 6f 66 20 27 3a 3a |ord fiel|d of '::|
|000017b0| 27 20 64 6f 65 73 20 6e | 6f 74 20 72 65 71 75 69 |' does n|ot requi|
|000017c0| 72 65 20 70 72 6f 6d 70 | 74 69 6e 67 20 66 6f 72 |re promp|ting for|
|000017d0| 2e 0a 58 09 54 68 69 73 | 20 6f 70 74 69 6f 6e 20 |..X.This| option |
|000017e0| 6d 6f 64 69 66 69 65 73 | 20 74 68 69 73 20 62 65 |modifies| this be|
|000017f0| 68 61 76 69 6f 72 20 74 | 6f 20 72 65 71 75 69 72 |havior t|o requir|
|00001800| 65 20 65 76 65 6e 0a 58 | 09 6e 75 6c 6c 20 70 61 |e even.X|.null pa|
|00001810| 73 73 77 6f 72 64 73 20 | 62 65 20 70 72 6f 6d 70 |sswords |be promp|
|00001820| 74 65 64 20 66 6f 72 2e | 0a 58 0a 58 09 53 65 6c |ted for.|.X.X.Sel|
|00001830| 65 63 74 20 74 68 69 73 | 20 6f 70 74 69 6f 6e 20 |ect this| option |
|00001840| 62 79 20 64 65 66 69 6e | 69 6e 67 20 74 68 65 20 |by defin|ing the |
|00001850| 4e 4f 42 4c 41 4e 4b 20 | 6d 61 63 72 6f 2e 0a 58 |NOBLANK |macro..X|
|00001860| 0a 58 50 61 73 73 77 6f | 72 64 20 41 67 69 6e 67 |.XPasswo|rd Aging|
|00001870| 20 44 65 66 61 75 6c 74 | 73 20 2d 0a 58 09 59 6f | Default|s -.X.Yo|
|00001880| 75 20 6d 61 79 20 73 65 | 6c 65 63 74 20 74 68 65 |u may se|lect the|
|00001890| 20 64 65 66 61 75 6c 74 | 20 6e 75 6d 62 65 72 20 | default| number |
|000018a0| 6f 66 20 64 61 79 73 20 | 64 75 72 69 6e 67 20 77 |of days |during w|
|000018b0| 68 69 63 68 20 61 0a 58 | 09 70 61 73 73 77 6f 72 |hich a.X|.passwor|
|000018c0| 64 20 69 73 20 76 61 6c | 69 64 2e 20 20 54 68 65 |d is val|id. The|
|000018d0| 20 70 77 63 6f 6e 76 20 | 63 6f 6d 6d 61 6e 64 20 | pwconv |command |
|000018e0| 61 64 64 73 20 61 67 69 | 6e 67 0a 58 09 69 6e 66 |adds agi|ng.X.inf|
|000018f0| 6f 72 6d 61 74 69 6f 6e | 20 74 6f 20 61 63 63 6f |ormation| to acco|
|00001900| 75 6e 74 73 20 77 68 69 | 63 68 20 64 6f 20 6e 6f |unts whi|ch do no|
|00001910| 74 20 69 6e 63 6c 75 64 | 65 20 69 74 20 61 6c 72 |t includ|e it alr|
|00001920| 65 61 64 79 2e 0a 58 0a | 58 09 54 68 65 20 4d 49 |eady..X.|X.The MI|
|00001930| 4e 44 41 59 53 20 6d 61 | 63 72 6f 20 6d 75 73 74 |NDAYS ma|cro must|
|00001940| 20 62 65 20 64 65 66 69 | 6e 65 64 20 74 6f 20 62 | be defi|ned to b|
|00001950| 65 20 74 68 65 20 6d 69 | 6e 69 6d 75 6d 0a 58 09 |e the mi|nimum.X.|
|00001960| 6e 75 6d 62 65 72 20 6f | 66 20 64 61 79 73 20 77 |number o|f days w|
|00001970| 68 69 63 68 20 6d 75 73 | 74 20 70 61 73 73 20 62 |hich mus|t pass b|
|00001980| 65 66 6f 72 65 20 61 20 | 70 61 73 73 77 6f 72 64 |efore a |password|
|00001990| 20 6d 61 79 20 62 65 0a | 58 09 63 68 61 6e 67 65 | may be.|X.change|
|000019a0| 64 2e 20 20 54 68 65 20 | 4d 41 58 44 41 59 53 20 |d. The |MAXDAYS |
|000019b0| 6d 61 63 72 6f 20 6d 75 | 73 74 20 62 65 20 64 65 |macro mu|st be de|
|000019c0| 66 69 6e 65 64 20 74 6f | 20 62 65 20 74 68 65 0a |fined to| be the.|
|000019d0| 58 09 6d 61 78 69 6d 75 | 6d 20 6e 75 6d 62 65 72 |X.maximu|m number|
|000019e0| 20 6f 66 20 64 61 79 73 | 20 77 68 69 63 68 20 61 | of days| which a|
|000019f0| 20 70 61 73 73 77 6f 72 | 64 20 77 69 6c 6c 20 72 | passwor|d will r|
|00001a00| 65 6d 61 69 6e 0a 58 09 | 76 61 6c 69 64 20 64 75 |emain.X.|valid du|
|00001a10| 72 69 6e 67 2e 0a 58 0a | 58 09 54 68 65 20 57 41 |ring..X.|X.The WA|
|00001a20| 52 4e 44 41 59 53 20 6d | 61 63 72 6f 20 63 6f 6e |RNDAYS m|acro con|
|00001a30| 74 72 6f 6c 73 20 68 6f | 77 20 6d 61 6e 79 20 64 |trols ho|w many d|
|00001a40| 61 79 73 20 77 61 72 6e | 69 6e 67 20 61 20 75 73 |ays warn|ing a us|
|00001a50| 65 72 0a 58 09 69 73 20 | 67 69 76 65 6e 20 74 68 |er.X.is |given th|
|00001a60| 61 74 20 74 68 65 69 72 | 20 70 61 73 73 77 6f 72 |at their| passwor|
|00001a70| 64 20 69 73 20 61 62 6f | 75 74 20 74 6f 20 65 78 |d is abo|ut to ex|
|00001a80| 70 69 72 65 2e 20 20 54 | 68 65 0a 58 09 64 65 66 |pire. T|he.X.def|
|00001a90| 61 75 6c 74 20 69 73 20 | 31 30 2e 0a 58 0a 58 48 |ault is |10..X.XH|
|00001aa0| 5a 20 45 6e 76 69 72 6f | 6e 6d 65 6e 74 61 6c 20 |Z Enviro|nmental |
|00001ab0| 56 61 72 69 61 62 6c 65 | 20 2d 0a 58 09 54 68 69 |Variable| -.X.Thi|
|00001ac0| 73 20 6f 70 74 69 6f 6e | 20 70 72 65 2d 64 65 66 |s option| pre-def|
|00001ad0| 69 6e 65 73 20 74 68 65 | 20 48 5a 20 65 6e 76 69 |ines the| HZ envi|
|00001ae0| 72 6f 6e 6d 65 6e 74 61 | 6c 20 76 61 72 69 61 62 |ronmenta|l variab|
|00001af0| 6c 65 2e 0a 58 09 43 65 | 72 74 61 69 6e 20 73 79 |le..X.Ce|rtain sy|
|00001b00| 73 74 65 6d 73 20 72 65 | 71 75 69 72 65 20 74 68 |stems re|quire th|
|00001b10| 69 73 20 76 61 72 69 61 | 62 6c 65 20 62 65 20 64 |is varia|ble be d|
|00001b20| 65 66 69 6e 65 64 20 66 | 6f 72 0a 58 09 73 79 73 |efined f|or.X.sys|
|00001b30| 74 65 6d 20 74 69 6d 65 | 20 72 65 70 6f 72 74 69 |tem time| reporti|
|00001b40| 6e 67 20 66 75 6e 63 74 | 69 6f 6e 73 20 74 6f 20 |ng funct|ions to |
|00001b50| 77 6f 72 6b 20 70 72 6f | 70 65 72 6c 79 2e 0a 58 |work pro|perly..X|
|00001b60| 0a 58 09 53 65 6c 65 63 | 74 20 74 68 69 73 20 6f |.X.Selec|t this o|
|00001b70| 70 74 69 6f 6e 20 62 79 | 20 64 65 66 69 6e 69 6e |ption by| definin|
|00001b80| 67 20 74 68 65 20 48 5a | 20 6d 61 63 72 6f 20 74 |g the HZ| macro t|
|00001b90| 6f 20 68 61 76 65 0a 58 | 09 74 68 65 20 64 65 73 |o have.X|.the des|
|00001ba0| 69 72 65 64 20 65 6e 76 | 69 72 6f 6e 6d 65 6e 74 |ired env|ironment|
|00001bb0| 61 6c 20 76 61 72 69 61 | 62 6c 65 20 76 61 6c 75 |al varia|ble valu|
|00001bc0| 65 2e 0a 58 0a 58 54 5a | 20 45 6e 76 69 72 6f 6e |e..X.XTZ| Environ|
|00001bd0| 6d 65 6e 74 61 6c 20 56 | 61 72 69 61 62 6c 65 20 |mental V|ariable |
|00001be0| 2d 0a 58 09 54 68 69 73 | 20 6f 70 74 69 6f 6e 20 |-.X.This| option |
|00001bf0| 70 72 65 2d 64 65 66 69 | 6e 65 73 20 74 68 65 20 |pre-defi|nes the |
|00001c00| 54 5a 20 65 6e 76 69 72 | 6f 6e 6d 65 6e 74 61 6c |TZ envir|onmental|
|00001c10| 20 76 61 72 69 61 62 6c | 65 2e 0a 58 09 54 68 69 | variabl|e..X.Thi|
|00001c20| 73 20 70 72 6f 76 69 64 | 65 73 20 61 20 64 65 66 |s provid|es a def|
|00001c30| 61 75 6c 74 20 74 69 6d | 65 7a 6f 6e 65 20 76 61 |ault tim|ezone va|
|00001c40| 72 69 61 62 6c 65 20 66 | 6f 72 20 75 73 65 20 62 |riable f|or use b|
|00001c50| 79 0a 58 09 76 61 72 69 | 6f 75 73 20 75 74 69 6c |y.X.vari|ous util|
|00001c60| 69 74 69 65 73 2e 0a 58 | 0a 58 09 53 65 6c 65 63 |ities..X|.X.Selec|
|00001c70| 74 20 74 68 69 73 20 6f | 70 74 69 6f 6e 20 62 79 |t this o|ption by|
|00001c80| 20 64 65 66 69 6e 69 6e | 67 20 74 68 65 20 54 5a | definin|g the TZ|
|00001c90| 20 6d 61 63 72 6f 20 74 | 6f 20 68 61 76 65 0a 58 | macro t|o have.X|
|00001ca0| 09 74 68 65 20 64 65 73 | 69 72 65 64 20 65 6e 76 |.the des|ired env|
|00001cb0| 69 72 6f 6e 6d 65 6e 74 | 61 6c 20 76 61 72 69 61 |ironment|al varia|
|00001cc0| 62 6c 65 20 76 61 6c 75 | 65 2c 20 6f 72 20 74 68 |ble valu|e, or th|
|00001cd0| 65 20 6e 61 6d 65 0a 58 | 09 6f 66 20 74 68 65 20 |e name.X|.of the |
|00001ce0| 66 69 6c 65 20 63 6f 6e | 74 61 69 6e 69 6e 67 20 |file con|taining |
|00001cf0| 74 68 65 20 64 65 73 69 | 72 65 64 20 76 61 6c 75 |the desi|red valu|
|00001d00| 65 2e 0a 58 0a 58 50 61 | 73 73 77 6f 72 64 20 41 |e..X.XPa|ssword A|
|00001d10| 67 69 6e 67 20 2d 0a 58 | 09 54 68 69 73 20 6f 70 |ging -.X|.This op|
|00001d20| 74 69 6f 6e 20 69 6e 63 | 6c 75 64 65 73 20 63 6f |tion inc|ludes co|
|00001d30| 64 65 20 74 6f 20 70 65 | 72 66 6f 72 6d 20 70 61 |de to pe|rform pa|
|00001d40| 73 73 77 6f 72 64 20 61 | 67 69 6e 67 2e 0a 58 09 |ssword a|ging..X.|
|00001d50| 50 61 73 73 77 6f 72 64 | 20 61 67 69 6e 67 20 69 |Password| aging i|
|00001d60| 73 20 70 72 65 73 75 6d | 65 64 20 74 6f 20 69 6e |s presum|ed to in|
|00001d70| 63 72 65 61 73 65 20 73 | 79 73 74 65 6d 20 73 65 |crease s|ystem se|
|00001d80| 63 75 72 69 74 79 0a 58 | 09 62 79 20 66 6f 72 63 |curity.X|.by forc|
|00001d90| 69 6e 67 20 75 73 65 72 | 73 20 74 6f 20 63 68 61 |ing user|s to cha|
|00001da0| 6e 67 65 20 70 61 73 73 | 77 6f 72 64 73 20 6f 6e |nge pass|words on|
|00001db0| 20 61 20 72 65 67 75 6c | 61 72 0a 58 09 62 61 73 | a regul|ar.X.bas|
|00001dc0| 69 73 2e 20 20 54 68 65 | 20 72 65 73 6f 6c 75 74 |is. The| resolut|
|00001dd0| 69 6f 6e 20 6f 6e 20 70 | 61 73 73 77 6f 72 64 20 |ion on p|assword |
|00001de0| 61 67 65 20 69 73 20 69 | 6e 20 77 65 65 6b 73 20 |age is i|n weeks |
|00001df0| 66 6f 72 0a 58 09 6e 6f | 6e 2d 73 68 61 64 6f 77 |for.X.no|n-shadow|
|00001e00| 20 70 61 73 73 77 6f 72 | 64 20 73 79 73 74 65 6d | passwor|d system|
|00001e10| 73 20 61 6e 64 20 69 6e | 20 64 61 79 73 20 6f 74 |s and in| days ot|
|00001e20| 68 65 72 77 69 73 65 2e | 0a 58 0a 58 09 53 65 6c |herwise.|.X.X.Sel|
|00001e30| 65 63 74 20 74 68 69 73 | 20 6f 70 74 69 6f 6e 20 |ect this| option |
|00001e40| 62 79 20 64 65 66 69 6e | 69 6e 67 20 74 68 65 20 |by defin|ing the |
|00001e50| 41 47 49 4e 47 20 6d 61 | 63 72 6f 2e 0a 58 0a 58 |AGING ma|cro..X.X|
|00001e60| 4d 61 69 6c 62 6f 78 20 | 43 68 65 63 6b 69 6e 67 |Mailbox |Checking|
|00001e70| 20 2d 0a 58 09 54 68 69 | 73 20 6f 70 74 69 6f 6e | -.X.Thi|s option|
|00001e80| 20 69 6e 63 6c 75 64 65 | 73 20 63 6f 64 65 20 74 | include|s code t|
|00001e90| 6f 20 63 68 65 63 6b 20 | 74 68 65 20 73 74 61 74 |o check |the stat|
|00001ea0| 75 73 20 6f 66 20 74 68 | 65 0a 58 09 75 73 65 72 |us of th|e.X.user|
|00001eb0| 27 73 20 6d 61 69 6c 62 | 6f 78 2e 20 20 4f 6e 65 |'s mailb|ox. One|
|00001ec0| 20 6f 66 20 74 68 72 65 | 65 20 6d 65 73 73 61 67 | of thre|e messag|
|00001ed0| 65 73 20 61 72 65 20 70 | 72 6f 64 75 63 65 64 0a |es are p|roduced.|
|00001ee0| 58 09 64 65 70 65 6e 64 | 69 6e 67 20 6f 6e 20 74 |X.depend|ing on t|
|00001ef0| 68 65 20 73 74 61 74 75 | 73 20 6f 66 20 74 68 65 |he statu|s of the|
|00001f00| 20 75 73 65 72 27 73 20 | 6d 61 69 6c 62 6f 78 2e | user's |mailbox.|
|00001f10| 0a 58 0a 58 09 53 65 6c | 65 63 74 20 74 68 69 73 |.X.X.Sel|ect this|
|00001f20| 20 6f 70 74 69 6f 6e 20 | 62 79 20 64 65 66 69 6e | option |by defin|
|00001f30| 69 6e 67 20 74 68 65 20 | 4d 41 49 4c 43 48 45 43 |ing the |MAILCHEC|
|00001f40| 4b 20 6d 61 63 72 6f 2e | 0a 58 0a 58 43 6f 6e 73 |K macro.|.X.XCons|
|00001f50| 6f 6c 65 20 52 65 73 74 | 72 69 63 74 65 64 20 52 |ole Rest|ricted R|
|00001f60| 6f 6f 74 20 4c 6f 67 69 | 6e 73 20 2d 0a 58 09 54 |oot Logi|ns -.X.T|
|00001f70| 68 69 73 20 6f 70 74 69 | 6f 6e 20 72 65 73 74 72 |his opti|on restr|
|00001f80| 69 63 74 73 20 74 68 65 | 20 70 6f 72 74 20 77 68 |icts the| port wh|
|00001f90| 69 63 68 20 72 6f 6f 74 | 20 6d 61 79 20 6c 65 67 |ich root| may leg|
|00001fa0| 61 6c 6c 79 0a 58 09 6c | 6f 67 69 6e 20 6f 6e 2e |ally.X.l|ogin on.|
|00001fb0| 20 20 54 68 69 73 20 6f | 70 74 69 6f 6e 20 70 72 | This o|ption pr|
|00001fc0| 65 73 75 6d 61 62 6c 79 | 20 69 6e 63 72 65 61 73 |esumably| increas|
|00001fd0| 65 73 20 73 79 73 74 65 | 6d 0a 58 09 73 65 63 75 |es syste|m.X.secu|
|00001fe0| 72 69 74 79 20 62 79 20 | 70 72 65 76 65 6e 74 69 |rity by |preventi|
|00001ff0| 6e 67 20 6f 75 74 73 69 | 64 65 20 61 74 74 61 63 |ng outsi|de attac|
|00002000| 6b 73 20 61 67 61 69 6e | 73 74 20 74 68 65 20 72 |ks again|st the r|
|00002010| 6f 6f 74 0a 58 09 61 63 | 63 6f 75 6e 74 2e 0a 58 |oot.X.ac|count..X|
|00002020| 0a 58 09 53 65 6c 65 63 | 74 20 74 68 69 73 20 6f |.X.Selec|t this o|
|00002030| 70 74 69 6f 6e 20 62 79 | 20 64 65 66 69 6e 69 6e |ption by| definin|
|00002040| 67 20 74 68 65 20 43 4f | 4e 53 4f 4c 45 20 6d 61 |g the CO|NSOLE ma|
|00002050| 63 72 6f 20 74 6f 0a 58 | 09 68 61 76 65 20 74 68 |cro to.X|.have th|
|00002060| 65 20 64 65 73 69 72 65 | 64 20 70 6f 72 74 20 6e |e desire|d port n|
|00002070| 61 6d 65 2e 20 20 49 66 | 20 74 68 69 73 20 66 69 |ame. If| this fi|
|00002080| 6c 65 20 69 73 20 61 20 | 72 65 67 75 6c 61 72 0a |le is a |regular.|
|00002090| 58 09 66 69 6c 65 2c 20 | 69 74 20 69 73 20 63 6f |X.file, |it is co|
|000020a0| 6e 73 69 64 65 72 65 64 | 20 74 6f 20 63 6f 6e 74 |nsidered| to cont|
|000020b0| 61 69 6e 20 61 20 6c 69 | 73 74 20 6f 66 20 6c 65 |ain a li|st of le|
|000020c0| 67 61 6c 20 70 6f 72 74 | 0a 58 09 6e 61 6d 65 73 |gal port|.X.names|
|000020d0| 2c 20 6f 6e 65 20 70 65 | 72 20 6c 69 6e 65 2e 20 |, one pe|r line. |
|000020e0| 20 4e 6f 74 65 20 74 68 | 61 74 20 74 68 65 20 70 | Note th|at the p|
|000020f0| 6f 72 74 20 6e 61 6d 65 | 73 20 44 4f 20 4e 4f 54 |ort name|s DO NOT|
|00002100| 0a 58 09 62 65 67 69 6e | 20 77 69 74 68 20 22 2f |.X.begin| with "/|
|00002110| 64 65 76 2f 22 20 61 6e | 64 20 74 68 61 74 20 61 |dev/" an|d that a|
|00002120| 20 66 69 6c 65 20 6e 61 | 6d 65 20 77 6f 75 6c 64 | file na|me would|
|00002130| 20 68 61 76 65 20 74 6f | 0a 58 09 62 65 20 66 75 | have to|.X.be fu|
|00002140| 6c 6c 79 20 71 75 61 6c | 69 66 69 65 64 2e 20 20 |lly qual|ified. |
|00002150| 53 65 65 20 63 6f 6e 66 | 69 67 2e 68 20 66 6f 72 |See conf|ig.h for|
|00002160| 20 61 20 70 61 69 72 20 | 6f 66 0a 58 09 65 78 61 | a pair |of.X.exa|
|00002170| 6d 70 6c 65 73 2e 0a 58 | 0a 58 52 65 73 74 72 69 |mples..X|.XRestri|
|00002180| 63 74 65 64 20 55 73 65 | 72 20 4c 6f 67 69 6e 73 |cted Use|r Logins|
|00002190| 20 2d 0a 58 09 54 68 69 | 73 20 6f 70 74 69 6f 6e | -.X.Thi|s option|
|000021a0| 20 70 65 72 6d 69 74 73 | 20 79 6f 75 20 74 6f 20 | permits| you to |
|000021b0| 73 70 65 63 69 66 79 20 | 61 20 66 69 6c 65 20 77 |specify |a file w|
|000021c0| 68 69 63 68 20 64 69 73 | 61 62 6c 65 73 0a 58 09 |hich dis|ables.X.|
|000021d0| 75 73 65 72 20 6c 6f 67 | 69 6e 73 2e 20 20 54 68 |user log|ins. Th|
|000021e0| 69 73 20 6f 70 74 69 6f | 6e 73 20 70 65 72 6d 69 |is optio|ns permi|
|000021f0| 74 73 20 79 6f 75 20 74 | 6f 20 6b 65 65 70 20 6e |ts you t|o keep n|
|00002200| 6f 72 6d 61 6c 0a 58 09 | 75 73 65 72 73 20 6f 66 |ormal.X.|users of|
|00002210| 66 20 6f 66 20 74 68 65 | 20 73 79 73 74 65 6d 20 |f of the| system |
|00002220| 77 68 69 6c 65 20 70 65 | 72 66 6f 72 6d 69 6e 67 |while pe|rforming|
|00002230| 20 6d 61 69 6e 74 65 6e | 61 6e 63 65 0a 58 09 66 | mainten|ance.X.f|
|00002240| 75 6e 63 74 69 6f 6e 73 | 2e 0a 58 0a 58 09 53 65 |unctions|..X.X.Se|
|00002250| 6c 65 63 74 20 74 68 69 | 73 20 6f 70 74 69 6f 6e |lect thi|s option|
|00002260| 20 62 79 20 64 65 66 69 | 6e 69 6e 67 20 4e 4f 4c | by defi|ning NOL|
|00002270| 4f 47 49 4e 53 20 74 6f | 20 62 65 20 74 68 65 20 |OGINS to| be the |
|00002280| 6e 61 6d 65 0a 58 09 6f | 66 20 74 68 65 20 66 69 |name.X.o|f the fi|
|00002290| 6c 65 20 74 6f 20 75 73 | 65 2e 0a 58 0a 58 52 65 |le to us|e..X.XRe|
|000022a0| 73 74 72 69 63 74 65 64 | 20 55 73 65 20 41 63 63 |stricted| Use Acc|
|000022b0| 6f 75 6e 74 73 20 2d 0a | 58 09 54 68 69 73 20 6f |ounts -.|X.This o|
|000022c0| 70 74 69 6f 6e 20 70 65 | 72 6d 69 74 73 20 63 65 |ption pe|rmits ce|
|000022d0| 72 74 61 69 6e 20 61 63 | 63 6f 75 6e 74 73 20 74 |rtain ac|counts t|
|000022e0| 6f 20 62 65 20 75 73 65 | 64 20 66 6f 72 0a 58 09 |o be use|d for.X.|
|000022f0| 69 64 65 6e 74 69 66 69 | 63 61 74 69 6f 6e 20 70 |identifi|cation p|
|00002300| 75 72 70 6f 73 65 73 20 | 6f 6e 6c 79 2e 20 20 54 |urposes |only. T|
|00002310| 68 69 73 20 6f 70 74 69 | 6f 6e 73 20 61 73 73 6f |his opti|ons asso|
|00002320| 63 69 61 74 65 73 0a 58 | 09 6c 6f 67 69 6e 20 49 |ciates.X|.login I|
|00002330| 44 27 73 20 77 69 74 68 | 20 55 49 44 27 73 2c 20 |D's with| UID's, |
|00002340| 73 75 63 68 20 61 73 20 | 66 6f 72 20 64 69 73 6b |such as |for disk|
|00002350| 20 73 70 61 63 65 20 61 | 63 63 6f 75 6e 74 69 6e | space a|ccountin|
|00002360| 67 0a 58 09 6f 72 20 61 | 6e 6f 6e 79 6d 6f 75 73 |g.X.or a|nonymous|
|00002370| 20 46 54 50 20 61 63 63 | 6f 75 6e 74 73 2e 20 20 | FTP acc|ounts. |
|00002380| 50 61 73 73 77 6f 72 64 | 73 20 66 6f 72 20 74 68 |Password|s for th|
|00002390| 65 73 65 20 61 63 63 6f | 75 6e 74 73 0a 58 09 6d |ese acco|unts.X.m|
|000023a0| 61 79 20 6f 6e 6c 79 20 | 62 65 20 63 68 61 6e 67 |ay only |be chang|
|000023b0| 65 64 20 62 79 20 72 6f | 6f 74 2e 0a 58 0a 58 09 |ed by ro|ot..X.X.|
|000023c0| 53 65 6c 65 63 74 20 74 | 68 69 73 20 6f 70 74 69 |Select t|his opti|
|000023d0| 6f 6e 20 62 79 20 64 65 | 66 69 6e 69 6e 67 20 4e |on by de|fining N|
|000023e0| 4f 55 53 45 20 74 6f 20 | 62 65 20 74 68 65 20 73 |OUSE to |be the s|
|000023f0| 74 72 69 6e 67 0a 58 09 | 74 6f 20 69 6e 63 6c 75 |tring.X.|to inclu|
|00002400| 64 65 20 69 6e 20 74 68 | 65 20 70 61 73 73 77 6f |de in th|e passwo|
|00002410| 72 64 20 66 69 6c 65 20 | 69 6e 20 70 6c 61 63 65 |rd file |in place|
|00002420| 20 6f 66 20 74 68 65 20 | 75 73 65 72 27 73 0a 58 | of the |user's.X|
|00002430| 09 73 68 65 6c 6c 2e 0a | 58 0a 58 4d 65 73 73 61 |.shell..|X.XMessa|
|00002440| 67 65 20 6f 66 20 74 68 | 65 20 44 61 79 20 50 72 |ge of th|e Day Pr|
|00002450| 69 6e 74 69 6e 67 20 2d | 0a 58 09 54 68 69 73 20 |inting -|.X.This |
|00002460| 6f 70 74 69 6f 6e 20 63 | 61 75 73 65 73 20 74 68 |option c|auses th|
|00002470| 65 20 6d 65 73 73 61 67 | 65 20 6f 66 20 74 68 65 |e messag|e of the|
|00002480| 20 64 61 79 20 74 6f 20 | 62 65 0a 58 09 70 72 69 | day to |be.X.pri|
|00002490| 6e 74 65 64 20 61 74 20 | 6c 6f 67 69 6e 20 74 69 |nted at |login ti|
|000024a0| 6d 65 2e 0a 58 0a 58 09 | 53 65 6c 65 63 74 20 74 |me..X.X.|Select t|
|000024b0| 68 69 73 20 6f 70 74 69 | 6f 6e 20 62 79 20 64 65 |his opti|on by de|
|000024c0| 66 69 6e 69 6e 67 20 74 | 68 65 20 4d 4f 54 44 20 |fining t|he MOTD |
|000024d0| 6d 61 63 72 6f 2e 0a 58 | 0a 58 09 49 66 20 79 6f |macro..X|.X.If yo|
|000024e0| 75 20 77 69 73 68 20 74 | 68 69 73 20 66 65 61 74 |u wish t|his feat|
|000024f0| 75 72 65 20 74 6f 20 62 | 65 20 6f 76 65 72 72 69 |ure to b|e overri|
|00002500| 64 65 6e 20 6f 6e 20 61 | 20 70 65 72 2d 75 73 65 |den on a| per-use|
|00002510| 72 0a 58 09 62 61 73 69 | 73 2c 20 64 65 66 69 6e |r.X.basi|s, defin|
|00002520| 65 20 74 68 65 20 6d 61 | 63 72 6f 20 48 55 53 48 |e the ma|cro HUSH|
|00002530| 4c 4f 47 49 4e 20 61 6e | 64 20 75 73 65 72 73 20 |LOGIN an|d users |
|00002540| 6d 61 79 20 74 68 65 6e | 0a 58 09 74 75 72 6e 20 |may then|.X.turn |
|00002550| 6f 66 66 20 74 68 65 20 | 2f 65 74 63 2f 6d 6f 74 |off the |/etc/mot|
|00002560| 64 20 6d 65 73 73 61 67 | 65 20 62 79 20 63 72 65 |d messag|e by cre|
|00002570| 61 74 69 6e 67 20 61 20 | 66 69 6c 65 0a 58 09 27 |ating a |file.X.'|
|00002580| 2e 68 75 73 68 6c 6f 67 | 69 6e 27 20 69 6e 20 74 |.hushlog|in' in t|
|00002590| 68 65 69 72 20 68 6f 6d | 65 20 64 69 72 65 63 74 |heir hom|e direct|
|000025a0| 6f 72 69 65 73 2e 0a 58 | 0a 58 4c 61 73 74 20 4c |ories..X|.XLast L|
|000025b0| 6f 67 69 6e 20 54 69 6d | 65 20 4c 6f 67 67 69 6e |ogin Tim|e Loggin|
|000025c0| 67 20 2d 0a 58 09 54 68 | 69 73 20 6f 70 74 69 6f |g -.X.Th|is optio|
|000025d0| 6e 20 63 61 75 73 65 73 | 20 61 20 72 65 63 6f 72 |n causes| a recor|
|000025e0| 64 20 74 6f 20 62 65 20 | 6d 61 64 65 20 6f 66 20 |d to be |made of |
|000025f0| 73 75 63 63 65 73 73 66 | 75 6c 0a 58 09 6c 6f 67 |successf|ul.X.log|
|00002600| 69 6e 73 20 69 6e 20 2f | 75 73 72 2f 61 64 6d 2f |ins in /|usr/adm/|
|00002610| 6c 61 73 74 6c 6f 67 2e | 20 20 54 68 65 20 66 6f |lastlog.| The fo|
|00002620| 72 6d 61 74 20 6f 66 20 | 74 68 65 0a 58 09 73 74 |rmat of |the.X.st|
|00002630| 72 75 63 74 75 72 65 20 | 69 73 20 64 65 66 69 6e |ructure |is defin|
|00002640| 65 64 20 69 6e 20 6c 61 | 73 74 6c 6f 67 2e 68 2e |ed in la|stlog.h.|
|00002650| 0a 58 0a 58 09 53 65 6c | 65 63 74 20 74 68 69 73 |.X.X.Sel|ect this|
|00002660| 20 6f 70 74 69 6f 6e 20 | 62 79 20 64 65 66 69 6e | option |by defin|
|00002670| 69 6e 67 20 74 68 65 20 | 4c 41 53 54 4c 4f 47 20 |ing the |LASTLOG |
|00002680| 6d 61 63 72 6f 2e 0a 58 | 0a 58 09 59 6f 75 20 77 |macro..X|.X.You w|
|00002690| 69 6c 6c 20 6e 65 65 64 | 20 74 6f 20 64 65 74 65 |ill need| to dete|
|000026a0| 72 6d 69 6e 65 20 69 66 | 20 79 6f 75 20 73 79 73 |rmine if| you sys|
|000026b0| 74 65 6d 20 61 6c 72 65 | 61 64 79 20 68 61 73 0a |tem alre|ady has.|
|000026c0| 58 09 61 20 6c 61 73 74 | 6c 6f 67 2e 68 20 66 69 |X.a last|log.h fi|
|000026d0| 6c 65 20 61 6e 64 20 75 | 73 65 20 74 68 61 74 20 |le and u|se that |
|000026e0| 66 69 6c 65 20 69 66 20 | 70 72 65 73 65 6e 74 2e |file if |present.|
|000026f0| 0a 58 0a 58 46 61 69 6c | 65 64 20 4c 6f 67 69 6e |.X.XFail|ed Login|
|00002700| 20 4c 6f 67 67 69 6e 67 | 20 2d 0a 58 09 54 68 69 | Logging| -.X.Thi|
|00002710| 73 20 6f 70 74 69 6f 6e | 20 63 61 75 73 65 73 20 |s option| causes |
|00002720| 61 20 72 65 63 6f 72 64 | 20 74 6f 20 62 65 20 6b |a record| to be k|
|00002730| 65 70 74 20 6f 66 20 74 | 68 65 20 6d 6f 73 74 0a |ept of t|he most.|
|00002740| 58 09 72 65 63 65 6e 74 | 20 6c 6f 67 69 6e 20 66 |X.recent| login f|
|00002750| 61 69 6c 75 72 65 20 62 | 79 20 64 61 74 65 20 61 |ailure b|y date a|
|00002760| 6e 64 20 70 6f 72 74 2e | 20 20 41 20 63 75 6d 6d |nd port.| A cumm|
|00002770| 75 6c 61 74 69 76 65 0a | 58 09 63 6f 75 6e 74 20 |ulative.|X.count |
|00002780| 6f 66 20 66 61 69 6c 75 | 72 65 73 20 69 73 20 6d |of failu|res is m|
|00002790| 61 69 6e 74 61 69 6e 65 | 64 20 61 6e 64 20 63 6f |aintaine|d and co|
|000027a0| 6d 70 61 72 65 64 20 61 | 67 61 69 6e 73 74 0a 58 |mpared a|gainst.X|
|000027b0| 09 61 6e 20 61 6c 6c 6f | 77 61 62 6c 65 20 6c 69 |.an allo|wable li|
|000027c0| 6d 69 74 2e 0a 58 0a 58 | 09 53 65 6c 65 63 74 20 |mit..X.X|.Select |
|000027d0| 74 68 69 73 20 6f 70 74 | 69 6f 6e 20 62 79 20 64 |this opt|ion by d|
|000027e0| 65 66 69 6e 69 6e 67 20 | 74 68 65 20 46 41 49 4c |efining |the FAIL|
|000027f0| 4c 4f 47 20 6d 61 63 72 | 6f 2e 0a 58 0a 58 09 41 |LOG macr|o..X.X.A|
|00002800| 6e 20 61 64 64 69 74 69 | 6f 6e 61 6c 20 6f 70 74 |n additi|onal opt|
|00002810| 69 6f 6e 20 69 73 20 70 | 72 6f 76 69 64 65 64 20 |ion is p|rovided |
|00002820| 77 68 69 63 68 20 77 69 | 6c 6c 20 63 72 65 61 74 |which wi|ll creat|
|00002830| 65 0a 58 09 75 74 6d 70 | 2d 6c 69 6b 65 20 65 6e |e.X.utmp|-like en|
|00002840| 74 72 69 65 73 20 66 6f | 72 20 65 61 63 68 20 66 |tries fo|r each f|
|00002850| 61 69 6c 65 64 20 6c 6f | 67 69 6e 2e 20 20 42 65 |ailed lo|gin. Be|
|00002860| 63 61 75 73 65 20 6f 66 | 0a 58 09 73 65 63 75 72 |cause of|.X.secur|
|00002870| 69 74 79 20 63 6f 6e 63 | 65 72 6e 73 2c 20 6f 6e |ity conc|erns, on|
|00002880| 6c 79 20 76 61 6c 69 64 | 20 61 63 63 6f 75 6e 74 |ly valid| account|
|00002890| 20 6e 61 6d 65 73 20 77 | 69 6c 6c 20 62 65 0a 58 | names w|ill be.X|
|000028a0| 09 6c 6f 67 67 65 64 2e | 0a 58 0a 58 09 53 65 6c |.logged.|.X.X.Sel|
|000028b0| 65 63 74 20 74 68 69 73 | 20 6f 70 74 69 6f 6e 20 |ect this| option |
|000028c0| 62 79 20 64 65 66 69 6e | 69 6e 67 20 74 68 65 20 |by defin|ing the |
|000028d0| 46 54 4d 50 20 6d 61 63 | 72 6f 20 74 6f 20 62 65 |FTMP mac|ro to be|
|000028e0| 0a 58 09 74 68 65 20 6e | 61 6d 65 20 6f 66 20 61 |.X.the n|ame of a|
|000028f0| 20 75 74 6d 70 2d 6c 69 | 6b 65 20 66 69 6c 65 2e | utmp-li|ke file.|
|00002900| 20 20 59 6f 75 20 6d 61 | 79 20 63 6f 6e 74 72 6f | You ma|y contro|
|00002910| 6c 20 74 68 65 0a 58 09 | 72 65 63 6f 72 64 69 6e |l the.X.|recordin|
|00002920| 67 20 6f 66 20 75 6e 6b | 6e 6f 77 6e 20 6c 6f 67 |g of unk|nown log|
|00002930| 69 6e 20 6e 61 6d 65 73 | 20 62 79 20 64 65 66 69 |in names| by defi|
|00002940| 6e 69 6e 67 20 74 68 65 | 0a 58 09 55 4e 4b 4e 4f |ning the|.X.UNKNO|
|00002950| 57 4e 53 20 6d 61 63 72 | 6f 2e 20 20 54 68 69 73 |WNS macr|o. This|
|00002960| 20 70 72 65 76 65 6e 74 | 73 20 70 6f 73 73 69 62 | prevent|s possib|
|00002970| 6c 65 20 70 61 73 73 77 | 6f 72 64 73 20 66 72 6f |le passw|ords fro|
|00002980| 6d 0a 58 09 62 65 69 6e | 67 20 65 6e 74 65 72 65 |m.X.bein|g entere|
|00002990| 64 20 69 6e 74 6f 20 74 | 68 65 20 46 54 4d 50 20 |d into t|he FTMP |
|000029a0| 66 69 6c 65 2e 0a 58 0a | 58 09 53 65 65 20 74 68 |file..X.|X.See th|
|000029b0| 65 20 66 69 6c 65 20 66 | 61 69 6c 6c 6f 67 2e 68 |e file f|aillog.h|
|000029c0| 20 61 6e 64 20 63 6f 6e | 66 69 67 2e 68 20 66 6f | and con|fig.h fo|
|000029d0| 72 20 6d 6f 72 65 20 64 | 65 74 61 69 6c 73 2e 0a |r more d|etails..|
|000029e0| 58 0a 58 54 65 72 6d 69 | 6e 61 6c 20 50 65 72 6d |X.XTermi|nal Perm|
|000029f0| 69 73 73 69 6f 6e 73 20 | 2d 20 0a 58 09 54 68 69 |issions |- .X.Thi|
|00002a00| 73 20 6f 70 74 69 6f 6e | 20 61 6c 6c 6f 77 73 20 |s option| allows |
|00002a10| 74 68 65 20 74 65 72 6d | 69 6e 61 6c 20 6d 6f 64 |the term|inal mod|
|00002a20| 65 73 20 74 6f 20 62 65 | 20 73 65 74 20 61 74 0a |es to be| set at.|
|00002a30| 58 09 6c 6f 67 69 6e 20 | 74 69 6d 65 2e 20 20 54 |X.login |time. T|
|00002a40| 68 69 73 20 69 73 20 70 | 61 72 74 69 63 75 6c 61 |his is p|articula|
|00002a50| 72 6c 79 20 75 73 65 66 | 75 6c 20 74 6f 20 64 69 |rly usef|ul to di|
|00002a60| 73 61 62 6c 65 0a 58 09 | 6d 65 73 73 61 67 65 73 |sable.X.|messages|
|00002a70| 20 6f 6e 20 75 73 65 72 | 27 73 20 74 65 72 6d 69 | on user|'s termi|
|00002a80| 6e 61 6c 73 2e 0a 58 0a | 58 09 53 65 6c 65 63 74 |nals..X.|X.Select|
|00002a90| 20 74 68 69 73 20 6f 70 | 74 69 6f 6e 20 62 79 20 | this op|tion by |
|00002aa0| 64 65 66 69 6e 69 6e 67 | 20 74 68 65 20 54 54 59 |defining| the TTY|
|00002ab0| 50 45 52 4d 20 6d 61 63 | 72 6f 20 61 73 0a 58 09 |PERM mac|ro as.X.|
|00002ac0| 68 61 76 69 6e 67 20 74 | 68 65 20 64 65 73 69 72 |having t|he desir|
|00002ad0| 65 64 20 6d 6f 64 65 2e | 0a 58 0a 58 54 65 72 6d |ed mode.|.X.XTerm|
|00002ae0| 69 6e 61 6c 20 54 79 70 | 65 20 53 65 74 75 70 20 |inal Typ|e Setup |
|00002af0| 2d 0a 58 09 54 68 69 73 | 20 6f 70 74 69 6f 6e 20 |-.X.This| option |
|00002b00| 61 6c 6c 6f 77 73 20 74 | 68 65 20 74 65 72 6d 69 |allows t|he termi|
|00002b10| 6e 61 6c 20 74 79 70 65 | 20 74 6f 20 62 65 20 73 |nal type| to be s|
|00002b20| 65 74 20 61 74 0a 58 09 | 6c 6f 67 69 6e 20 74 69 |et at.X.|login ti|
|00002b30| 6d 65 2e 20 20 54 68 65 | 20 65 6e 76 69 72 6f 6e |me. The| environ|
|00002b40| 6d 65 6e 74 61 6c 20 76 | 61 72 69 61 62 6c 65 20 |mental v|ariable |
|00002b50| 54 45 52 4d 20 77 69 6c | 6c 20 62 65 0a 58 09 73 |TERM wil|l be.X.s|
|00002b60| 65 74 20 66 72 6f 6d 20 | 74 68 65 20 73 70 65 63 |et from |the spec|
|00002b70| 69 66 69 65 64 20 74 65 | 72 6d 69 6e 61 6c 20 74 |ified te|rminal t|
|00002b80| 6f 20 70 6f 72 74 20 6d | 61 70 70 69 6e 67 0a 58 |o port m|apping.X|
|00002b90| 09 66 69 6c 65 2e 0a 58 | 0a 58 09 53 65 6c 65 63 |.file..X|.X.Selec|
|00002ba0| 74 20 74 68 69 73 20 6f | 70 74 69 6f 6e 20 62 79 |t this o|ption by|
|00002bb0| 20 64 65 66 69 6e 69 6e | 67 20 74 68 65 20 54 54 | definin|g the TT|
|00002bc0| 59 54 59 50 45 20 6d 61 | 63 72 6f 20 61 73 0a 58 |YTYPE ma|cro as.X|
|00002bd0| 09 68 61 76 69 6e 67 20 | 74 68 65 20 76 61 6c 75 |.having |the valu|
|00002be0| 65 20 6f 66 20 74 68 65 | 20 6e 61 6d 65 20 6f 66 |e of the| name of|
|00002bf0| 20 74 68 65 20 74 79 70 | 65 20 74 6f 20 70 6f 72 | the typ|e to por|
|00002c00| 74 0a 58 09 6d 61 70 70 | 69 6e 67 20 66 69 6c 65 |t.X.mapp|ing file|
|00002c10| 2e 20 20 43 72 65 64 69 | 74 20 66 6f 72 20 74 68 |. Credi|t for th|
|00002c20| 69 73 20 6f 70 74 69 6f | 6e 20 69 73 20 64 75 65 |is optio|n is due|
|00002c30| 20 43 68 69 70 0a 58 09 | 52 6f 73 65 6e 74 68 61 | Chip.X.|Rosentha|
|00002c40| 6c 2e 0a 58 0a 58 46 69 | 6c 65 20 53 69 7a 65 20 |l..X.XFi|le Size |
|00002c50| 53 65 74 74 69 6e 67 20 | 2d 0a 58 09 54 68 69 73 |Setting |-.X.This|
|00002c60| 20 6f 70 74 69 6f 6e 20 | 69 6e 63 6c 75 64 65 73 | option |includes|
|00002c70| 20 63 6f 64 65 20 74 6f | 20 73 65 74 20 74 68 65 | code to| set the|
|00002c80| 20 75 73 65 72 27 73 20 | 75 6c 69 6d 69 74 0a 58 | user's |ulimit.X|
|00002c90| 09 61 74 20 6c 6f 67 69 | 6e 20 74 69 6d 65 2e 20 |.at logi|n time. |
|00002ca0| 20 41 64 64 69 74 69 6f | 6e 61 6c 20 63 6f 64 65 | Additio|nal code|
|00002cb0| 20 74 6f 20 73 65 74 20 | 74 68 65 20 75 6d 61 73 | to set |the umas|
|00002cc0| 6b 20 61 6e 64 0a 58 09 | 6e 69 63 65 20 76 61 6c |k and.X.|nice val|
|00002cd0| 75 65 20 69 73 20 61 6c | 73 6f 20 69 6e 63 6c 75 |ue is al|so inclu|
|00002ce0| 64 65 64 2e 0a 58 0a 58 | 09 53 65 6c 65 63 74 20 |ded..X.X|.Select |
|00002cf0| 74 68 69 73 20 6f 70 74 | 69 6f 6e 20 62 79 20 64 |this opt|ion by d|
|00002d00| 65 66 69 6e 69 6e 67 20 | 74 68 65 20 51 55 4f 54 |efining |the QUOT|
|00002d10| 41 53 20 6d 61 63 72 6f | 2e 0a 58 0a 58 53 77 69 |AS macro|..X.XSwi|
|00002d20| 74 63 68 2d 55 73 65 72 | 20 4c 6f 67 67 69 6e 67 |tch-User| Logging|
|00002d30| 20 2d 0a 58 09 54 68 69 | 73 20 6f 70 74 69 6f 6e | -.X.Thi|s option|
|00002d40| 20 63 61 75 73 65 73 20 | 73 75 28 31 29 20 74 6f | causes |su(1) to|
|00002d50| 20 6c 6f 67 20 61 74 74 | 65 6d 70 74 73 20 74 6f | log att|empts to|
|00002d60| 20 73 77 69 74 63 68 0a | 58 09 75 73 65 72 73 2e | switch.|X.users.|
|00002d70| 20 20 53 75 28 31 29 20 | 77 69 6c 6c 20 6c 6f 67 | Su(1) |will log|
|00002d80| 20 61 6c 6c 20 61 74 74 | 65 6d 70 74 2c 20 67 69 | all att|empt, gi|
|00002d90| 76 69 6e 67 20 74 68 65 | 20 6f 6c 64 0a 58 09 61 |ving the| old.X.a|
|00002da0| 6e 64 20 6e 65 77 20 75 | 73 65 72 20 49 44 27 73 |nd new u|ser ID's|
|00002db0| 2c 20 74 74 79 20 70 6f | 72 74 2c 20 61 6e 64 20 |, tty po|rt, and |
|00002dc0| 74 69 6d 65 2e 20 20 49 | 74 20 61 6c 73 6f 0a 58 |time. I|t also.X|
|00002dd0| 09 69 6e 64 69 63 61 74 | 65 73 20 69 66 20 74 68 |.indicat|es if th|
|00002de0| 65 20 61 74 74 65 6d 70 | 74 20 77 61 73 20 73 75 |e attemp|t was su|
|00002df0| 63 63 65 73 73 66 75 6c | 2e 0a 58 0a 58 09 53 65 |ccessful|..X.X.Se|
|00002e00| 6c 65 63 74 20 74 68 69 | 73 20 6f 70 74 69 6f 6e |lect thi|s option|
|00002e10| 20 62 79 20 64 65 66 69 | 6e 69 6e 67 20 74 68 65 | by defi|ning the|
|00002e20| 20 53 55 4c 4f 47 20 6d | 61 63 72 6f 20 74 6f 0a | SULOG m|acro to.|
|00002e30| 58 09 68 61 76 65 20 74 | 68 65 20 76 61 6c 75 65 |X.have t|he value|
|00002e40| 20 6f 66 20 74 68 65 20 | 6e 61 6d 65 20 6f 66 20 | of the |name of |
|00002e50| 74 68 65 20 66 69 6c 65 | 20 79 6f 75 20 77 61 6e |the file| you wan|
|00002e60| 74 0a 58 09 61 74 74 65 | 6d 70 74 73 20 6c 6f 67 |t.X.atte|mpts log|
|00002e70| 67 65 64 20 74 6f 2e 0a | 58 0a 58 43 6f 6e 66 69 |ged to..|X.XConfi|
|00002e80| 67 75 72 61 62 6c 65 20 | 45 64 69 74 69 6e 67 20 |gurable |Editing |
|00002e90| 4b 65 79 73 20 2d 0a 58 | 09 54 68 69 73 20 6f 70 |Keys -.X|.This op|
|00002ea0| 74 69 6f 6e 73 20 61 6c | 6c 6f 77 73 20 74 68 65 |tions al|lows the|
|00002eb0| 20 65 72 61 73 65 20 61 | 6e 64 20 6b 69 6c 6c 20 | erase a|nd kill |
|00002ec0| 63 68 61 72 61 63 74 65 | 72 73 20 74 6f 0a 58 09 |characte|rs to.X.|
|00002ed0| 62 65 20 73 65 6c 65 63 | 74 65 64 2e 20 20 41 20 |be selec|ted. A |
|00002ee0| 64 65 66 61 75 6c 74 20 | 76 61 6c 75 65 20 69 73 |default |value is|
|00002ef0| 20 70 72 6f 76 69 64 65 | 64 2e 20 20 42 79 20 64 | provide|d. By d|
|00002f00| 65 66 61 75 6c 74 0a 58 | 09 45 52 41 53 45 20 77 |efault.X|.ERASE w|
|00002f10| 69 6c 6c 20 62 65 20 5e | 48 20 61 6e 64 20 4b 49 |ill be ^|H and KI|
|00002f20| 4c 4c 20 77 69 6c 6c 20 | 62 65 20 5e 55 2e 0a 58 |LL will |be ^U..X|
|00002f30| 0a 58 09 53 65 6c 65 63 | 74 20 74 68 69 73 20 6f |.X.Selec|t this o|
|00002f40| 70 74 69 6f 6e 20 62 79 | 20 64 65 66 69 6e 69 6e |ption by| definin|
|00002f50| 67 20 74 68 65 20 45 52 | 41 53 45 43 48 41 52 20 |g the ER|ASECHAR |
|00002f60| 6d 61 63 72 6f 0a 58 09 | 74 6f 20 62 65 20 74 68 |macro.X.|to be th|
|00002f70| 65 20 64 65 73 69 72 65 | 64 20 65 72 61 73 65 20 |e desire|d erase |
|00002f80| 63 68 61 72 61 63 74 65 | 72 20 61 6e 64 20 74 68 |characte|r and th|
|00002f90| 65 20 4b 49 4c 4c 43 48 | 41 52 20 0a 58 09 6d 61 |e KILLCH|AR .X.ma|
|00002fa0| 63 72 6f 20 74 6f 20 62 | 65 20 74 68 65 20 64 65 |cro to b|e the de|
|00002fb0| 73 69 72 65 64 20 4b 49 | 4c 4c 20 63 68 61 72 61 |sired KI|LL chara|
|00002fc0| 63 74 65 72 2e 0a 58 0a | 58 44 65 66 61 75 6c 74 |cter..X.|XDefault|
|00002fd0| 20 75 6c 69 6d 69 74 20 | 61 6e 64 20 75 6d 61 73 | ulimit |and umas|
|00002fe0| 6b 20 56 61 6c 75 65 73 | 20 2d 0a 58 09 54 68 69 |k Values| -.X.Thi|
|00002ff0| 73 20 6f 70 74 69 6f 6e | 20 61 6c 6c 6f 77 73 20 |s option| allows |
|00003000| 79 6f 75 20 74 6f 20 73 | 65 6c 65 63 74 20 74 68 |you to s|elect th|
|00003010| 65 20 64 65 66 61 75 6c | 74 20 76 61 6c 75 65 73 |e defaul|t values|
|00003020| 0a 58 09 66 6f 72 20 75 | 6c 69 6d 69 74 20 61 6e |.X.for u|limit an|
|00003030| 64 20 75 6d 61 73 6b 2c | 20 61 6c 6c 6f 77 69 6e |d umask,| allowin|
|00003040| 67 20 79 6f 75 20 74 6f | 20 61 76 6f 69 64 0a 58 |g you to| avoid.X|
|00003050| 09 72 65 67 65 6e 65 72 | 61 74 69 6e 67 20 79 6f |.regener|ating yo|
|00003060| 75 72 20 73 79 73 74 65 | 6d 20 6b 65 72 6e 65 6c |ur syste|m kernel|
|00003070| 2e 20 20 54 68 65 73 65 | 20 76 61 6c 75 65 73 20 |. These| values |
|00003080| 6d 61 79 20 62 65 0a 58 | 09 6f 76 65 72 72 69 64 |may be.X|.overrid|
|00003090| 65 6e 20 77 69 74 68 20 | 61 70 70 72 6f 70 72 69 |en with |appropri|
|000030a0| 61 74 65 20 65 6e 74 72 | 69 65 73 20 69 6e 20 74 |ate entr|ies in t|
|000030b0| 68 65 20 47 45 43 4f 53 | 20 66 69 65 6c 64 2e 0a |he GECOS| field..|
|000030c0| 58 0a 58 09 53 65 6c 65 | 63 74 20 74 68 65 20 64 |X.X.Sele|ct the d|
|000030d0| 65 66 61 75 6c 74 20 75 | 6c 69 6d 69 74 20 62 79 |efault u|limit by|
|000030e0| 20 64 65 66 69 6e 69 6e | 67 20 74 68 65 20 55 4c | definin|g the UL|
|000030f0| 49 4d 49 54 0a 58 09 6d | 61 63 72 6f 2c 20 61 6e |IMIT.X.m|acro, an|
|00003100| 64 20 74 68 65 20 64 65 | 66 61 75 6c 74 20 75 6d |d the de|fault um|
|00003110| 61 73 6b 20 62 79 20 64 | 65 66 69 6e 69 6e 67 20 |ask by d|efining |
|00003120| 74 68 65 20 55 4d 41 53 | 4b 0a 58 09 6d 61 63 72 |the UMAS|K.X.macr|
|00003130| 6f 2e 0a 58 09 0a 58 09 | 57 61 72 6e 69 6e 67 3a |o..X..X.|Warning:|
|00003140| 20 54 68 65 73 65 20 76 | 61 6c 75 65 73 20 77 69 | These v|alues wi|
|00003150| 6c 6c 20 6e 6f 74 20 61 | 70 70 6c 79 20 74 6f 20 |ll not a|pply to |
|00003160| 70 72 6f 63 65 73 73 65 | 73 0a 58 09 65 78 65 63 |processe|s.X.exec|
|00003170| 75 74 65 64 20 62 79 20 | 2f 65 74 63 2f 63 72 6f |uted by |/etc/cro|
|00003180| 6e 20 6f 72 20 61 6e 79 | 20 6f 66 20 74 68 65 69 |n or any| of thei|
|00003190| 72 20 63 68 69 6c 64 72 | 65 6e 2e 0a 58 0a 58 42 |r childr|en..X.XB|
|000031a0| 53 44 20 4e 6f 74 65 73 | 3a 09 53 74 65 76 65 20 |SD Notes|:.Steve |
|000031b0| 53 69 6d 6d 6f 6e 73 09 | 73 63 73 40 69 74 69 2e |Simmons.|scs@iti.|
|000031c0| 6f 72 67 0a 58 0a 58 54 | 68 65 20 66 75 6c 6c 20 |org.X.XT|he full |
|000031d0| 70 6f 72 74 20 6f 66 20 | 74 68 65 20 73 68 61 64 |port of |the shad|
|000031e0| 6f 77 20 70 61 63 6b 61 | 67 65 20 74 6f 20 42 53 |ow packa|ge to BS|
|000031f0| 44 20 69 73 20 6e 6f 74 | 20 63 6f 6d 70 6c 65 74 |D is not| complet|
|00003200| 65 3b 20 62 75 74 20 73 | 6f 6d 65 0a 58 6f 66 20 |e; but s|ome.Xof |
|00003210| 74 68 65 20 69 73 73 75 | 65 73 20 68 61 76 65 20 |the issu|es have |
|00003220| 62 65 65 6e 20 77 6f 72 | 6b 65 64 20 6f 75 74 2e |been wor|ked out.|
|00003230| 20 20 54 68 65 73 65 20 | 6e 6f 74 65 73 20 64 65 | These |notes de|
|00003240| 73 63 72 69 62 65 20 74 | 68 65 20 63 75 72 72 65 |scribe t|he curre|
|00003250| 6e 74 0a 58 73 74 61 74 | 65 20 6f 66 20 74 68 69 |nt.Xstat|e of thi|
|00003260| 6e 67 73 3a 0a 58 0a 58 | 49 6e 20 6f 72 64 65 72 |ngs:.X.X|In order|
|00003270| 20 74 6f 20 6d 61 6b 65 | 20 75 73 65 20 6f 66 20 | to make| use of |
|00003280| 70 61 73 73 77 6f 72 64 | 20 61 67 69 6e 67 20 75 |password| aging u|
|00003290| 6e 64 65 72 20 42 53 44 | 2c 20 6d 69 6e 6f 72 20 |nder BSD|, minor |
|000032a0| 63 68 61 6e 67 65 73 20 | 74 6f 0a 58 2f 75 73 72 |changes |to.X/usr|
|000032b0| 2f 69 6e 63 6c 75 64 65 | 2f 70 77 64 2e 68 20 61 |/include|/pwd.h a|
|000032c0| 6e 64 20 67 65 74 70 77 | 65 6e 74 28 29 20 61 72 |nd getpw|ent() ar|
|000032d0| 65 20 6e 65 65 64 65 64 | 2e 20 20 54 68 65 73 65 |e needed|. These|
|000032e0| 20 63 68 61 6e 67 65 73 | 20 61 72 65 20 74 6f 0a | changes| are to.|
|000032f0| 58 6b 65 65 70 20 74 68 | 65 20 70 61 73 73 77 6f |Xkeep th|e passwo|
|00003300| 72 64 20 61 67 65 20 66 | 72 6f 6d 20 6d 65 73 73 |rd age f|rom mess|
|00003310| 69 6e 67 20 75 70 20 74 | 68 65 20 65 6e 63 72 79 |ing up t|he encry|
|00003320| 70 74 65 64 20 70 61 73 | 73 77 6f 72 64 20 77 68 |pted pas|sword wh|
|00003330| 65 6e 20 6e 6f 74 0a 58 | 75 73 69 6e 67 20 73 68 |en not.X|using sh|
|00003340| 61 64 6f 77 20 70 61 73 | 73 77 6f 72 64 73 2c 20 |adow pas|swords, |
|00003350| 61 6e 64 20 69 6e 76 6f | 6c 76 65 20 70 6c 61 63 |and invo|lve plac|
|00003360| 69 6e 67 20 61 20 6e 65 | 77 20 66 69 65 6c 64 20 |ing a ne|w field |
|00003370| 69 6e 20 74 68 65 20 70 | 61 73 73 77 6f 72 64 0a |in the p|assword.|
|00003380| 58 64 61 74 61 20 73 74 | 72 75 63 74 75 72 65 2e |Xdata st|ructure.|
|00003390| 20 20 54 6f 20 75 73 65 | 20 74 68 69 73 2c 20 79 | To use| this, y|
|000033a0| 6f 75 20 73 68 6f 75 6c | 64 20 61 70 70 6c 79 20 |ou shoul|d apply |
|000033b0| 74 68 65 20 66 6f 6c 6c | 6f 77 69 6e 67 20 74 77 |the foll|owing tw|
|000033c0| 6f 20 70 61 74 63 68 65 | 73 3a 0a 58 09 70 77 64 |o patche|s:.X.pwd|
|000033d0| 2e 68 2e 70 61 74 63 68 | 0a 58 09 67 65 74 70 77 |.h.patch|.X.getpw|
|000033e0| 65 6e 74 2e 63 2e 70 61 | 74 63 68 0a 58 74 6f 20 |ent.c.pa|tch.Xto |
|000033f0| 74 68 65 20 42 53 44 20 | 2f 75 73 72 2f 69 6e 63 |the BSD |/usr/inc|
|00003400| 6c 75 64 65 2f 70 77 64 | 2e 68 20 61 6e 64 20 2f |lude/pwd|.h and /|
|00003410| 75 73 72 2f 73 72 63 2f | 6c 69 62 2f 6c 69 62 63 |usr/src/|lib/libc|
|00003420| 2f 67 65 6e 2f 67 65 74 | 70 77 65 6e 74 2e 63 2c |/gen/get|pwent.c,|
|00003430| 0a 58 72 65 73 70 65 63 | 74 69 76 65 6c 79 2e 20 |.Xrespec|tively. |
|00003440| 20 41 66 74 65 72 20 61 | 70 70 6c 79 69 6e 67 20 | After a|pplying |
|00003450| 74 68 65 20 70 61 74 63 | 68 65 73 2c 20 72 65 62 |the patc|hes, reb|
|00003460| 75 69 6c 64 20 79 6f 75 | 72 20 73 74 61 6e 64 61 |uild you|r standa|
|00003470| 72 64 20 43 0a 58 6c 69 | 62 72 61 72 79 20 77 69 |rd C.Xli|brary wi|
|00003480| 74 68 20 74 68 65 20 6e | 65 77 20 67 65 74 70 77 |th the n|ew getpw|
|00003490| 65 6e 74 2e 20 20 50 72 | 6f 67 72 61 6d 73 20 77 |ent. Pr|ograms w|
|000034a0| 68 69 63 68 20 75 73 65 | 20 74 68 65 20 6f 6c 64 |hich use| the old|
|000034b0| 20 67 65 74 70 77 65 6e | 74 0a 58 77 69 6c 6c 20 | getpwen|t.Xwill |
|000034c0| 66 61 69 6c 20 6f 6e 20 | 70 61 73 73 77 6f 72 64 |fail on |password|
|000034d0| 20 63 68 65 63 6b 69 6e | 67 20 69 66 20 74 68 65 | checkin|g if the|
|000034e0| 79 20 64 6f 20 61 20 73 | 74 72 63 6d 70 20 72 61 |y do a s|trcmp ra|
|000034f0| 74 68 65 72 20 74 68 61 | 6e 20 61 20 73 74 72 6e |ther tha|n a strn|
|00003500| 63 6d 70 2e 0a 58 5b 20 | 49 20 64 6f 20 6e 6f 74 |cmp..X[ |I do not|
|00003510| 20 73 65 65 6d 20 74 6f | 20 68 61 76 65 20 74 68 | seem to| have th|
|00003520| 65 73 65 20 74 77 6f 20 | 70 61 74 63 68 65 73 2e |ese two |patches.|
|00003530| 20 20 49 20 68 61 76 65 | 20 70 72 6f 76 69 64 65 | I have| provide|
|00003540| 64 20 61 6e 20 65 6e 74 | 69 72 65 0a 58 67 65 74 |d an ent|ire.Xget|
|00003550| 70 77 65 6e 74 20 63 6f | 6c 6c 65 63 74 69 6f 6e |pwent co|llection|
|00003560| 20 6f 66 20 63 6f 64 65 | 20 77 68 69 63 68 20 6d | of code| which m|
|00003570| 61 79 20 62 65 20 75 73 | 65 66 75 6c 20 69 6e 73 |ay be us|eful ins|
|00003580| 74 65 61 64 2e 20 2d 6a | 66 68 20 5d 0a 58 0a 58 |tead. -j|fh ].X.X|
|00003590| 54 68 65 73 65 20 63 68 | 61 6e 67 65 73 20 61 72 |These ch|anges ar|
|000035a0| 65 20 62 61 73 65 64 20 | 6f 6e 20 42 53 44 34 2e |e based |on BSD4.|
|000035b0| 33 2c 20 6e 6f 74 20 54 | 61 68 6f 65 0a 58 0a 58 |3, not T|ahoe.X.X|
|000035c0| 54 6f 44 6f 20 42 53 44 | 3a 0a 58 0a 58 49 27 6d |ToDo BSD|:.X.XI'm|
|000035d0| 20 77 6f 72 6b 69 6e 67 | 20 6f 6e 20 74 68 69 73 | working| on this|
|000035e0| 20 69 6e 20 6d 79 20 63 | 6f 70 69 6f 75 73 20 73 | in my c|opious s|
|000035f0| 70 61 72 65 20 74 69 6d | 65 20 28 68 61 68 21 29 |pare tim|e (hah!)|
|00003600| 3b 20 61 6e 79 20 68 65 | 6c 70 20 77 6f 75 6c 64 |; any he|lp would|
|00003610| 0a 58 62 65 20 61 70 70 | 72 65 63 69 61 74 65 64 |.Xbe app|reciated|
|00003620| 2e 20 20 49 66 20 79 6f | 75 20 64 65 63 69 64 65 |. If yo|u decide|
|00003630| 20 74 6f 20 68 65 6c 70 | 2c 20 64 6f 20 74 68 65 | to help|, do the|
|00003640| 73 65 20 69 6e 64 65 70 | 65 6e 64 61 6e 74 6c 79 |se indep|endantly|
|00003650| 20 72 61 74 68 65 72 0a | 58 74 68 61 6e 20 72 65 | rather.|Xthan re|
|00003660| 77 6f 72 6b 20 42 53 44 | 20 63 6f 64 65 21 20 20 |work BSD| code! |
|00003670| 4b 65 65 70 20 69 74 20 | 72 65 64 69 73 74 72 69 |Keep it |redistri|
|00003680| 62 75 74 61 62 6c 65 21 | 0a 58 0a 58 4e 6f 20 64 |butable!|.X.XNo d|
|00003690| 62 6d 20 66 75 6e 63 74 | 69 6f 6e 73 20 68 61 76 |bm funct|ions hav|
|000036a0| 65 20 62 65 65 6e 20 70 | 75 74 20 69 6e 20 70 6c |e been p|ut in pl|
|000036b0| 61 63 65 2e 20 20 44 62 | 6d 20 66 75 6e 63 74 69 |ace. Db|m functi|
|000036c0| 6f 6e 61 6c 69 74 79 20 | 69 73 20 6e 65 65 64 65 |onality |is neede|
|000036d0| 64 0a 58 66 6f 72 20 62 | 6f 74 68 20 2f 65 74 63 |d.Xfor b|oth /etc|
|000036e0| 2f 70 61 73 73 77 6f 72 | 64 20 61 6e 64 20 2f 65 |/passwor|d and /e|
|000036f0| 74 63 2f 73 68 61 64 6f | 77 20 6d 61 6e 61 67 65 |tc/shado|w manage|
|00003700| 6d 65 6e 74 2e 20 20 5b | 20 49 74 20 69 73 20 6e |ment. [| It is n|
|00003710| 6f 77 20 70 6f 73 73 69 | 62 6c 65 0a 58 74 6f 20 |ow possi|ble.Xto |
|00003720| 63 72 65 61 74 65 20 2f | 65 74 63 2f 70 61 73 73 |create /|etc/pass|
|00003730| 77 64 2e 64 69 72 20 61 | 6e 64 20 2f 65 74 63 2f |wd.dir a|nd /etc/|
|00003740| 70 61 73 73 77 64 2e 70 | 61 67 20 75 73 69 6e 67 |passwd.p|ag using|
|00003750| 20 74 68 65 20 6e 65 77 | 20 6d 6b 70 61 73 73 77 | the new| mkpassw|
|00003760| 64 0a 58 63 6f 6d 6d 61 | 6e 64 2e 20 20 67 65 74 |d.Xcomma|nd. get|
|00003770| 70 77 75 69 64 20 61 6e | 64 20 67 65 74 70 77 6e |pwuid an|d getpwn|
|00003780| 61 6d 20 62 6f 74 68 20 | 75 73 65 20 74 68 65 73 |am both |use thes|
|00003790| 65 20 66 69 6c 65 73 2e | 20 20 20 41 6c 73 6f 2c |e files.| Also,|
|000037a0| 20 74 68 65 20 0a 58 63 | 6f 6d 6d 61 6e 64 73 20 | the .Xc|ommands |
|000037b0| 63 68 66 6e 2c 20 63 68 | 73 68 2c 20 61 6e 64 20 |chfn, ch|sh, and |
|000037c0| 63 68 61 67 65 20 61 6c | 6c 20 75 70 64 61 74 65 |chage al|l update|
|000037d0| 20 74 68 65 20 44 42 4d | 20 66 69 6c 65 73 2e 20 | the DBM| files. |
|000037e0| 2d 6a 66 68 20 5d 0a 58 | 0a 58 54 68 65 20 42 53 |-jfh ].X|.XThe BS|
|000037f0| 44 20 47 45 43 4f 53 20 | 66 69 65 6c 64 20 67 65 |D GECOS |field ge|
|00003800| 74 73 20 75 73 65 64 20 | 66 6f 72 20 6c 6f 74 73 |ts used |for lots|
|00003810| 20 6d 6f 72 65 20 73 74 | 75 66 66 20 74 68 61 6e | more st|uff than|
|00003820| 20 74 68 65 20 55 53 47 | 2e 20 20 41 74 20 61 0a | the USG|. At a.|
|00003830| 58 6d 69 6e 69 6d 75 6d | 20 74 68 69 73 20 66 75 |Xminimum| this fu|
|00003840| 6e 63 74 69 6f 6e 61 6c | 69 74 79 20 73 68 6f 75 |nctional|ity shou|
|00003850| 6c 64 20 62 65 20 64 75 | 70 6c 69 63 61 74 65 64 |ld be du|plicated|
|00003860| 20 75 6e 64 65 72 20 42 | 53 44 3b 20 62 65 74 74 | under B|SD; bett|
|00003870| 65 72 20 69 73 20 74 6f | 20 70 75 74 0a 58 69 74 |er is to| put.Xit|
|00003880| 20 69 6e 74 6f 20 55 53 | 47 20 61 73 20 77 65 6c | into US|G as wel|
|00003890| 6c 3b 20 73 74 69 6c 6c | 20 62 65 74 74 65 72 20 |l; still| better |
|000038a0| 77 6f 75 6c 64 20 62 65 | 20 74 6f 20 6d 61 6b 65 |would be| to make|
|000038b0| 20 74 68 65 20 63 68 66 | 6e 20 63 6f 6d 6d 61 6e | the chf|n comman|
|000038c0| 64 20 66 6f 72 0a 58 62 | 6f 74 68 20 73 79 73 74 |d for.Xb|oth syst|
|000038d0| 65 6d 73 3b 20 62 65 73 | 74 20 77 6f 75 6c 64 20 |ems; bes|t would |
|000038e0| 62 65 20 73 69 74 65 2d | 63 6f 6e 66 69 67 75 72 |be site-|configur|
|000038f0| 61 62 6c 65 20 64 61 74 | 61 20 74 6f 20 62 65 20 |able dat|a to be |
|00003900| 70 75 74 20 69 6e 74 6f | 20 47 45 43 4f 53 2f 63 |put into| GECOS/c|
|00003910| 68 66 6e 2e 0a 58 5b 20 | 74 68 69 73 20 69 73 20 |hfn..X[ |this is |
|00003920| 6e 6f 77 20 70 6f 73 73 | 69 62 6c 65 20 75 73 69 |now poss|ible usi|
|00003930| 6e 67 20 63 68 66 6e 20 | 61 6e 64 20 74 68 65 20 |ng chfn |and the |
|00003940| 2d 6f 20 6f 70 74 69 6f | 6e 2e 20 2d 20 6a 66 68 |-o optio|n. - jfh|
|00003950| 20 5d 0a 53 48 41 52 5f | 45 4f 46 0a 69 66 20 74 | ].SHAR_|EOF.if t|
|00003960| 65 73 74 20 31 32 32 35 | 38 20 2d 6e 65 20 22 60 |est 1225|8 -ne "`|
|00003970| 77 63 20 2d 63 20 3c 20 | 27 52 45 41 44 4d 45 27 |wc -c < |'README'|
|00003980| 60 22 0a 74 68 65 6e 0a | 09 65 63 68 6f 20 73 68 |`".then.|.echo sh|
|00003990| 61 72 3a 20 22 65 72 72 | 6f 72 20 74 72 61 6e 73 |ar: "err|or trans|
|000039a0| 6d 69 74 74 69 6e 67 20 | 27 52 45 41 44 4d 45 27 |mitting |'README'|
|000039b0| 22 20 27 28 73 68 6f 75 | 6c 64 20 68 61 76 65 20 |" '(shou|ld have |
|000039c0| 62 65 65 6e 20 31 32 32 | 35 38 20 63 68 61 72 61 |been 122|58 chara|
|000039d0| 63 74 65 72 73 29 27 0a | 66 69 0a 66 69 0a 65 63 |cters)'.|fi.fi.ec|
|000039e0| 68 6f 20 73 68 61 72 3a | 20 22 65 78 74 72 61 63 |ho shar:| "extrac|
|000039f0| 74 69 6e 67 20 27 6e 65 | 77 67 72 70 2e 63 27 22 |ting 'ne|wgrp.c'"|
|00003a00| 20 27 28 38 34 31 35 20 | 63 68 61 72 61 63 74 65 | '(8415 |characte|
|00003a10| 72 73 29 27 0a 69 66 20 | 74 65 73 74 20 2d 66 20 |rs)'.if |test -f |
|00003a20| 27 6e 65 77 67 72 70 2e | 63 27 0a 74 68 65 6e 0a |'newgrp.|c'.then.|
|00003a30| 09 65 63 68 6f 20 73 68 | 61 72 3a 20 22 77 69 6c |.echo sh|ar: "wil|
|00003a40| 6c 20 6e 6f 74 20 6f 76 | 65 72 2d 77 72 69 74 65 |l not ov|er-write|
|00003a50| 20 65 78 69 73 74 69 6e | 67 20 66 69 6c 65 20 27 | existin|g file '|
|00003a60| 6e 65 77 67 72 70 2e 63 | 27 22 0a 65 6c 73 65 0a |newgrp.c|'".else.|
|00003a70| 73 65 64 20 27 73 2f 5e | 58 2f 2f 27 20 3c 3c 20 |sed 's/^|X//' << |
|00003a80| 5c 53 48 41 52 5f 45 4f | 46 20 3e 20 27 6e 65 77 |\SHAR_EO|F > 'new|
|00003a90| 67 72 70 2e 63 27 0a 58 | 2f 2a 0a 58 20 2a 20 43 |grp.c'.X|/*.X * C|
|00003aa0| 6f 70 79 72 69 67 68 74 | 20 31 39 39 30 2c 20 4a |opyright| 1990, J|
|00003ab0| 6f 68 6e 20 46 2e 20 48 | 61 75 67 68 20 49 49 0a |ohn F. H|augh II.|
|00003ac0| 58 20 2a 20 41 6c 6c 20 | 72 69 67 68 74 73 20 72 |X * All |rights r|
|00003ad0| 65 73 65 72 76 65 64 2e | 0a 58 20 2a 0a 58 20 2a |eserved.|.X *.X *|
|00003ae0| 20 4e 6f 6e 2d 63 6f 6d | 6d 65 72 63 69 61 6c 20 | Non-com|mercial |
|00003af0| 64 69 73 74 72 69 62 75 | 74 69 6f 6e 20 70 65 72 |distribu|tion per|
|00003b00| 6d 69 74 74 65 64 2e 20 | 20 59 6f 75 20 6d 75 73 |mitted. | You mus|
|00003b10| 74 20 70 72 6f 76 69 64 | 65 20 74 68 69 73 20 73 |t provid|e this s|
|00003b20| 6f 75 72 63 65 0a 58 20 | 2a 20 63 6f 64 65 20 69 |ource.X |* code i|
|00003b30| 6e 20 61 6e 79 20 64 69 | 73 74 72 69 62 75 74 69 |n any di|stributi|
|00003b40| 6f 6e 2e 20 20 54 68 69 | 73 20 6e 6f 74 69 63 65 |on. Thi|s notice|
|00003b50| 20 6d 75 73 74 20 72 65 | 6d 61 69 6e 20 69 6e 74 | must re|main int|
|00003b60| 61 63 74 2e 0a 58 20 2a | 2f 0a 58 0a 58 23 69 6e |act..X *|/.X.X#in|
|00003b70| 63 6c 75 64 65 20 3c 73 | 79 73 2f 74 79 70 65 73 |clude <s|ys/types|
|00003b80| 2e 68 3e 0a 58 23 69 6e | 63 6c 75 64 65 20 3c 73 |.h>.X#in|clude <s|
|00003b90| 74 72 69 6e 67 2e 68 3e | 0a 58 23 69 6e 63 6c 75 |tring.h>|.X#inclu|
|00003ba0| 64 65 20 3c 73 74 64 69 | 6f 2e 68 3e 0a 58 23 69 |de <stdi|o.h>.X#i|
|00003bb0| 6e 63 6c 75 64 65 20 3c | 67 72 70 2e 68 3e 0a 58 |nclude <|grp.h>.X|
|00003bc0| 23 69 6e 63 6c 75 64 65 | 20 3c 70 77 64 2e 68 3e |#include| <pwd.h>|
|00003bd0| 0a 58 23 69 6e 63 6c 75 | 64 65 20 3c 74 65 72 6d |.X#inclu|de <term|
|00003be0| 69 6f 2e 68 3e 0a 58 23 | 69 66 64 65 66 20 53 59 |io.h>.X#|ifdef SY|
|00003bf0| 53 33 0a 58 23 69 6e 63 | 6c 75 64 65 20 3c 73 79 |S3.X#inc|lude <sy|
|00003c00| 73 2f 69 6f 63 74 6c 2e | 68 3e 0a 58 23 65 6e 64 |s/ioctl.|h>.X#end|
|00003c10| 69 66 0a 58 23 69 6e 63 | 6c 75 64 65 20 22 63 6f |if.X#inc|lude "co|
|00003c20| 6e 66 69 67 2e 68 22 0a | 58 0a 58 23 69 66 6e 64 |nfig.h".|X.X#ifnd|
|00003c30| 65 66 09 6c 69 6e 74 0a | 58 73 74 61 74 69 63 09 |ef.lint.|Xstatic.|
|00003c40| 63 68 61 72 09 73 63 63 | 73 69 64 5b 5d 20 3d 20 |char.scc|sid[] = |
|00003c50| 22 40 28 23 29 6e 65 77 | 67 72 70 2e 63 09 31 2e |"@(#)new|grp.c.1.|
|00003c60| 32 09 31 34 3a 30 31 3a | 32 37 09 37 2f 32 32 2f |2.14:01:|27.7/22/|
|00003c70| 39 30 22 3b 0a 58 23 65 | 6e 64 69 66 0a 58 0a 58 |90";.X#e|ndif.X.X|
|00003c80| 23 69 66 64 65 66 09 4e | 47 52 4f 55 50 53 0a 58 |#ifdef.N|GROUPS.X|
|00003c90| 69 6e 74 09 6e 67 72 6f | 75 70 73 3b 0a 58 67 69 |int.ngro|ups;.Xgi|
|00003ca0| 64 5f 74 09 67 72 6f 75 | 70 73 5b 4e 47 52 4f 55 |d_t.grou|ps[NGROU|
|00003cb0| 50 53 5d 3b 0a 58 23 65 | 6e 64 69 66 0a 58 0a 58 |PS];.X#e|ndif.X.X|
|00003cc0| 73 74 72 75 63 74 09 70 | 61 73 73 77 64 09 2a 70 |struct.p|asswd.*p|
|00003cd0| 77 64 3b 0a 58 73 74 72 | 75 63 74 09 70 61 73 73 |wd;.Xstr|uct.pass|
|00003ce0| 77 64 09 2a 67 65 74 70 | 77 75 69 64 28 29 3b 0a |wd.*getp|wuid();.|
|00003cf0| 58 73 74 72 75 63 74 09 | 70 61 73 73 77 64 09 2a |Xstruct.|passwd.*|
|00003d00| 67 65 74 70 77 6e 61 6d | 28 29 3b 0a 58 0a 58 23 |getpwnam|();.X.X#|
|00003d10| 69 66 64 65 66 09 53 48 | 41 44 4f 57 50 57 44 0a |ifdef.SH|ADOWPWD.|
|00003d20| 58 23 69 6e 63 6c 75 64 | 65 20 22 73 68 61 64 6f |X#includ|e "shado|
|00003d30| 77 2e 68 22 0a 58 73 74 | 72 75 63 74 09 73 70 77 |w.h".Xst|ruct.spw|
|00003d40| 64 09 2a 73 70 77 64 3b | 0a 58 73 74 72 75 63 74 |d.*spwd;|.Xstruct|
|00003d50| 09 73 70 77 64 09 2a 67 | 65 74 73 70 6e 61 6d 28 |.spwd.*g|etspnam(|
|00003d60| 29 3b 0a 58 23 65 6e 64 | 69 66 0a 58 73 74 72 75 |);.X#end|if.Xstru|
|00003d70| 63 74 09 67 72 6f 75 70 | 09 2a 67 72 70 3b 0a 58 |ct.group|.*grp;.X|
|00003d80| 73 74 72 75 63 74 09 67 | 72 6f 75 70 09 2a 67 65 |struct.g|roup.*ge|
|00003d90| 74 67 72 67 69 64 28 29 | 3b 0a 58 73 74 72 75 63 |tgrgid()|;.Xstruc|
|00003da0| 74 09 67 72 6f 75 70 09 | 2a 67 65 74 67 72 6e 61 |t.group.|*getgrna|
|00003db0| 6d 28 29 3b 0a 58 0a 58 | 63 68 61 72 09 2a 67 65 |m();.X.X|char.*ge|
|00003dc0| 74 6c 6f 67 69 6e 28 29 | 3b 0a 58 63 68 61 72 09 |tlogin()|;.Xchar.|
|00003dd0| 2a 63 72 79 70 74 28 29 | 3b 0a 58 0a 58 63 68 61 |*crypt()|;.X.Xcha|
|00003de0| 72 09 2a 6e 61 6d 65 3b | 0a 58 63 68 61 72 09 2a |r.*name;|.Xchar.*|
|00003df0| 67 72 6f 75 70 3b 0a 58 | 69 6e 74 09 67 69 64 3b |group;.X|int.gid;|
|00003e00| 0a 58 0a 58 63 68 61 72 | 09 2a 6d 79 6e 61 6d 65 |.X.Xchar|.*myname|
|00003e10| 3b 0a 58 63 68 61 72 09 | 73 68 65 6c 6c 5b 42 55 |;.Xchar.|shell[BU|
|00003e20| 46 53 49 5a 5d 3b 0a 58 | 63 68 61 72 09 62 61 73 |FSIZ];.X|char.bas|
|00003e30| 65 5b 42 55 46 53 49 5a | 5d 3b 0a 58 63 68 61 72 |e[BUFSIZ|];.Xchar|
|00003e40| 09 70 61 73 73 77 64 5b | 42 55 46 53 49 5a 5d 3b |.passwd[|BUFSIZ];|
|00003e50| 0a 58 63 68 61 72 09 2a | 63 70 61 73 73 77 64 3b |.Xchar.*|cpasswd;|
|00003e60| 0a 58 63 68 61 72 09 2a | 73 61 6c 74 3b 0a 58 0a |.Xchar.*|salt;.X.|
|00003e70| 58 2f 2a 0a 58 20 2a 20 | 75 73 61 67 65 20 2d 20 |X/*.X * |usage - |
|00003e80| 70 72 69 6e 74 20 63 6f | 6d 6d 61 6e 64 20 75 73 |print co|mmand us|
|00003e90| 61 67 65 20 6d 65 73 73 | 61 67 65 0a 58 20 2a 2f |age mess|age.X */|
|00003ea0| 0a 58 0a 58 75 73 61 67 | 65 20 28 29 0a 58 7b 0a |.X.Xusag|e ().X{.|
|00003eb0| 58 09 66 70 72 69 6e 74 | 66 20 28 73 74 64 65 72 |X.fprint|f (stder|
|00003ec0| 72 2c 20 22 75 73 61 67 | 65 3a 20 6e 65 77 67 72 |r, "usag|e: newgr|
|00003ed0| 70 20 5b 20 2d 20 5d 20 | 5b 20 67 72 6f 75 70 20 |p [ - ] |[ group |
|00003ee0| 5d 5c 6e 22 29 3b 0a 58 | 09 65 78 69 74 20 28 31 |]\n");.X|.exit (1|
|00003ef0| 29 3b 0a 58 7d 0a 58 0a | 58 2f 2a 0a 58 20 2a 20 |);.X}.X.|X/*.X * |
|00003f00| 6e 65 77 67 72 70 20 2d | 20 63 68 61 6e 67 65 20 |newgrp -| change |
|00003f10| 74 68 65 20 69 6e 76 6f | 6b 65 72 73 20 63 75 72 |the invo|kers cur|
|00003f20| 72 65 6e 74 20 72 65 61 | 6c 20 61 6e 64 20 65 66 |rent rea|l and ef|
|00003f30| 66 65 63 74 69 76 65 20 | 67 72 6f 75 70 20 69 64 |fective |group id|
|00003f40| 0a 58 20 2a 2f 0a 58 0a | 58 6d 61 69 6e 20 28 61 |.X */.X.|Xmain (a|
|00003f50| 72 67 63 2c 20 61 72 67 | 76 29 0a 58 69 6e 74 09 |rgc, arg|v).Xint.|
|00003f60| 61 72 67 63 3b 0a 58 63 | 68 61 72 09 2a 2a 61 72 |argc;.Xc|har.**ar|
|00003f70| 67 76 3b 0a 58 7b 0a 58 | 09 69 6e 74 09 69 6e 69 |gv;.X{.X|.int.ini|
|00003f80| 74 66 6c 61 67 20 3d 20 | 30 3b 0a 58 09 69 6e 74 |tflag = |0;.X.int|
|00003f90| 09 6e 65 65 64 73 70 61 | 73 73 77 64 20 3d 20 30 |.needspa|sswd = 0|
|00003fa0| 3b 0a 58 09 69 6e 74 09 | 69 3b 0a 58 09 63 68 61 |;.X.int.|i;.X.cha|
|00003fb0| 72 09 2a 63 70 3b 0a 58 | 23 69 66 64 65 66 09 44 |r.*cp;.X|#ifdef.D|
|00003fc0| 4f 55 42 4c 45 53 49 5a | 45 0a 58 09 69 6e 74 09 |OUBLESIZ|E.X.int.|
|00003fd0| 6c 6f 6e 67 70 61 73 73 | 3b 0a 58 23 65 6e 64 69 |longpass|;.X#endi|
|00003fe0| 66 0a 58 0a 58 09 2f 2a | 0a 58 09 20 2a 20 6c 65 |f.X.X./*|.X. * le|
|00003ff0| 74 20 6d 65 20 70 61 72 | 73 65 20 74 68 65 20 63 |t me par|se the c|
|00004000| 6f 6d 6d 61 6e 64 20 6c | 69 6e 65 20 66 69 72 73 |ommand l|ine firs|
|00004010| 74 2e 20 20 74 68 65 20 | 6f 6e 6c 79 20 6c 65 67 |t. the |only leg|
|00004020| 61 6c 20 66 6c 61 67 0a | 58 09 20 2a 20 69 73 20 |al flag.|X. * is |
|00004030| 61 20 22 2d 22 2c 20 77 | 68 69 63 68 20 69 6e 64 |a "-", w|hich ind|
|00004040| 69 63 61 74 65 73 20 74 | 68 65 20 73 68 65 6c 6c |icates t|he shell|
|00004050| 20 69 73 20 74 6f 20 70 | 65 72 66 6f 72 6d 20 74 | is to p|erform t|
|00004060| 68 65 20 73 61 6d 65 0a | 58 09 20 2a 20 69 6e 69 |he same.|X. * ini|
|00004070| 74 69 61 6c 69 7a 61 74 | 69 6f 6e 20 69 74 20 64 |tializat|ion it d|
|00004080| 6f 65 73 20 61 74 20 6c | 6f 67 69 6e 20 74 69 6d |oes at l|ogin tim|
|00004090| 65 2e 20 20 74 68 65 20 | 72 65 6d 61 69 6e 69 6e |e. the |remainin|
|000040a0| 67 0a 58 09 20 2a 20 6f | 70 74 69 6f 6e 61 6c 20 |g.X. * o|ptional |
|000040b0| 61 72 67 75 6d 65 6e 74 | 20 69 73 20 74 68 65 20 |argument| is the |
|000040c0| 6e 61 6d 65 20 6f 66 20 | 61 20 6e 65 77 20 67 72 |name of |a new gr|
|000040d0| 6f 75 70 2e 20 20 69 66 | 20 69 74 20 69 73 6e 27 |oup. if| it isn'|
|000040e0| 74 0a 58 09 20 2a 20 70 | 72 65 73 65 6e 74 20 69 |t.X. * p|resent i|
|000040f0| 20 6a 75 73 74 20 75 73 | 65 20 74 68 65 20 6c 6f | just us|e the lo|
|00004100| 67 69 6e 20 67 72 6f 75 | 70 20 69 64 20 6f 66 20 |gin grou|p id of |
|00004110| 74 68 69 73 20 75 73 65 | 72 2e 0a 58 09 20 2a 2f |this use|r..X. */|
|00004120| 0a 58 0a 58 09 69 66 20 | 28 61 72 67 63 20 3e 20 |.X.X.if |(argc > |
|00004130| 31 20 26 26 20 73 74 72 | 63 6d 70 20 28 61 72 67 |1 && str|cmp (arg|
|00004140| 76 5b 31 5d 2c 20 22 2d | 22 29 20 3d 3d 20 30 29 |v[1], "-|") == 0)|
|00004150| 20 7b 0a 58 09 09 69 6e | 69 74 66 6c 61 67 20 3d | {.X..in|itflag =|
|00004160| 20 31 3b 0a 58 09 09 61 | 72 67 63 2d 2d 3b 20 61 | 1;.X..a|rgc--; a|
|00004170| 72 67 76 2b 2b 3b 0a 58 | 09 7d 0a 58 09 69 66 20 |rgv++;.X|.}.X.if |
|00004180| 28 61 72 67 63 20 3e 20 | 32 29 0a 58 09 09 75 73 |(argc > |2).X..us|
|00004190| 61 67 65 20 28 29 3b 0a | 58 0a 58 23 69 66 64 65 |age ();.|X.X#ifde|
|000041a0| 66 09 4e 47 52 4f 55 50 | 53 0a 58 0a 58 09 2f 2a |f.NGROUP|S.X.X./*|
|000041b0| 0a 58 09 20 2a 20 67 65 | 74 20 74 68 65 20 63 75 |.X. * ge|t the cu|
|000041c0| 72 72 65 6e 74 20 75 73 | 65 72 73 20 67 72 6f 75 |rrent us|ers grou|
|000041d0| 70 73 65 74 2e 20 20 74 | 68 65 20 6e 65 77 20 67 |pset. t|he new g|
|000041e0| 72 6f 75 70 20 77 69 6c | 6c 20 62 65 0a 58 09 20 |roup wil|l be.X. |
|000041f0| 2a 20 61 64 64 65 64 20 | 74 6f 20 74 68 65 20 63 |* added |to the c|
|00004200| 6f 6e 63 75 72 72 65 6e | 74 20 67 72 6f 75 70 73 |oncurren|t groups|
|00004210| 65 74 20 69 66 20 74 68 | 65 72 65 20 69 73 20 72 |et if th|ere is r|
|00004220| 6f 6f 6d 2c 20 6f 74 68 | 65 72 77 69 73 65 0a 58 |oom, oth|erwise.X|
|00004230| 09 20 2a 20 79 6f 75 20 | 67 65 74 20 61 20 6e 61 |. * you |get a na|
|00004240| 73 74 79 20 6d 65 73 73 | 61 67 65 20 62 75 74 20 |sty mess|age but |
|00004250| 61 74 20 6c 65 61 73 74 | 20 79 6f 75 72 20 72 65 |at least| your re|
|00004260| 61 6c 20 61 6e 64 20 65 | 66 66 65 63 74 69 76 65 |al and e|ffective|
|00004270| 0a 58 09 20 2a 20 67 72 | 6f 75 70 20 69 64 27 73 |.X. * gr|oup id's|
|00004280| 20 61 72 65 20 73 65 74 | 2e 0a 58 09 20 2a 2f 0a | are set|..X. */.|
|00004290| 58 0a 58 09 6e 67 72 6f | 75 70 73 20 3d 20 67 65 |X.X.ngro|ups = ge|
|000042a0| 74 67 72 6f 75 70 73 20 | 28 67 72 6f 75 70 73 29 |tgroups |(groups)|
|000042b0| 3b 0a 58 23 65 6e 64 69 | 66 0a 58 0a 58 09 2f 2a |;.X#endi|f.X.X./*|
|000042c0| 0a 58 09 20 2a 20 73 61 | 76 65 20 6d 79 20 6e 61 |.X. * sa|ve my na|
|000042d0| 6d 65 20 66 6f 72 20 65 | 72 72 6f 72 20 6d 65 73 |me for e|rror mes|
|000042e0| 73 61 67 65 73 20 61 6e | 64 20 73 61 76 65 20 6d |sages an|d save m|
|000042f0| 79 20 72 65 61 6c 20 67 | 69 64 20 69 6e 63 61 73 |y real g|id incas|
|00004300| 65 0a 58 09 20 2a 20 6f | 66 20 65 72 72 6f 72 73 |e.X. * o|f errors|
|00004310| 2e 20 20 69 66 20 74 68 | 65 72 65 20 69 73 20 61 |. if th|ere is a|
|00004320| 6e 20 65 72 72 6f 72 20 | 69 20 68 61 76 65 20 74 |n error |i have t|
|00004330| 6f 20 65 78 65 63 20 61 | 20 6e 65 77 20 6c 6f 67 |o exec a| new log|
|00004340| 69 6e 0a 58 09 20 2a 20 | 73 68 65 6c 6c 20 66 6f |in.X. * |shell fo|
|00004350| 72 20 74 68 65 20 75 73 | 65 72 20 73 69 6e 63 65 |r the us|er since|
|00004360| 20 68 65 72 20 6f 6c 64 | 20 73 68 65 6c 6c 20 77 | her old| shell w|
|00004370| 6f 6e 27 74 20 68 61 76 | 65 20 66 6f 72 6b 27 64 |on't hav|e fork'd|
|00004380| 20 74 6f 0a 58 09 20 2a | 20 63 72 65 61 74 65 20 | to.X. *| create |
|00004390| 74 68 65 20 70 72 6f 63 | 65 73 73 2e 0a 58 09 20 |the proc|ess..X. |
|000043a0| 2a 2f 0a 58 0a 58 09 6d | 79 6e 61 6d 65 20 3d 20 |*/.X.X.m|yname = |
|000043b0| 61 72 67 76 5b 30 5d 3b | 0a 58 09 67 69 64 20 3d |argv[0];|.X.gid =|
|000043c0| 20 67 65 74 67 69 64 20 | 28 29 3b 0a 58 0a 58 09 | getgid |();.X.X.|
|000043d0| 2f 2a 0a 58 09 20 2a 20 | 6e 6f 77 20 69 20 67 65 |/*.X. * |now i ge|
|000043e0| 74 20 74 6f 20 64 65 74 | 65 72 6d 69 6e 65 20 6d |t to det|ermine m|
|000043f0| 79 20 63 75 72 72 65 6e | 74 20 6e 61 6d 65 2e 20 |y curren|t name. |
|00004400| 20 69 20 64 6f 20 74 68 | 69 73 20 74 6f 20 76 61 | i do th|is to va|
|00004410| 6c 69 64 61 74 65 0a 58 | 09 20 2a 20 6d 79 20 61 |lidate.X|. * my a|
|00004420| 63 63 65 73 73 20 74 6f | 20 74 68 65 20 72 65 71 |ccess to| the req|
|00004430| 75 65 73 74 65 64 20 67 | 72 6f 75 70 2e 20 20 74 |uested g|roup. t|
|00004440| 68 65 20 76 61 6c 69 64 | 61 74 69 6f 6e 20 77 6f |he valid|ation wo|
|00004450| 72 6b 73 20 6c 69 6b 65 | 0a 58 09 20 2a 20 74 68 |rks like|.X. * th|
|00004460| 69 73 20 2d 0a 58 09 20 | 2a 09 31 29 20 67 65 74 |is -.X. |*.1) get|
|00004470| 20 74 68 65 20 6e 61 6d | 65 20 61 73 73 6f 63 69 | the nam|e associ|
|00004480| 61 74 65 64 20 77 69 74 | 68 20 6d 79 20 63 75 72 |ated wit|h my cur|
|00004490| 72 65 6e 74 20 75 73 65 | 72 20 69 64 0a 58 09 20 |rent use|r id.X. |
|000044a0| 2a 09 32 29 20 67 65 74 | 20 6d 79 20 6c 6f 67 69 |*.2) get| my logi|
|000044b0| 6e 20 6e 61 6d 65 2c 20 | 61 73 20 74 6f 6c 64 20 |n name, |as told |
|000044c0| 62 79 20 67 65 74 6c 6f | 67 69 6e 28 29 2e 0a 58 |by getlo|gin()..X|
|000044d0| 09 20 2a 09 33 29 20 69 | 66 20 74 68 65 79 20 6d |. *.3) i|f they m|
|000044e0| 61 74 63 68 2c 20 6d 79 | 20 6e 61 6d 65 20 69 73 |atch, my| name is|
|000044f0| 20 74 68 65 20 6c 6f 67 | 69 6e 20 6e 61 6d 65 0a | the log|in name.|
|00004500| 58 09 20 2a 09 34 29 20 | 69 66 20 74 68 65 79 20 |X. *.4) |if they |
|00004510| 64 6f 6e 27 74 20 6d 61 | 74 63 68 2c 20 6d 79 20 |don't ma|tch, my |
|00004520| 6e 61 6d 65 20 69 73 20 | 74 68 65 20 6e 61 6d 65 |name is |the name|
|00004530| 20 69 6e 20 74 68 65 0a | 58 09 20 2a 09 20 20 20 | in the.|X. *. |
|00004540| 70 61 73 73 77 6f 72 64 | 20 66 69 6c 65 2e 0a 58 |password| file..X|
|00004550| 09 20 2a 0a 58 09 20 2a | 20 74 68 69 73 20 69 73 |. *.X. *| this is|
|00004560| 6e 27 74 20 70 65 72 66 | 65 63 74 2c 20 62 75 74 |n't perf|ect, but|
|00004570| 20 69 74 20 77 6f 72 6b | 73 20 6d 6f 72 65 20 6f | it work|s more o|
|00004580| 66 74 65 6e 20 74 68 65 | 6e 20 6e 6f 74 2e 0a 58 |ften the|n not..X|
|00004590| 09 20 2a 2f 0a 58 0a 58 | 09 70 77 64 20 3d 20 67 |. */.X.X|.pwd = g|
|000045a0| 65 74 70 77 75 69 64 20 | 28 67 65 74 75 69 64 20 |etpwuid |(getuid |
|000045b0| 28 29 29 3b 0a 58 0a 58 | 09 69 66 20 28 21 20 28 |());.X.X|.if (! (|
|000045c0| 6e 61 6d 65 20 3d 20 67 | 65 74 6c 6f 67 69 6e 20 |name = g|etlogin |
|000045d0| 28 29 29 20 7c 7c 20 73 | 74 72 63 6d 70 20 28 6e |()) || s|trcmp (n|
|000045e0| 61 6d 65 2c 20 70 77 64 | 2d 3e 70 77 5f 6e 61 6d |ame, pwd|->pw_nam|
|000045f0| 65 29 20 21 3d 20 30 29 | 0a 58 09 09 6e 61 6d 65 |e) != 0)|.X..name|
|00004600| 20 3d 20 70 77 64 2d 3e | 70 77 5f 6e 61 6d 65 3b | = pwd->|pw_name;|
|00004610| 0a 58 0a 58 09 69 66 20 | 28 21 20 28 70 77 64 20 |.X.X.if |(! (pwd |
|00004620| 3d 20 67 65 74 70 77 6e | 61 6d 20 28 6e 61 6d 65 |= getpwn|am (name|
|00004630| 29 29 29 20 7b 0a 58 09 | 09 66 70 72 69 6e 74 66 |))) {.X.|.fprintf|
|00004640| 20 28 73 74 64 65 72 72 | 2c 20 22 75 6e 6b 6e 6f | (stderr|, "unkno|
|00004650| 77 6e 20 75 73 65 72 3a | 20 25 73 5c 6e 22 2c 20 |wn user:| %s\n", |
|00004660| 6e 61 6d 65 29 3b 0a 58 | 09 09 65 78 69 74 20 28 |name);.X|..exit (|
|00004670| 31 29 3b 0a 58 09 7d 0a | 58 0a 58 09 2f 2a 0a 58 |1);.X.}.|X.X./*.X|
|00004680| 09 20 2a 20 6e 6f 77 20 | 77 65 20 64 65 74 65 72 |. * now |we deter|
|00004690| 6d 69 6e 65 20 74 68 65 | 20 6e 61 6d 65 20 6f 66 |mine the| name of|
|000046a0| 20 74 68 65 20 6e 65 77 | 20 67 72 6f 75 70 20 77 | the new| group w|
|000046b0| 68 69 63 68 20 73 68 65 | 20 77 69 73 68 65 73 0a |hich she| wishes.|
|000046c0| 58 09 20 2a 20 74 6f 20 | 62 65 63 6f 6d 65 20 61 |X. * to |become a|
|000046d0| 20 6d 65 6d 62 65 72 20 | 6f 66 2e 20 20 74 68 65 | member |of. the|
|000046e0| 20 70 61 73 73 77 6f 72 | 64 20 66 69 6c 65 20 65 | passwor|d file e|
|000046f0| 6e 74 72 79 20 66 6f 72 | 20 68 65 72 0a 58 09 20 |ntry for| her.X. |
|00004700| 2a 20 63 75 72 72 65 6e | 74 20 75 73 65 72 20 69 |* curren|t user i|
|00004710| 64 20 68 61 73 20 62 65 | 65 6e 20 67 6f 74 74 65 |d has be|en gotte|
|00004720| 6e 2e 20 20 69 66 20 74 | 68 65 72 65 20 69 73 20 |n. if t|here is |
|00004730| 6e 6f 20 6f 70 74 69 6f | 6e 61 6c 0a 58 09 20 2a |no optio|nal.X. *|
|00004740| 20 67 72 6f 75 70 20 61 | 72 67 75 6d 65 6e 74 20 | group a|rgument |
|00004750| 73 68 65 20 77 69 6c 6c | 20 68 61 76 65 20 68 65 |she will| have he|
|00004760| 72 20 72 65 61 6c 20 61 | 6e 64 20 65 66 66 65 63 |r real a|nd effec|
|00004770| 74 69 76 65 20 67 72 6f | 75 70 20 69 64 0a 58 09 |tive gro|up id.X.|
|00004780| 20 2a 20 73 65 74 20 74 | 6f 20 74 68 65 20 76 61 | * set t|o the va|
|00004790| 6c 75 65 20 66 72 6f 6d | 20 68 65 72 20 70 61 73 |lue from| her pas|
|000047a0| 73 77 6f 72 64 20 66 69 | 6c 65 20 65 6e 74 72 79 |sword fi|le entry|
|000047b0| 2e 20 20 6f 74 68 65 72 | 77 69 73 65 0a 58 09 20 |. other|wise.X. |
|000047c0| 2a 20 77 65 20 76 61 6c | 69 64 61 74 65 20 68 65 |* we val|idate he|
|000047d0| 72 20 61 63 63 65 73 73 | 20 74 6f 20 74 68 65 20 |r access| to the |
|000047e0| 73 70 65 63 69 66 69 65 | 64 20 67 72 6f 75 70 2e |specifie|d group.|
|000047f0| 0a 58 09 20 2a 2f 0a 58 | 0a 58 09 69 66 20 28 61 |.X. */.X|.X.if (a|
|00004800| 72 67 76 5b 31 5d 20 21 | 3d 20 28 63 68 61 72 20 |rgv[1] !|= (char |
|00004810| 2a 29 20 30 29 20 7b 0a | 58 0a 58 09 09 2f 2a 0a |*) 0) {.|X.X../*.|
|00004820| 58 09 09 20 2a 20 73 74 | 61 72 74 20 62 79 20 67 |X.. * st|art by g|
|00004830| 65 74 74 69 6e 67 20 74 | 68 65 20 65 6e 74 72 79 |etting t|he entry|
|00004840| 20 66 6f 72 20 74 68 65 | 20 72 65 71 75 65 73 74 | for the| request|
|00004850| 65 64 20 67 72 6f 75 70 | 2e 0a 58 09 09 20 2a 2f |ed group|..X.. */|
|00004860| 0a 58 0a 58 09 09 69 66 | 20 28 21 20 28 67 72 70 |.X.X..if| (! (grp|
|00004870| 20 3d 20 67 65 74 67 72 | 6e 61 6d 20 28 67 72 6f | = getgr|nam (gro|
|00004880| 75 70 20 3d 20 61 72 67 | 76 5b 31 5d 29 29 29 20 |up = arg|v[1]))) |
|00004890| 7b 0a 58 09 09 09 66 70 | 72 69 6e 74 66 20 28 73 |{.X...fp|rintf (s|
|000048a0| 74 64 65 72 72 2c 20 22 | 75 6e 6b 6e 6f 77 6e 20 |tderr, "|unknown |
|000048b0| 67 72 6f 75 70 3a 20 25 | 73 5c 6e 22 2c 20 67 72 |group: %|s\n", gr|
|000048c0| 6f 75 70 29 3b 0a 58 09 | 09 09 67 6f 74 6f 20 66 |oup);.X.|..goto f|
|000048d0| 61 69 6c 75 72 65 3b 0a | 58 09 09 7d 0a 58 0a 58 |ailure;.|X..}.X.X|
|000048e0| 09 09 2f 2a 0a 58 09 09 | 20 2a 20 73 65 65 20 69 |../*.X..| * see i|
|000048f0| 66 20 73 68 65 20 69 73 | 20 61 20 6d 65 6d 62 65 |f she is| a membe|
|00004900| 72 20 6f 66 20 74 68 69 | 73 20 67 72 6f 75 70 2e |r of thi|s group.|
|00004910| 0a 58 09 09 20 2a 2f 0a | 58 0a 58 09 09 66 6f 72 |.X.. */.|X.X..for|
|00004920| 20 28 69 20 3d 20 30 3b | 67 72 70 2d 3e 67 72 5f | (i = 0;|grp->gr_|
|00004930| 6d 65 6d 5b 69 5d 3b 69 | 2b 2b 29 0a 58 09 09 09 |mem[i];i|++).X...|
|00004940| 69 66 20 28 73 74 72 63 | 6d 70 20 28 6e 61 6d 65 |if (strc|mp (name|
|00004950| 2c 20 67 72 70 2d 3e 67 | 72 5f 6d 65 6d 5b 69 5d |, grp->g|r_mem[i]|
|00004960| 29 20 3d 3d 20 30 29 0a | 58 09 09 09 09 62 72 65 |) == 0).|X....bre|
|00004970| 61 6b 3b 0a 58 0a 58 09 | 09 2f 2a 0a 58 09 09 20 |ak;.X.X.|./*.X.. |
|00004980| 2a 20 69 66 20 73 68 65 | 20 69 73 6e 27 74 20 61 |* if she| isn't a|
|00004990| 20 6d 65 6d 62 65 72 2c | 20 73 68 65 20 6e 65 65 | member,| she nee|
|000049a0| 64 73 20 74 6f 20 70 72 | 6f 76 69 64 65 20 74 68 |ds to pr|ovide th|
|000049b0| 65 0a 58 09 09 20 2a 20 | 67 72 6f 75 70 20 70 61 |e.X.. * |group pa|
|000049c0| 73 73 77 6f 72 64 2e 20 | 20 69 66 20 74 68 65 72 |ssword. | if ther|
|000049d0| 65 20 69 73 20 6e 6f 20 | 67 72 6f 75 70 20 70 61 |e is no |group pa|
|000049e0| 73 73 77 6f 72 64 2c 20 | 73 68 65 0a 58 09 09 20 |ssword, |she.X.. |
|000049f0| 2a 20 77 69 6c 6c 20 62 | 65 20 64 65 6e 69 65 64 |* will b|e denied|
|00004a00| 20 61 63 63 65 73 73 20 | 61 6e 79 77 61 79 2e 0a | access |anyway..|
|00004a10| 58 09 09 20 2a 2f 0a 58 | 0a 58 09 09 69 66 20 28 |X.. */.X|.X..if (|
|00004a20| 67 72 70 2d 3e 67 72 5f | 6d 65 6d 5b 69 5d 20 3d |grp->gr_|mem[i] =|
|00004a30| 3d 20 28 63 68 61 72 20 | 2a 29 20 30 29 0a 58 09 |= (char |*) 0).X.|
|00004a40| 09 09 6e 65 65 64 73 70 | 61 73 73 77 64 20 3d 20 |..needsp|asswd = |
|00004a50| 31 3b 0a 58 23 69 66 64 | 65 66 09 53 48 41 44 4f |1;.X#ifd|ef.SHADO|
|00004a60| 57 50 57 44 0a 58 0a 58 | 09 09 2f 2a 0a 58 09 09 |WPWD.X.X|../*.X..|
|00004a70| 20 2a 20 69 66 20 73 68 | 65 20 64 6f 65 73 20 6e | * if sh|e does n|
|00004a80| 6f 74 20 68 61 76 65 20 | 65 69 74 68 65 72 20 61 |ot have |either a|
|00004a90| 20 73 68 61 64 6f 77 65 | 64 20 70 61 73 73 77 6f | shadowe|d passwo|
|00004aa0| 72 64 2c 0a 58 09 09 20 | 2a 20 6f 72 20 61 20 72 |rd,.X.. |* or a r|
|00004ab0| 65 67 75 6c 61 72 20 70 | 61 73 73 77 6f 72 64 2c |egular p|assword,|
|00004ac0| 20 61 6e 64 20 74 68 65 | 20 67 72 6f 75 70 20 68 | and the| group h|
|00004ad0| 61 73 20 61 20 70 61 73 | 73 77 6f 72 64 2c 0a 58 |as a pas|sword,.X|
|00004ae0| 09 09 20 2a 20 73 68 65 | 20 6e 65 65 64 73 20 74 |.. * she| needs t|
|00004af0| 6f 20 67 69 76 65 20 74 | 68 65 20 67 72 6f 75 70 |o give t|he group|
|00004b00| 20 70 61 73 73 77 6f 72 | 64 2e 0a 58 09 09 20 2a | passwor|d..X.. *|
|00004b10| 2f 0a 58 0a 58 09 09 69 | 66 20 28 73 70 77 64 20 |/.X.X..i|f (spwd |
|00004b20| 3d 20 67 65 74 73 70 6e | 61 6d 20 28 6e 61 6d 65 |= getspn|am (name|
|00004b30| 29 29 20 7b 0a 58 09 09 | 09 69 66 20 28 73 70 77 |)) {.X..|.if (spw|
|00004b40| 64 2d 3e 73 70 5f 70 77 | 64 70 5b 30 5d 20 3d 3d |d->sp_pw|dp[0] ==|
|00004b50| 20 27 5c 30 27 20 26 26 | 20 67 72 70 2d 3e 67 72 | '\0' &&| grp->gr|
|00004b60| 5f 70 61 73 73 77 64 5b | 30 5d 29 0a 58 09 09 09 |_passwd[|0]).X...|
|00004b70| 09 6e 65 65 64 73 70 61 | 73 73 77 64 20 3d 20 31 |.needspa|sswd = 1|
|00004b80| 3b 0a 58 09 09 7d 20 65 | 6c 73 65 20 7b 0a 58 09 |;.X..} e|lse {.X.|
|00004b90| 09 09 69 66 20 28 70 77 | 64 2d 3e 70 77 5f 70 61 |..if (pw|d->pw_pa|
|00004ba0| 73 73 77 64 5b 30 5d 20 | 3d 3d 20 27 5c 30 27 20 |sswd[0] |== '\0' |
|00004bb0| 26 26 20 67 72 70 2d 3e | 67 72 5f 70 61 73 73 77 |&& grp->|gr_passw|
|00004bc0| 64 5b 30 5d 29 0a 58 09 | 09 09 09 6e 65 65 64 73 |d[0]).X.|...needs|
|00004bd0| 70 61 73 73 77 64 20 3d | 20 31 3b 0a 58 09 09 7d |passwd =| 1;.X..}|
|00004be0| 0a 58 23 65 6c 73 65 0a | 58 0a 58 09 09 2f 2a 0a |.X#else.|X.X../*.|
|00004bf0| 58 09 09 20 2a 20 69 66 | 20 73 68 65 20 64 6f 65 |X.. * if| she doe|
|00004c00| 73 20 6e 6f 74 20 68 61 | 76 65 20 61 20 72 65 67 |s not ha|ve a reg|
|00004c10| 75 6c 61 72 20 70 61 73 | 73 77 6f 72 64 20 73 68 |ular pas|sword sh|
|00004c20| 65 20 77 69 6c 6c 20 68 | 61 76 65 0a 58 09 09 20 |e will h|ave.X.. |
|00004c30| 2a 20 74 6f 20 67 69 76 | 65 20 74 68 65 20 67 72 |* to giv|e the gr|
|00004c40| 6f 75 70 20 70 61 73 73 | 77 6f 72 64 2c 20 69 66 |oup pass|word, if|
|00004c50| 20 6f 6e 65 20 65 78 69 | 73 74 73 2e 0a 58 09 09 | one exi|sts..X..|
|00004c60| 20 2a 2f 0a 58 0a 58 09 | 09 69 66 20 28 70 77 64 | */.X.X.|.if (pwd|
|00004c70| 2d 3e 70 77 5f 70 61 73 | 73 77 64 5b 30 5d 20 3d |->pw_pas|swd[0] =|
|00004c80| 3d 20 27 5c 30 27 20 26 | 26 20 67 72 70 2d 3e 67 |= '\0' &|& grp->g|
|00004c90| 72 5f 70 61 73 73 77 64 | 5b 30 5d 29 0a 58 09 09 |r_passwd|[0]).X..|
|00004ca0| 09 6e 65 65 64 73 70 61 | 73 73 77 64 20 3d 20 31 |.needspa|sswd = 1|
|00004cb0| 3b 0a 58 23 65 6e 64 69 | 66 0a 58 09 7d 20 65 6c |;.X#endi|f.X.} el|
|00004cc0| 73 65 20 7b 0a 58 0a 58 | 09 09 2f 2a 0a 58 09 09 |se {.X.X|../*.X..|
|00004cd0| 20 2a 20 67 65 74 20 74 | 68 65 20 67 72 6f 75 70 | * get t|he group|
|00004ce0| 20 66 69 6c 65 20 65 6e | 74 72 79 20 66 6f 72 20 | file en|try for |
|00004cf0| 68 65 72 20 6c 6f 67 69 | 6e 20 67 72 6f 75 70 20 |her logi|n group |
|00004d00| 69 64 2e 0a 58 09 09 20 | 2a 20 74 68 65 20 65 6e |id..X.. |* the en|
|00004d10| 74 72 79 20 6d 75 73 74 | 20 65 78 69 73 74 2c 20 |try must| exist, |
|00004d20| 73 69 6d 70 6c 79 20 74 | 6f 20 62 65 20 61 6e 6e |simply t|o be ann|
|00004d30| 6f 79 69 6e 67 2e 0a 58 | 09 09 20 2a 2f 0a 58 0a |oying..X|.. */.X.|
|00004d40| 58 09 09 69 66 20 28 21 | 20 28 67 72 70 20 3d 20 |X..if (!| (grp = |
|00004d50| 67 65 74 67 72 67 69 64 | 20 28 70 77 64 2d 3e 70 |getgrgid| (pwd->p|
|00004d60| 77 5f 67 69 64 29 29 29 | 20 7b 0a 58 09 09 09 66 |w_gid)))| {.X...f|
|00004d70| 70 72 69 6e 74 66 20 28 | 73 74 64 65 72 72 2c 20 |printf (|stderr, |
|00004d80| 22 75 6e 6b 6e 6f 77 6e | 20 67 69 64 3a 20 25 64 |"unknown| gid: %d|
|00004d90| 5c 6e 22 2c 20 70 77 64 | 2d 3e 70 77 5f 67 69 64 |\n", pwd|->pw_gid|
|00004da0| 29 3b 0a 58 09 09 09 67 | 6f 74 6f 20 66 61 69 6c |);.X...g|oto fail|
|00004db0| 75 72 65 3b 0a 58 09 09 | 7d 0a 58 09 7d 0a 58 0a |ure;.X..|}.X.}.X.|
|00004dc0| 58 09 2f 2a 0a 58 09 20 | 2a 20 6e 6f 77 20 69 20 |X./*.X. |* now i |
|00004dd0| 73 65 65 20 61 62 6f 75 | 74 20 6c 65 74 74 69 6e |see abou|t lettin|
|00004de0| 67 20 68 65 72 20 69 6e | 74 6f 20 74 68 65 20 67 |g her in|to the g|
|00004df0| 72 6f 75 70 20 73 68 65 | 20 72 65 71 75 65 73 74 |roup she| request|
|00004e00| 65 64 2e 0a 58 09 20 2a | 20 69 66 20 73 68 65 20 |ed..X. *| if she |
|00004e10| 69 73 20 74 68 65 20 72 | 6f 6f 74 20 75 73 65 72 |is the r|oot user|
|00004e20| 2c 20 69 27 6c 6c 20 6c | 65 74 20 68 65 72 20 69 |, i'll l|et her i|
|00004e30| 6e 20 77 69 74 68 6f 75 | 74 20 68 61 76 69 6e 67 |n withou|t having|
|00004e40| 20 74 6f 0a 58 09 20 2a | 20 70 72 6f 6d 70 74 20 | to.X. *| prompt |
|00004e50| 66 6f 72 20 74 68 65 20 | 70 61 73 73 77 6f 72 64 |for the |password|
|00004e60| 2e 20 20 6f 74 68 65 72 | 77 69 73 65 20 69 20 61 |. other|wise i a|
|00004e70| 73 6b 20 66 6f 72 20 61 | 20 70 61 73 73 77 6f 72 |sk for a| passwor|
|00004e80| 64 0a 58 09 20 2a 20 69 | 66 20 73 68 65 20 66 6c |d.X. * i|f she fl|
|00004e90| 75 6e 6b 65 64 20 6f 6e | 65 20 6f 66 20 74 68 65 |unked on|e of the|
|00004ea0| 20 74 65 73 74 73 20 61 | 62 6f 76 65 2e 20 20 6e | tests a|bove. n|
|00004eb0| 6f 74 65 20 74 68 61 74 | 20 73 68 65 0a 58 09 20 |ote that| she.X. |
|00004ec0| 2a 20 77 6f 6e 27 74 20 | 68 61 76 65 20 74 6f 20 |* won't |have to |
|00004ed0| 70 72 6f 76 69 64 65 20 | 74 68 65 20 70 61 73 73 |provide |the pass|
|00004ee0| 77 6f 72 64 20 74 6f 20 | 68 65 72 20 6c 6f 67 69 |word to |her logi|
|00004ef0| 6e 20 67 72 6f 75 70 20 | 65 76 65 6e 0a 58 09 20 |n group |even.X. |
|00004f00| 2a 20 69 66 20 73 68 65 | 20 69 73 6e 27 74 20 6c |* if she| isn't l|
|00004f10| 69 73 74 65 64 20 61 73 | 20 61 20 6d 65 6d 62 65 |isted as| a membe|
|00004f20| 72 2e 0a 58 09 20 2a 2f | 0a 58 0a 58 09 69 66 20 |r..X. */|.X.X.if |
|00004f30| 28 67 65 74 75 69 64 20 | 28 29 20 21 3d 20 30 20 |(getuid |() != 0 |
|00004f40| 26 26 20 6e 65 65 64 73 | 70 61 73 73 77 64 29 20 |&& needs|passwd) |
|00004f50| 7b 0a 58 09 09 69 66 20 | 28 67 72 70 2d 3e 67 72 |{.X..if |(grp->gr|
|00004f60| 5f 70 61 73 73 77 64 5b | 30 5d 29 20 7b 0a 58 0a |_passwd[|0]) {.X.|
|00004f70| 58 09 09 2f 2a 0a 58 09 | 09 20 2a 20 67 65 74 20 |X../*.X.|. * get |
|00004f80| 74 68 65 20 70 61 73 73 | 77 6f 72 64 20 66 72 6f |the pass|word fro|
|00004f90| 6d 20 68 65 72 2c 20 61 | 6e 64 20 73 65 74 20 74 |m her, a|nd set t|
|00004fa0| 68 65 20 73 61 6c 74 20 | 66 6f 72 0a 58 09 09 20 |he salt |for.X.. |
|00004fb0| 2a 20 74 68 65 20 64 65 | 63 72 79 70 74 69 6f 6e |* the de|cryption|
|00004fc0| 20 66 72 6f 6d 20 74 68 | 65 20 67 72 6f 75 70 20 | from th|e group |
|00004fd0| 66 69 6c 65 2e 0a 58 09 | 09 20 2a 2f 0a 58 0a 58 |file..X.|. */.X.X|
|00004fe0| 09 09 09 70 61 73 73 77 | 6f 72 64 20 28 22 50 61 |...passw|ord ("Pa|
|00004ff0| 73 73 77 6f 72 64 3a 22 | 2c 20 70 61 73 73 77 64 |ssword:"|, passwd|
|00005000| 29 3b 0a 58 09 09 09 73 | 61 6c 74 20 3d 20 67 72 |);.X...s|alt = gr|
|00005010| 70 2d 3e 67 72 5f 70 61 | 73 73 77 64 3b 0a 58 09 |p->gr_pa|sswd;.X.|
|00005020| 09 7d 20 65 6c 73 65 20 | 7b 0a 58 0a 58 09 09 2f |.} else |{.X.X../|
|00005030| 2a 0a 58 09 09 20 2a 20 | 74 68 65 72 65 20 69 73 |*.X.. * |there is|
|00005040| 20 6e 6f 20 70 61 73 73 | 77 6f 72 64 2c 20 70 72 | no pass|word, pr|
|00005050| 69 6e 74 20 6f 75 74 20 | 22 53 6f 72 72 79 22 20 |int out |"Sorry" |
|00005060| 61 6e 64 20 67 69 76 65 | 20 75 70 0a 58 09 09 20 |and give| up.X.. |
|00005070| 2a 2f 0a 58 0a 58 09 09 | 09 66 70 75 74 73 20 28 |*/.X.X..|.fputs (|
|00005080| 22 53 6f 72 72 79 5c 6e | 22 2c 20 73 74 64 65 72 |"Sorry\n|", stder|
|00005090| 72 29 3b 0a 58 09 09 09 | 67 6f 74 6f 20 66 61 69 |r);.X...|goto fai|
|000050a0| 6c 75 72 65 3b 0a 58 09 | 09 7d 0a 58 0a 58 09 09 |lure;.X.|.}.X.X..|
|000050b0| 2f 2a 0a 58 09 09 20 2a | 20 65 6e 63 72 79 70 74 |/*.X.. *| encrypt|
|000050c0| 20 74 68 65 20 6b 65 79 | 20 73 68 65 20 67 61 76 | the key| she gav|
|000050d0| 65 20 75 73 20 75 73 69 | 6e 67 20 74 68 65 20 73 |e us usi|ng the s|
|000050e0| 61 6c 74 20 66 72 6f 6d | 0a 58 09 09 20 2a 20 74 |alt from|.X.. * t|
|000050f0| 68 65 20 70 61 73 73 77 | 6f 72 64 20 69 6e 20 74 |he passw|ord in t|
|00005100| 68 65 20 67 72 6f 75 70 | 20 66 69 6c 65 2e 20 20 |he group| file. |
|00005110| 74 68 65 20 72 65 73 75 | 6c 74 20 6f 66 0a 58 09 |the resu|lt of.X.|
|00005120| 09 20 2a 20 74 68 69 73 | 20 65 6e 63 72 79 70 74 |. * this| encrypt|
|00005130| 69 6f 6e 20 6d 75 73 74 | 20 6d 61 74 63 68 20 74 |ion must| match t|
|00005140| 68 65 20 70 72 65 76 69 | 6f 75 73 6c 79 0a 58 09 |he previ|ously.X.|
|00005150| 09 20 2a 20 65 6e 63 72 | 79 70 74 65 64 20 76 61 |. * encr|ypted va|
|00005160| 6c 75 65 20 69 6e 20 74 | 68 65 20 66 69 6c 65 2e |lue in t|he file.|
|00005170| 0a 58 09 09 20 2a 0a 58 | 09 09 20 2a 20 65 61 63 |.X.. *.X|.. * eac|
|00005180| 68 20 63 68 75 6e 6b 20 | 6f 66 20 65 6e 63 72 79 |h chunk |of encry|
|00005190| 70 74 65 64 20 73 74 72 | 69 6e 67 20 69 73 20 31 |pted str|ing is 1|
|000051a0| 31 20 63 68 61 72 61 63 | 74 65 72 73 0a 58 09 09 |1 charac|ters.X..|
|000051b0| 20 2a 20 6c 6f 6e 67 2c | 20 70 6c 75 73 20 32 20 | * long,| plus 2 |
|000051c0| 63 68 61 72 61 63 74 65 | 72 73 20 66 6f 72 20 74 |characte|rs for t|
|000051d0| 68 65 20 73 61 6c 74 2e | 20 20 65 61 63 68 0a 58 |he salt.| each.X|
|000051e0| 09 09 20 2a 20 67 72 6f | 75 70 20 6f 66 20 31 31 |.. * gro|up of 11|
|000051f0| 20 63 68 61 72 61 63 74 | 65 72 73 20 72 65 70 72 | charact|ers repr|
|00005200| 65 73 65 6e 74 73 20 38 | 20 63 68 61 72 61 63 74 |esents 8| charact|
|00005210| 65 72 73 0a 58 09 09 20 | 2a 20 6f 66 20 63 6c 65 |ers.X.. |* of cle|
|00005220| 61 72 74 65 78 74 2e 0a | 58 09 09 20 2a 2f 0a 58 |artext..|X.. */.X|
|00005230| 0a 58 09 09 63 70 61 73 | 73 77 64 20 3d 20 63 72 |.X..cpas|swd = cr|
|00005240| 79 70 74 20 28 70 61 73 | 73 77 64 2c 20 73 61 6c |ypt (pas|swd, sal|
|00005250| 74 29 3b 0a 58 0a 58 09 | 09 69 66 20 28 73 74 72 |t);.X.X.|.if (str|
|00005260| 6e 63 6d 70 20 28 63 70 | 61 73 73 77 64 2c 20 67 |ncmp (cp|asswd, g|
|00005270| 72 70 2d 3e 67 72 5f 70 | 61 73 73 77 64 2c 20 31 |rp->gr_p|asswd, 1|
|00005280| 33 29 20 21 3d 20 30 29 | 20 7b 0a 58 09 09 09 66 |3) != 0)| {.X...f|
|00005290| 70 75 74 73 20 28 22 53 | 6f 72 72 79 5c 6e 22 2c |puts ("S|orry\n",|
|000052a0| 20 73 74 64 65 72 72 29 | 3b 0a 58 09 09 09 67 6f | stderr)|;.X...go|
|000052b0| 74 6f 20 66 61 69 6c 75 | 72 65 3b 0a 58 09 09 7d |to failu|re;.X..}|
|000052c0| 0a 58 23 69 66 64 65 66 | 09 44 4f 55 42 4c 45 53 |.X#ifdef|.DOUBLES|
|000052d0| 49 5a 45 0a 58 09 09 69 | 66 20 28 73 74 72 6c 65 |IZE.X..i|f (strle|
|000052e0| 6e 20 28 67 72 70 2d 3e | 67 72 5f 70 61 73 73 77 |n (grp->|gr_passw|
|000052f0| 64 29 20 3e 20 31 33 29 | 20 7b 0a 58 09 09 09 63 |d) > 13)| {.X...c|
|00005300| 70 61 73 73 77 64 20 3d | 20 63 72 79 70 74 20 28 |passwd =| crypt (|
|00005310| 70 61 73 73 77 64 20 2b | 20 38 2c 20 73 61 6c 74 |passwd +| 8, salt|
|00005320| 29 3b 0a 58 0a 58 09 09 | 09 69 66 20 28 73 74 72 |);.X.X..|.if (str|
|00005330| 63 6d 70 20 28 63 70 61 | 73 73 77 64 20 2b 20 32 |cmp (cpa|sswd + 2|
|00005340| 2c 20 67 72 70 2d 3e 67 | 72 5f 70 61 73 73 77 64 |, grp->g|r_passwd|
|00005350| 20 2b 20 31 33 29 20 21 | 3d 20 30 29 20 7b 0a 58 | + 13) !|= 0) {.X|
|00005360| 09 09 09 09 66 70 75 74 | 73 20 28 22 53 6f 72 72 |....fput|s ("Sorr|
|00005370| 79 5c 6e 22 2c 20 73 74 | 64 65 72 72 29 3b 0a 58 |y\n", st|derr);.X|
|00005380| 09 09 09 09 67 6f 74 6f | 20 66 61 69 6c 75 72 65 |....goto| failure|
|00005390| 3b 0a 58 09 09 09 7d 0a | 58 09 09 7d 0a 58 23 65 |;.X...}.|X..}.X#e|
|000053a0| 6e 64 69 66 0a 58 09 7d | 0a 58 0a 58 09 2f 2a 0a |ndif.X.}|.X.X./*.|
|000053b0| 58 09 20 2a 20 61 6c 6c | 20 73 75 63 63 65 73 73 |X. * all| success|
|000053c0| 66 75 6c 20 76 61 6c 69 | 64 61 74 69 6f 6e 73 20 |ful vali|dations |
|000053d0| 70 61 73 73 20 74 68 72 | 6f 75 67 68 20 74 68 69 |pass thr|ough thi|
|000053e0| 73 20 70 6f 69 6e 74 2e | 20 20 74 68 65 0a 58 09 |s point.| the.X.|
|000053f0| 20 2a 20 67 72 6f 75 70 | 20 69 64 20 77 69 6c 6c | * group| id will|
|00005400| 20 62 65 20 73 65 74 2c | 20 61 6e 64 20 74 68 65 | be set,| and the|
|00005410| 20 67 72 6f 75 70 20 61 | 64 64 65 64 20 74 6f 20 | group a|dded to |
|00005420| 74 68 65 20 63 6f 6e 63 | 75 72 72 65 6e 74 0a 58 |the conc|urrent.X|
|00005430| 09 20 2a 20 67 72 6f 75 | 70 73 65 74 2e 0a 58 09 |. * grou|pset..X.|
|00005440| 20 2a 2f 0a 58 0a 58 09 | 67 69 64 20 3d 20 67 72 | */.X.X.|gid = gr|
|00005450| 70 2d 3e 67 72 5f 67 69 | 64 3b 0a 58 23 69 66 64 |p->gr_gi|d;.X#ifd|
|00005460| 65 66 09 4e 47 52 4f 55 | 50 53 0a 58 0a 58 09 2f |ef.NGROU|PS.X.X./|
|00005470| 2a 0a 58 09 20 2a 20 69 | 20 61 6d 20 67 6f 69 6e |*.X. * i| am goin|
|00005480| 67 20 74 6f 20 74 72 79 | 20 74 6f 20 61 64 64 20 |g to try| to add |
|00005490| 68 65 72 20 6e 65 77 20 | 67 72 6f 75 70 20 69 64 |her new |group id|
|000054a0| 20 74 6f 20 68 65 72 20 | 63 6f 6e 63 75 72 72 65 | to her |concurre|
|000054b0| 6e 74 0a 58 09 20 2a 20 | 67 72 6f 75 70 20 73 65 |nt.X. * |group se|
|000054c0| 74 2e 20 20 69 66 20 74 | 68 65 20 67 72 6f 75 70 |t. if t|he group|
|000054d0| 20 69 64 20 69 73 20 61 | 6c 72 65 61 64 79 20 70 | id is a|lready p|
|000054e0| 72 65 73 65 6e 74 20 69 | 27 6c 6c 20 6a 75 73 74 |resent i|'ll just|
|000054f0| 0a 58 09 20 2a 20 73 6b | 69 70 20 74 68 69 73 20 |.X. * sk|ip this |
|00005500| 70 61 72 74 2e 20 20 69 | 66 20 74 68 65 20 67 72 |part. i|f the gr|
|00005510| 6f 75 70 20 64 6f 65 73 | 6e 27 74 20 66 69 74 2c |oup does|n't fit,|
|00005520| 20 69 27 6c 6c 20 63 6f | 6d 70 6c 61 69 6e 0a 58 | i'll co|mplain.X|
|00005530| 09 20 2a 20 6c 6f 75 64 | 6c 79 20 61 6e 64 20 73 |. * loud|ly and s|
|00005540| 6b 69 70 20 74 68 69 73 | 20 70 61 72 74 20 2e 2e |kip this| part ..|
|00005550| 2e 0a 58 09 20 2a 2f 0a | 58 0a 58 09 66 6f 72 20 |..X. */.|X.X.for |
|00005560| 28 69 20 3d 20 30 3b 69 | 20 3c 20 6e 67 72 6f 75 |(i = 0;i| < ngrou|
|00005570| 70 73 3b 69 2b 2b 29 20 | 7b 0a 58 09 09 69 66 20 |ps;i++) |{.X..if |
|00005580| 28 67 69 64 20 3d 3d 20 | 67 72 6f 75 70 73 5b 69 |(gid == |groups[i|
|00005590| 5d 29 0a 58 09 09 09 62 | 72 65 61 6b 3b 0a 58 09 |]).X...b|reak;.X.|
|000055a0| 7d 0a 58 09 69 66 20 28 | 69 20 3d 3d 20 6e 67 72 |}.X.if (|i == ngr|
|000055b0| 6f 75 70 73 29 20 7b 0a | 58 09 09 69 66 20 28 6e |oups) {.|X..if (n|
|000055c0| 67 72 6f 75 70 73 20 3d | 3d 20 4e 47 52 4f 55 50 |groups =|= NGROUP|
|000055d0| 53 29 20 7b 0a 58 09 09 | 09 66 70 72 69 6e 74 66 |S) {.X..|.fprintf|
|000055e0| 20 28 73 74 64 65 72 72 | 2c 20 22 74 6f 6f 20 6d | (stderr|, "too m|
|000055f0| 61 6e 79 20 67 72 6f 75 | 70 73 5c 6e 22 29 3b 0a |any grou|ps\n");.|
|00005600| 58 09 09 7d 20 65 6c 73 | 65 20 7b 0a 58 09 09 09 |X..} els|e {.X...|
|00005610| 67 72 6f 75 70 73 5b 6e | 67 72 6f 75 70 73 2b 2b |groups[n|groups++|
|00005620| 5d 20 3d 20 67 69 64 3b | 0a 58 09 09 09 69 66 20 |] = gid;|.X...if |
|00005630| 28 73 65 74 67 72 6f 75 | 70 73 20 28 6e 67 72 6f |(setgrou|ps (ngro|
|00005640| 75 70 73 2c 20 67 72 6f | 75 70 73 29 29 0a 58 09 |ups, gro|ups)).X.|
|00005650| 09 09 09 70 65 72 72 6f | 72 20 28 6d 79 6e 61 6d |...perro|r (mynam|
|00005660| 65 29 3b 0a 58 09 09 7d | 0a 58 09 7d 0a 58 23 65 |e);.X..}|.X.}.X#e|
|00005670| 6e 64 69 66 0a 58 0a 58 | 09 2f 2a 0a 58 09 20 2a |ndif.X.X|./*.X. *|
|00005680| 20 74 68 69 73 20 69 73 | 20 77 68 65 72 65 20 61 | this is| where a|
|00005690| 6c 6c 20 66 61 69 6c 75 | 72 65 73 20 6c 61 6e 64 |ll failu|res land|
|000056a0| 2e 20 20 74 68 65 20 67 | 72 6f 75 70 20 69 64 20 |. the g|roup id |
|000056b0| 77 69 6c 6c 20 6e 6f 74 | 0a 58 09 20 2a 20 68 61 |will not|.X. * ha|
|000056c0| 76 65 20 62 65 65 6e 20 | 73 65 74 2c 20 73 6f 20 |ve been |set, so |
|000056d0| 74 68 65 20 73 65 74 67 | 69 64 28 29 20 62 65 6c |the setg|id() bel|
|000056e0| 6f 77 20 77 69 6c 6c 20 | 73 65 74 20 6d 65 20 74 |ow will |set me t|
|000056f0| 6f 20 74 68 65 0a 58 09 | 20 2a 20 6f 72 69 67 69 |o the.X.| * origi|
|00005700| 6e 61 6c 20 67 72 6f 75 | 70 20 69 64 20 69 20 68 |nal grou|p id i h|
|00005710| 61 64 20 77 68 65 6e 20 | 69 20 77 61 73 20 69 6e |ad when |i was in|
|00005720| 76 6f 6b 65 64 2e 0a 58 | 09 20 2a 2f 0a 58 0a 58 |voked..X|. */.X.X|
|00005730| 66 61 69 6c 75 72 65 3a | 0a 58 0a 58 09 2f 2a 0a |failure:|.X.X./*.|
|00005740| 58 09 20 2a 20 69 20 73 | 65 74 20 68 65 72 20 67 |X. * i s|et her g|
|00005750| 72 6f 75 70 20 69 64 20 | 65 69 74 68 65 72 20 74 |roup id |either t|
|00005760| 6f 20 74 68 65 20 76 61 | 6c 75 65 20 73 68 65 20 |o the va|lue she |
|00005770| 72 65 71 75 65 73 74 65 | 64 2c 20 6f 72 0a 58 09 |requeste|d, or.X.|
|00005780| 20 2a 20 74 6f 20 74 68 | 65 20 6f 72 69 67 69 6e | * to th|e origin|
|00005790| 61 6c 20 76 61 6c 75 65 | 2e 20 20 69 20 68 61 76 |al value|. i hav|
|000057a0| 65 20 74 6f 20 67 6f 20 | 62 61 63 6b 20 74 6f 20 |e to go |back to |
|000057b0| 74 68 65 20 6f 72 69 67 | 69 6e 61 6c 0a 58 09 20 |the orig|inal.X. |
|000057c0| 2a 20 62 65 20 73 68 65 | 20 6e 6f 20 6c 6f 6e 67 |* be she| no long|
|000057d0| 65 72 20 68 61 73 20 61 | 20 73 68 65 6c 6c 20 72 |er has a| shell r|
|000057e0| 75 6e 6e 69 6e 67 2e 0a | 58 09 20 2a 2f 0a 58 0a |unning..|X. */.X.|
|000057f0| 58 09 69 66 20 28 73 65 | 74 67 69 64 20 28 67 69 |X.if (se|tgid (gi|
|00005800| 64 29 29 0a 58 09 09 70 | 65 72 72 6f 72 20 28 22 |d)).X..p|error ("|
|00005810| 73 65 74 67 69 64 22 29 | 3b 0a 58 0a 58 09 69 66 |setgid")|;.X.X.if|
|00005820| 20 28 73 65 74 75 69 64 | 20 28 67 65 74 75 69 64 | (setuid| (getuid|
|00005830| 20 28 29 29 29 0a 58 09 | 09 70 65 72 72 6f 72 20 | ())).X.|.perror |
|00005840| 28 22 73 65 74 75 69 64 | 22 29 3b 0a 58 0a 58 09 |("setuid|");.X.X.|
|00005850| 2f 2a 0a 58 09 20 2a 20 | 69 20 68 61 76 65 20 74 |/*.X. * |i have t|
|00005860| 6f 20 67 65 74 20 74 68 | 65 20 70 61 74 68 6e 61 |o get th|e pathna|
|00005870| 6d 65 20 6f 66 20 68 65 | 72 20 6c 6f 67 69 6e 20 |me of he|r login |
|00005880| 73 68 65 6c 6c 2e 20 20 | 61 73 20 61 20 66 61 76 |shell. |as a fav|
|00005890| 6f 72 0a 58 09 20 2a 20 | 69 27 6c 6c 20 74 72 79 |or.X. * |i'll try|
|000058a0| 20 68 65 72 20 65 6e 76 | 69 72 6f 6e 6d 65 6e 74 | her env|ironment|
|000058b0| 20 66 6f 72 20 61 20 24 | 53 48 45 4c 4c 20 76 61 | for a $|SHELL va|
|000058c0| 6c 75 65 20 66 69 72 73 | 74 2c 20 61 6e 64 0a 58 |lue firs|t, and.X|
|000058d0| 09 20 2a 20 74 68 65 6e | 20 74 72 79 20 74 68 65 |. * then| try the|
|000058e0| 20 70 61 73 73 77 6f 72 | 64 20 66 69 6c 65 20 65 | passwor|d file e|
|000058f0| 6e 74 72 79 2e 0a 58 09 | 20 2a 2f 0a 58 0a 58 09 |ntry..X.| */.X.X.|
|00005900| 69 66 20 28 28 63 70 20 | 3d 20 67 65 74 65 6e 76 |if ((cp |= getenv|
|00005910| 20 28 22 53 48 45 4c 4c | 22 29 29 20 26 26 20 21 | ("SHELL|")) && !|
|00005920| 20 69 6e 69 74 66 6c 61 | 67 29 0a 58 09 09 73 74 | initfla|g).X..st|
|00005930| 72 6e 63 70 79 20 28 73 | 68 65 6c 6c 2c 20 63 70 |rncpy (s|hell, cp|
|00005940| 2c 20 73 69 7a 65 6f 66 | 20 73 68 65 6c 6c 29 3b |, sizeof| shell);|
|00005950| 0a 58 09 65 6c 73 65 20 | 69 66 20 28 70 77 64 2d |.X.else |if (pwd-|
|00005960| 3e 70 77 5f 73 68 65 6c | 6c 20 26 26 20 70 77 64 |>pw_shel|l && pwd|
|00005970| 2d 3e 70 77 5f 73 68 65 | 6c 6c 5b 30 5d 29 0a 58 |->pw_she|ll[0]).X|
|00005980| 09 09 73 74 72 6e 63 70 | 79 20 28 73 68 65 6c 6c |..strncp|y (shell|
|00005990| 2c 20 70 77 64 2d 3e 70 | 77 5f 73 68 65 6c 6c 2c |, pwd->p|w_shell,|
|000059a0| 20 73 69 7a 65 6f 66 20 | 73 68 65 6c 6c 29 3b 0a | sizeof |shell);.|
|000059b0| 58 09 65 6c 73 65 0a 58 | 09 09 73 74 72 63 70 79 |X.else.X|..strcpy|
|000059c0| 20 28 73 68 65 6c 6c 2c | 20 22 2f 62 69 6e 2f 73 | (shell,| "/bin/s|
|000059d0| 68 22 29 3b 0a 58 0a 58 | 09 2f 2a 0a 58 09 20 2a |h");.X.X|./*.X. *|
|000059e0| 20 6e 6f 77 20 69 20 74 | 72 79 20 74 6f 20 66 69 | now i t|ry to fi|
|000059f0| 6e 64 20 74 68 65 20 62 | 61 73 65 6e 61 6d 65 20 |nd the b|asename |
|00005a00| 6f 66 20 74 68 65 20 6c | 6f 67 69 6e 20 73 68 65 |of the l|ogin she|
|00005a10| 6c 6c 2e 20 20 74 68 69 | 73 0a 58 09 20 2a 20 77 |ll. thi|s.X. * w|
|00005a20| 69 6c 6c 20 62 65 63 6f | 6d 65 20 61 72 67 76 5b |ill beco|me argv[|
|00005a30| 30 5d 20 6f 66 20 74 68 | 65 20 73 70 61 77 6e 65 |0] of th|e spawne|
|00005a40| 64 20 63 6f 6d 6d 61 6e | 64 2e 0a 58 09 20 2a 2f |d comman|d..X. */|
|00005a50| 0a 58 0a 58 09 69 66 20 | 28 63 70 20 3d 20 73 74 |.X.X.if |(cp = st|
|00005a60| 72 72 63 68 72 20 28 73 | 68 65 6c 6c 2c 20 27 2f |rrchr (s|hell, '/|
|00005a70| 27 29 29 0a 58 09 09 63 | 70 2b 2b 3b 0a 58 09 65 |')).X..c|p++;.X.e|
|00005a80| 6c 73 65 0a 58 09 09 63 | 70 20 3d 20 73 68 65 6c |lse.X..c|p = shel|
|00005a90| 6c 3b 0a 58 0a 58 09 2f | 2a 0a 58 09 20 2a 20 74 |l;.X.X./|*.X. * t|
|00005aa0| 6f 20 68 61 76 65 20 74 | 68 65 20 73 68 65 6c 6c |o have t|he shell|
|00005ab0| 20 70 65 72 66 6f 72 6d | 20 6c 6f 67 69 6e 20 70 | perform| login p|
|00005ac0| 72 6f 63 65 73 73 69 6e | 67 20 69 20 77 69 6c 6c |rocessin|g i will|
|00005ad0| 20 73 65 74 20 74 68 65 | 0a 58 09 20 2a 20 66 69 | set the|.X. * fi|
|00005ae0| 72 73 74 20 63 68 61 72 | 61 63 74 65 72 20 69 6e |rst char|acter in|
|00005af0| 20 74 68 65 20 66 69 72 | 73 74 20 61 72 67 75 6d | the fir|st argum|
|00005b00| 65 6e 74 20 74 6f 20 61 | 20 22 2d 22 2e 0a 58 09 |ent to a| "-"..X.|
|00005b10| 20 2a 2f 0a 58 0a 58 09 | 69 66 20 28 69 6e 69 74 | */.X.X.|if (init|
|00005b20| 66 6c 61 67 29 0a 58 09 | 09 73 74 72 63 61 74 20 |flag).X.|.strcat |
|00005b30| 28 73 74 72 63 70 79 20 | 28 62 61 73 65 2c 20 22 |(strcpy |(base, "|
|00005b40| 2d 22 29 2c 20 63 70 29 | 3b 0a 58 09 65 6c 73 65 |-"), cp)|;.X.else|
|00005b50| 0a 58 09 09 73 74 72 63 | 70 79 20 28 62 61 73 65 |.X..strc|py (base|
|00005b60| 2c 20 63 70 29 3b 0a 58 | 0a 58 23 69 66 64 65 66 |, cp);.X|.X#ifdef|
|00005b70| 09 53 48 41 44 4f 57 50 | 57 44 0a 58 09 65 6e 64 |.SHADOWP|WD.X.end|
|00005b80| 73 70 65 6e 74 20 28 29 | 3b 0a 58 23 65 6e 64 69 |spent ()|;.X#endi|
|00005b90| 66 0a 58 09 65 6e 64 70 | 77 65 6e 74 20 28 29 3b |f.X.endp|went ();|
|00005ba0| 0a 58 09 65 6e 64 67 72 | 65 6e 74 20 28 29 3b 0a |.X.endgr|ent ();.|
|00005bb0| 58 0a 58 09 2f 2a 0a 58 | 09 20 2a 20 73 77 69 74 |X.X./*.X|. * swit|
|00005bc0| 63 68 20 62 61 63 6b 20 | 74 6f 20 68 65 72 20 68 |ch back |to her h|
|00005bd0| 6f 6d 65 20 64 69 72 65 | 63 74 6f 72 79 20 69 66 |ome dire|ctory if|
|00005be0| 20 69 20 61 6d 20 64 6f | 69 6e 67 20 6c 6f 67 69 | i am do|ing logi|
|00005bf0| 6e 0a 58 09 20 2a 20 69 | 6e 69 74 69 61 6c 69 7a |n.X. * i|nitializ|
|00005c00| 61 74 69 6f 6e 2e 0a 58 | 09 20 2a 2f 0a 58 0a 58 |ation..X|. */.X.X|
|00005c10| 09 69 66 20 28 69 6e 69 | 74 66 6c 61 67 29 0a 58 |.if (ini|tflag).X|
|00005c20| 09 09 63 68 64 69 72 20 | 28 70 77 64 2d 3e 70 77 |..chdir |(pwd->pw|
|00005c30| 5f 64 69 72 29 3b 0a 58 | 0a 58 09 2f 2a 0a 58 09 |_dir);.X|.X./*.X.|
|00005c40| 20 2a 20 65 78 65 63 20 | 74 68 65 20 6c 6f 67 69 | * exec |the logi|
|00005c50| 6e 20 73 68 65 6c 6c 20 | 61 6e 64 20 72 65 70 6f |n shell |and repo|
|00005c60| 72 74 20 61 6e 64 20 65 | 72 72 6f 72 20 69 66 20 |rt and e|rror if |
|00005c70| 74 68 65 20 65 78 65 63 | 0a 58 09 20 2a 20 66 61 |the exec|.X. * fa|
|00005c80| 69 6c 73 2e 20 20 6e 6f | 74 20 6d 75 63 68 20 69 |ils. no|t much i|
|00005c90| 20 63 61 6e 20 64 6f 20 | 61 66 74 65 72 20 74 68 | can do |after th|
|00005ca0| 61 74 20 2e 2e 2e 0a 58 | 09 20 2a 2f 0a 58 0a 58 |at ....X|. */.X.X|
|00005cb0| 09 65 78 65 63 6c 20 28 | 73 68 65 6c 6c 2c 20 62 |.execl (|shell, b|
|00005cc0| 61 73 65 2c 20 28 63 68 | 61 72 20 2a 29 20 30 29 |ase, (ch|ar *) 0)|
|00005cd0| 3b 0a 58 09 70 65 72 72 | 6f 72 20 28 73 68 65 6c |;.X.perr|or (shel|
|00005ce0| 6c 29 3b 0a 58 09 65 78 | 69 74 20 28 31 29 3b 0a |l);.X.ex|it (1);.|
|00005cf0| 58 7d 0a 53 48 41 52 5f | 45 4f 46 0a 69 66 20 74 |X}.SHAR_|EOF.if t|
|00005d00| 65 73 74 20 38 34 31 35 | 20 2d 6e 65 20 22 60 77 |est 8415| -ne "`w|
|00005d10| 63 20 2d 63 20 3c 20 27 | 6e 65 77 67 72 70 2e 63 |c -c < '|newgrp.c|
|00005d20| 27 60 22 0a 74 68 65 6e | 0a 09 65 63 68 6f 20 73 |'`".then|..echo s|
|00005d30| 68 61 72 3a 20 22 65 72 | 72 6f 72 20 74 72 61 6e |har: "er|ror tran|
|00005d40| 73 6d 69 74 74 69 6e 67 | 20 27 6e 65 77 67 72 70 |smitting| 'newgrp|
|00005d50| 2e 63 27 22 20 27 28 73 | 68 6f 75 6c 64 20 68 61 |.c'" '(s|hould ha|
|00005d60| 76 65 20 62 65 65 6e 20 | 38 34 31 35 20 63 68 61 |ve been |8415 cha|
|00005d70| 72 61 63 74 65 72 73 29 | 27 0a 66 69 0a 66 69 0a |racters)|'.fi.fi.|
|00005d80| 65 63 68 6f 20 73 68 61 | 72 3a 20 22 65 78 74 72 |echo sha|r: "extr|
|00005d90| 61 63 74 69 6e 67 20 27 | 4d 61 6b 65 66 69 6c 65 |acting '|Makefile|
|00005da0| 27 22 20 27 28 38 33 38 | 34 20 63 68 61 72 61 63 |'" '(838|4 charac|
|00005db0| 74 65 72 73 29 27 0a 69 | 66 20 74 65 73 74 20 2d |ters)'.i|f test -|
|00005dc0| 66 20 27 4d 61 6b 65 66 | 69 6c 65 27 0a 74 68 65 |f 'Makef|ile'.the|
|00005dd0| 6e 0a 09 65 63 68 6f 20 | 73 68 61 72 3a 20 22 77 |n..echo |shar: "w|
|00005de0| 69 6c 6c 20 6e 6f 74 20 | 6f 76 65 72 2d 77 72 69 |ill not |over-wri|
|00005df0| 74 65 20 65 78 69 73 74 | 69 6e 67 20 66 69 6c 65 |te exist|ing file|
|00005e00| 20 27 4d 61 6b 65 66 69 | 6c 65 27 22 0a 65 6c 73 | 'Makefi|le'".els|
|00005e10| 65 0a 73 65 64 20 27 73 | 2f 5e 58 2f 2f 27 20 3c |e.sed 's|/^X//' <|
|00005e20| 3c 20 5c 53 48 41 52 5f | 45 4f 46 20 3e 20 27 4d |< \SHAR_|EOF > 'M|
|00005e30| 61 6b 65 66 69 6c 65 27 | 0a 58 23 0a 58 23 20 43 |akefile'|.X#.X# C|
|00005e40| 6f 70 79 72 69 67 68 74 | 20 31 39 38 38 2c 31 39 |opyright| 1988,19|
|00005e50| 38 39 2c 31 39 39 30 2c | 20 4a 6f 68 6e 20 46 2e |89,1990,| John F.|
|00005e60| 20 48 61 75 67 68 20 49 | 49 0a 58 23 20 41 6c 6c | Haugh I|I.X# All|
|00005e70| 20 72 69 67 68 74 73 20 | 72 65 73 65 72 76 65 64 | rights |reserved|
|00005e80| 2e 0a 58 23 0a 58 23 20 | 4e 6f 6e 2d 63 6f 6d 6d |..X#.X# |Non-comm|
|00005e90| 65 72 63 69 61 6c 20 64 | 69 73 74 72 69 62 75 74 |ercial d|istribut|
|00005ea0| 69 6f 6e 20 70 65 72 6d | 69 74 74 65 64 2e 20 20 |ion perm|itted. |
|00005eb0| 59 6f 75 20 6d 75 73 74 | 20 70 72 6f 76 69 64 65 |You must| provide|
|00005ec0| 20 74 68 69 73 20 73 6f | 75 72 63 65 0a 58 23 20 | this so|urce.X# |
|00005ed0| 63 6f 64 65 20 69 6e 20 | 61 6e 79 20 64 69 73 74 |code in |any dist|
|00005ee0| 72 69 62 75 74 69 6f 6e | 2e 20 20 54 68 69 73 20 |ribution|. This |
|00005ef0| 6e 6f 74 69 63 65 20 6d | 75 73 74 20 72 65 6d 61 |notice m|ust rema|
|00005f00| 69 6e 20 69 6e 74 61 63 | 74 2e 0a 58 23 0a 58 23 |in intac|t..X#.X#|
|00005f10| 09 40 28 23 29 4d 61 6b | 65 66 69 6c 65 09 32 2e |.@(#)Mak|efile.2.|
|00005f20| 31 36 09 30 38 3a 34 31 | 3a 31 36 20 20 2d 20 53 |16.08:41|:16 - S|
|00005f30| 68 61 64 6f 77 20 70 61 | 73 73 77 6f 72 64 20 73 |hadow pa|ssword s|
|00005f40| 79 73 74 65 6d 0a 58 23 | 0a 58 23 09 40 28 23 29 |ystem.X#|.X#.@(#)|
|00005f50| 4d 61 6b 65 66 69 6c 65 | 09 32 2e 31 36 09 30 38 |Makefile|.2.16.08|
|00005f60| 3a 34 31 3a 31 36 09 31 | 31 2f 38 2f 39 30 0a 58 |:41:16.1|1/8/90.X|
|00005f70| 23 0a 58 53 48 45 4c 4c | 20 3d 20 2f 62 69 6e 2f |#.XSHELL| = /bin/|
|00005f80| 73 68 0a 58 0a 58 23 0a | 58 23 20 53 65 74 20 74 |sh.X.X#.|X# Set t|
|00005f90| 68 69 73 20 66 6c 61 67 | 20 74 6f 20 64 65 63 69 |his flag| to deci|
|00005fa0| 64 65 20 77 68 61 74 20 | 6c 65 76 65 6c 20 6f 66 |de what |level of|
|00005fb0| 20 63 6f 64 65 20 22 67 | 65 74 22 20 72 65 74 75 | code "g|et" retu|
|00005fc0| 72 6e 73 2e 0a 58 23 20 | 54 68 65 20 62 61 73 65 |rns..X# |The base|
|00005fd0| 20 55 53 45 4e 45 54 20 | 72 65 6c 65 61 73 65 20 | USENET |release |
|00005fe0| 77 61 73 20 72 65 6c 65 | 61 73 65 20 31 2e 20 20 |was rele|ase 1. |
|00005ff0| 49 74 20 69 73 20 6e 6f | 20 6c 6f 6e 67 65 72 20 |It is no| longer |
|00006000| 73 75 70 70 6f 72 74 65 | 64 2e 0a 58 23 20 54 68 |supporte|d..X# Th|
|00006010| 65 20 75 6e 72 65 6c 65 | 61 73 65 64 20 76 65 72 |e unrele|ased ver|
|00006020| 73 69 6f 6e 20 77 69 74 | 68 20 74 68 65 20 75 74 |sion wit|h the ut|
|00006030| 69 6c 69 74 69 65 73 20 | 61 64 64 65 64 20 69 73 |ilities |added is|
|00006040| 20 72 65 6c 65 61 73 65 | 20 32 2e 0a 58 52 45 4c | release| 2..XREL|
|00006050| 45 41 53 45 20 3d 20 32 | 0a 58 47 46 4c 41 47 53 |EASE = 2|.XGFLAGS|
|00006060| 20 3d 20 2d 74 20 2d 72 | 24 28 52 45 4c 45 41 53 | = -t -r|$(RELEAS|
|00006070| 45 29 0a 58 0a 58 23 20 | 44 65 66 69 6e 65 20 74 |E).X.X# |Define t|
|00006080| 68 65 20 64 69 72 65 63 | 74 6f 72 79 20 6c 6f 67 |he direc|tory log|
|00006090| 69 6e 20 69 73 20 63 6f | 70 69 65 64 20 74 6f 2e |in is co|pied to.|
|000060a0| 20 20 42 45 20 56 45 52 | 59 20 43 41 52 45 46 55 | BE VER|Y CAREFU|
|000060b0| 4c 21 21 21 0a 58 23 20 | 4c 4f 47 49 4e 44 49 52 |L!!!.X# |LOGINDIR|
|000060c0| 20 3d 20 2f 62 69 6e 0a | 58 4c 4f 47 49 4e 44 49 | = /bin.|XLOGINDI|
|000060d0| 52 20 3d 20 2f 65 74 63 | 0a 58 0a 58 23 20 50 69 |R = /etc|.X.X# Pi|
|000060e0| 63 6b 20 79 6f 75 72 20 | 66 61 76 6f 72 69 74 65 |ck your |favorite|
|000060f0| 20 43 20 63 6f 6d 70 69 | 6c 65 72 20 61 6e 64 20 | C compi|ler and |
|00006100| 74 61 67 73 20 63 6f 6d | 6d 61 6e 64 0a 58 43 43 |tags com|mand.XCC|
|00006110| 20 3d 20 63 63 0a 58 54 | 41 47 53 20 3d 20 63 74 | = cc.XT|AGS = ct|
|00006120| 61 67 73 0a 58 0a 58 23 | 20 4f 53 2e 20 20 43 75 |ags.X.X#| OS. Cu|
|00006130| 72 72 65 6e 74 6c 79 20 | 6f 6e 6c 79 20 42 53 44 |rrently |only BSD|
|00006140| 20 61 6e 64 20 55 53 47 | 20 61 72 65 20 64 65 66 | and USG| are def|
|00006150| 69 6e 65 64 2e 20 20 49 | 66 20 79 6f 75 20 64 6f |ined. I|f you do|
|00006160| 6e 27 74 20 75 73 65 20 | 42 53 44 2c 0a 58 23 20 |n't use |BSD,.X# |
|00006170| 55 53 47 20 28 53 79 73 | 74 65 6d 20 56 29 20 69 |USG (Sys|tem V) i|
|00006180| 73 20 61 73 73 75 6d 65 | 64 2e 0a 58 23 20 4f 53 |s assume|d..X# OS|
|00006190| 20 3d 20 2d 44 42 53 44 | 0a 58 0a 58 23 20 44 6f | = -DBSD|.X.X# Do|
|000061a0| 20 79 6f 75 20 68 61 76 | 65 20 74 6f 20 64 6f 20 | you hav|e to do |
|000061b0| 72 61 6e 6c 69 62 3f 20 | 20 53 6f 72 72 79 20 74 |ranlib? | Sorry t|
|000061c0| 6f 20 68 65 61 72 20 74 | 68 61 74 20 2e 2e 2e 0a |o hear t|hat ....|
|000061d0| 58 52 41 4e 4c 49 42 20 | 3d 20 72 61 6e 6c 69 62 |XRANLIB |= ranlib|
|000061e0| 0a 58 23 20 52 41 4e 4c | 49 42 20 3d 20 65 63 68 |.X# RANL|IB = ech|
|000061f0| 6f 0a 58 0a 58 23 20 46 | 6c 61 67 73 20 66 6f 72 |o.X.X# F|lags for|
|00006200| 20 53 43 4f 20 58 65 6e | 69 78 2f 33 38 36 0a 58 | SCO Xen|ix/386.X|
|00006210| 43 46 4c 41 47 53 20 3d | 20 2d 4f 20 2d 4d 33 20 |CFLAGS =| -O -M3 |
|00006220| 2d 67 20 24 28 50 57 44 | 45 46 29 20 24 28 41 4c |-g $(PWD|EF) $(AL|
|00006230| 36 34 44 45 46 29 20 24 | 28 4f 53 29 0a 58 4c 49 |64DEF) $|(OS).XLI|
|00006240| 42 53 20 3d 20 2d 6c 63 | 72 79 70 74 20 2d 6c 64 |BS = -lc|rypt -ld|
|00006250| 62 6d 0a 58 4c 44 46 4c | 41 47 53 20 3d 20 2d 4d |bm.XLDFL|AGS = -M|
|00006260| 33 20 2d 67 0a 58 4c 54 | 46 4c 41 47 53 20 3d 20 |3 -g.XLT|FLAGS = |
|00006270| 0a 58 23 20 54 68 69 73 | 20 73 68 6f 75 6c 64 20 |.X# This| should |
|00006280| 62 65 20 53 6c 69 62 73 | 65 63 2e 61 20 66 6f 72 |be Slibs|ec.a for|
|00006290| 20 73 6d 61 6c 6c 20 6d | 6f 64 65 6c 2c 20 6f 72 | small m|odel, or|
|000062a0| 20 4c 6c 69 62 73 65 63 | 2e 61 20 66 6f 72 0a 58 | Llibsec|.a for.X|
|000062b0| 23 20 6c 61 72 67 65 20 | 6d 6f 64 65 6c 20 6f 72 |# large |model or|
|000062c0| 20 77 68 61 74 65 76 65 | 72 2e 20 20 4d 55 53 54 | whateve|r. MUST|
|000062d0| 20 41 47 52 45 45 20 57 | 49 54 48 20 43 46 4c 41 | AGREE W|ITH CFLA|
|000062e0| 47 53 21 21 21 0a 58 4c | 49 42 53 45 43 20 3d 20 |GS!!!.XL|IBSEC = |
|000062f0| 53 6c 69 62 73 65 63 2e | 61 0a 58 0a 58 23 20 46 |Slibsec.|a.X.X# F|
|00006300| 6c 61 67 73 20 66 6f 72 | 20 6e 6f 72 6d 61 6c 20 |lags for| normal |
|00006310| 6d 61 63 68 69 6e 65 73 | 0a 58 23 20 43 46 4c 41 |machines|.X# CFLA|
|00006320| 47 53 20 3d 20 2d 4f 20 | 2d 67 20 24 28 50 57 44 |GS = -O |-g $(PWD|
|00006330| 45 46 29 20 24 28 41 4c | 36 34 44 45 46 29 20 24 |EF) $(AL|64DEF) $|
|00006340| 28 4f 53 29 0a 58 23 20 | 4c 49 42 53 20 3d 0a 58 |(OS).X# |LIBS =.X|
|00006350| 23 20 4c 44 46 4c 41 47 | 53 20 3d 20 2d 67 0a 58 |# LDFLAG|S = -g.X|
|00006360| 23 20 4c 49 42 53 45 43 | 20 3d 20 6c 69 62 73 65 |# LIBSEC| = libse|
|00006370| 63 2e 61 0a 58 0a 58 4c | 4f 42 4a 53 20 3d 20 6c |c.a.X.XL|OBJS = l|
|00006380| 6d 61 69 6e 2e 6f 20 6c | 6f 67 69 6e 2e 6f 20 65 |main.o l|ogin.o e|
|00006390| 6e 76 2e 6f 20 70 61 73 | 73 77 6f 72 64 2e 6f 20 |nv.o pas|sword.o |
|000063a0| 65 6e 74 72 79 2e 6f 20 | 76 61 6c 69 64 2e 6f 20 |entry.o |valid.o |
|000063b0| 73 65 74 75 70 2e 6f 20 | 73 68 65 6c 6c 2e 6f 20 |setup.o |shell.o |
|000063c0| 61 67 65 2e 6f 20 5c 0a | 58 09 70 77 65 6e 74 2e |age.o \.|X.pwent.|
|000063d0| 6f 20 75 74 6d 70 2e 6f | 20 73 75 62 2e 6f 20 6d |o utmp.o| sub.o m|
|000063e0| 61 69 6c 2e 6f 20 6d 6f | 74 64 2e 6f 20 6c 6f 67 |ail.o mo|td.o log|
|000063f0| 2e 6f 20 73 68 61 64 6f | 77 2e 6f 20 64 69 61 6c |.o shado|w.o dial|
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.