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: 1704
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 2e 20 48 61 75 | 67 68 20 49 49 29 0a 4e |n F. Hau|gh II).N|
|00000030| 65 77 73 67 72 6f 75 70 | 73 3a 20 61 6c 74 2e 73 |ewsgroup|s: alt.s|
|00000040| 6f 75 72 63 65 73 0a 53 | 75 62 6a 65 63 74 3a 20 |ources.S|ubject: |
|00000050| 63 68 61 67 65 3a 20 43 | 68 61 6e 67 65 20 70 61 |chage: C|hange pa|
|00000060| 73 73 77 6f 72 64 20 61 | 67 69 6e 67 20 66 69 65 |ssword a|ging fie|
|00000070| 6c 64 73 0a 4d 65 73 73 | 61 67 65 2d 49 44 3a 20 |lds.Mess|age-ID: |
|00000080| 3c 31 38 35 31 30 40 72 | 70 70 33 38 36 2e 63 61 |<18510@r|pp386.ca|
|00000090| 63 74 75 73 2e 6f 72 67 | 3e 0a 44 61 74 65 3a 20 |ctus.org|>.Date: |
|000000a0| 32 34 20 41 75 67 20 39 | 30 20 31 33 3a 33 34 3a |24 Aug 9|0 13:34:|
|000000b0| 30 39 20 47 4d 54 0a 0a | 54 68 69 73 20 69 73 20 |09 GMT..|This is |
|000000c0| 74 68 65 20 6d 6f 73 74 | 20 72 65 63 65 6e 74 20 |the most| recent |
|000000d0| 69 6e 20 61 20 6c 6f 6e | 67 20 73 74 72 69 6e 67 |in a lon|g string|
|000000e0| 20 6f 66 20 6c 6f 67 69 | 6e 20 61 6e 64 20 70 61 | of logi|n and pa|
|000000f0| 73 73 77 6f 72 64 20 61 | 6e 64 0a 73 6f 20 6f 6e |ssword a|nd.so on|
|00000100| 20 74 68 69 6e 67 73 20 | 74 6f 20 63 6f 6d 65 20 | things |to come |
|00000110| 6f 75 74 20 6f 66 20 68 | 65 72 65 2e 20 20 54 68 |out of h|ere. Th|
|00000120| 69 73 20 63 6f 6d 6d 61 | 6e 64 20 6b 6e 6f 77 73 |is comma|nd knows|
|00000130| 20 61 62 6f 75 74 20 73 | 74 61 6e 64 61 72 64 0a | about s|tandard.|
|00000140| 70 61 73 73 77 6f 72 64 | 20 66 69 6c 65 73 2c 20 |password| files, |
|00000150| 73 68 61 64 6f 77 20 66 | 69 6c 65 73 2c 20 61 6e |shadow f|iles, an|
|00000160| 64 20 44 42 4d 20 64 61 | 74 61 62 61 73 65 20 66 |d DBM da|tabase f|
|00000170| 69 6c 65 73 2e 0a 0a 54 | 68 65 20 70 75 72 70 6f |iles...T|he purpo|
|00000180| 73 65 20 6f 66 20 74 68 | 69 73 20 63 6f 6d 6d 61 |se of th|is comma|
|00000190| 6e 64 20 69 73 20 74 6f | 20 70 72 6f 76 69 64 65 |nd is to| provide|
|000001a0| 20 61 6e 20 69 6e 74 65 | 72 66 61 63 65 20 74 6f | an inte|rface to|
|000001b0| 20 74 68 65 0a 70 61 73 | 73 77 6f 72 64 20 65 78 | the.pas|sword ex|
|000001c0| 70 69 72 61 74 69 6f 6e | 20 69 6e 66 6f 72 6d 61 |piration| informa|
|000001d0| 74 69 6f 6e 20 77 69 74 | 68 6f 75 74 20 68 61 76 |tion wit|hout hav|
|000001e0| 69 6e 67 20 74 6f 20 61 | 73 6b 20 79 6f 75 72 73 |ing to a|sk yours|
|000001f0| 65 6c 66 20 77 68 61 74 | 0a 74 68 65 20 76 61 6c |elf what|.the val|
|00000200| 75 65 20 6f 66 20 22 4b | 22 20 69 73 2c 20 6f 72 |ue of "K|" is, or|
|00000210| 20 77 68 61 74 20 6c 65 | 74 74 65 72 20 64 6f 20 | what le|tter do |
|00000220| 79 6f 75 20 75 73 65 20 | 66 6f 72 20 31 33 3f 0a |you use |for 13?.|
|00000230| 0a 41 66 74 65 72 20 75 | 6e 73 68 61 72 69 6e 67 |.After u|nsharing|
|00000240| 20 79 6f 75 20 6e 65 65 | 64 20 74 6f 20 65 64 69 | you nee|d to edi|
|00000250| 74 20 63 6f 6e 66 69 67 | 2e 68 20 74 6f 20 72 65 |t config|.h to re|
|00000260| 66 6c 65 63 74 20 79 6f | 75 72 20 63 75 72 72 65 |flect yo|ur curre|
|00000270| 6e 74 0a 63 6f 6e 66 69 | 67 75 72 61 74 69 6f 6e |nt.confi|guration|
|00000280| 20 61 6e 64 20 74 68 65 | 6e 20 74 79 70 65 20 22 | and the|n type "|
|00000290| 6d 61 6b 65 20 63 68 61 | 67 65 22 2e 20 20 54 68 |make cha|ge". Th|
|000002a0| 65 72 65 20 69 73 20 65 | 76 65 6e 20 61 20 6d 61 |ere is e|ven a ma|
|000002b0| 6e 20 70 61 67 65 0a 66 | 6f 72 20 79 6f 75 72 20 |n page.f|or your |
|000002c0| 72 65 61 64 69 6e 67 20 | 70 6c 65 61 73 75 72 65 |reading |pleasure|
|000002d0| 2e 0a 0a 55 6e 73 68 61 | 72 20 61 6e 64 20 45 6e |...Unsha|r and En|
|000002e0| 6a 6f 79 21 0a 2d 2d 2d | 2d 2d 20 43 75 74 20 48 |joy!.---|-- Cut H|
|000002f0| 65 72 65 20 2d 2d 2d 2d | 2d 0a 23 21 20 2f 62 69 |ere ----|-.#! /bi|
|00000300| 6e 2f 73 68 0a 23 20 54 | 68 69 73 20 69 73 20 61 |n/sh.# T|his is a|
|00000310| 20 73 68 65 6c 6c 20 61 | 72 63 68 69 76 65 2c 20 | shell a|rchive, |
|00000320| 6d 65 61 6e 69 6e 67 3a | 0a 23 20 31 2e 20 52 65 |meaning:|.# 1. Re|
|00000330| 6d 6f 76 65 20 65 76 65 | 72 79 74 68 69 6e 67 20 |move eve|rything |
|00000340| 61 62 6f 76 65 20 74 68 | 65 20 23 21 20 2f 62 69 |above th|e #! /bi|
|00000350| 6e 2f 73 68 20 6c 69 6e | 65 2e 0a 23 20 32 2e 20 |n/sh lin|e..# 2. |
|00000360| 53 61 76 65 20 74 68 65 | 20 72 65 73 75 6c 74 69 |Save the| resulti|
|00000370| 6e 67 20 74 65 78 74 20 | 69 6e 20 61 20 66 69 6c |ng text |in a fil|
|00000380| 65 2e 0a 23 20 33 2e 20 | 45 78 65 63 75 74 65 20 |e..# 3. |Execute |
|00000390| 74 68 65 20 66 69 6c 65 | 20 77 69 74 68 20 2f 62 |the file| with /b|
|000003a0| 69 6e 2f 73 68 20 28 6e | 6f 74 20 63 73 68 29 20 |in/sh (n|ot csh) |
|000003b0| 74 6f 20 63 72 65 61 74 | 65 3a 0a 23 09 63 68 61 |to creat|e:.#.cha|
|000003c0| 67 65 2e 31 0a 23 09 4d | 61 6b 65 66 69 6c 65 0a |ge.1.#.M|akefile.|
|000003d0| 23 09 63 6f 6e 66 69 67 | 2e 68 0a 23 09 73 68 61 |#.config|.h.#.sha|
|000003e0| 64 6f 77 2e 68 0a 23 09 | 63 68 61 67 65 2e 63 0a |dow.h.#.|chage.c.|
|000003f0| 23 09 70 77 65 6e 74 2e | 63 0a 23 09 70 77 70 61 |#.pwent.|c.#.pwpa|
|00000400| 63 6b 2e 63 0a 23 09 61 | 67 65 2e 63 0a 23 09 73 |ck.c.#.a|ge.c.#.s|
|00000410| 68 61 64 6f 77 2e 63 0a | 23 20 54 68 69 73 20 61 |hadow.c.|# This a|
|00000420| 72 63 68 69 76 65 20 63 | 72 65 61 74 65 64 3a 20 |rchive c|reated: |
|00000430| 46 72 69 20 41 75 67 20 | 32 34 20 30 38 3a 32 32 |Fri Aug |24 08:22|
|00000440| 3a 30 36 20 31 39 39 30 | 0a 23 20 42 79 3a 09 4a |:06 1990|.# By:.J|
|00000450| 6f 68 6e 20 46 2e 20 48 | 61 75 67 68 20 49 49 20 |ohn F. H|augh II |
|00000460| 28 52 69 76 65 72 20 50 | 61 72 69 73 68 65 73 20 |(River P|arishes |
|00000470| 50 72 6f 67 72 61 6d 6d | 69 6e 67 2c 20 41 75 73 |Programm|ing, Aus|
|00000480| 74 69 6e 20 54 58 29 0a | 65 78 70 6f 72 74 20 50 |tin TX).|export P|
|00000490| 41 54 48 3b 20 50 41 54 | 48 3d 2f 62 69 6e 3a 2f |ATH; PAT|H=/bin:/|
|000004a0| 75 73 72 2f 62 69 6e 3a | 24 50 41 54 48 0a 65 63 |usr/bin:|$PATH.ec|
|000004b0| 68 6f 20 73 68 61 72 3a | 20 22 65 78 74 72 61 63 |ho shar:| "extrac|
|000004c0| 74 69 6e 67 20 27 63 68 | 61 67 65 2e 31 27 22 20 |ting 'ch|age.1'" |
|000004d0| 27 28 31 36 35 37 20 63 | 68 61 72 61 63 74 65 72 |'(1657 c|haracter|
|000004e0| 73 29 27 0a 69 66 20 74 | 65 73 74 20 2d 66 20 27 |s)'.if t|est -f '|
|000004f0| 63 68 61 67 65 2e 31 27 | 0a 74 68 65 6e 0a 09 65 |chage.1'|.then..e|
|00000500| 63 68 6f 20 73 68 61 72 | 3a 20 22 77 69 6c 6c 20 |cho shar|: "will |
|00000510| 6e 6f 74 20 6f 76 65 72 | 2d 77 72 69 74 65 20 65 |not over|-write e|
|00000520| 78 69 73 74 69 6e 67 20 | 66 69 6c 65 20 27 63 68 |xisting |file 'ch|
|00000530| 61 67 65 2e 31 27 22 0a | 65 6c 73 65 0a 73 65 64 |age.1'".|else.sed|
|00000540| 20 27 73 2f 5e 58 2f 2f | 27 20 3c 3c 20 5c 53 48 | 's/^X//|' << \SH|
|00000550| 41 52 5f 45 4f 46 20 3e | 20 27 63 68 61 67 65 2e |AR_EOF >| 'chage.|
|00000560| 31 27 0a 58 2e 54 48 20 | 43 48 41 47 45 20 31 0a |1'.X.TH |CHAGE 1.|
|00000570| 58 2e 53 48 20 4e 41 4d | 45 0a 58 63 68 61 67 65 |X.SH NAM|E.Xchage|
|00000580| 20 5c 2d 20 63 68 61 6e | 67 65 20 75 73 65 72 20 | \- chan|ge user |
|00000590| 70 61 73 73 77 6f 72 64 | 20 65 78 70 69 72 61 74 |password| expirat|
|000005a0| 65 20 69 6e 66 6f 72 6d | 61 74 69 6f 6e 0a 58 2e |e inform|ation.X.|
|000005b0| 53 48 20 53 59 4e 4f 50 | 53 49 53 0a 58 5c 66 42 |SH SYNOP|SIS.X\fB|
|000005c0| 63 68 61 67 65 5c 66 52 | 20 5b 20 5c 66 42 2d 6d |chage\fR| [ \fB-m|
|000005d0| 20 5c 66 49 6d 69 6e 64 | 61 79 73 5c 66 52 20 5d | \fImind|ays\fR ]|
|000005e0| 20 5b 20 5c 66 42 2d 4d | 20 5c 66 49 6d 61 78 64 | [ \fB-M| \fImaxd|
|000005f0| 61 79 73 5c 66 52 20 5d | 20 5b 20 5c 66 42 2d 64 |ays\fR ]| [ \fB-d|
|00000600| 20 5c 66 49 6c 61 73 74 | 64 61 79 5c 66 52 20 5d | \fIlast|day\fR ]|
|00000610| 20 5c 66 49 75 73 65 72 | 5c 66 52 0a 58 2e 53 48 | \fIuser|\fR.X.SH|
|00000620| 20 44 45 53 43 52 49 50 | 54 49 4f 4e 0a 58 5c 66 | DESCRIP|TION.X\f|
|00000630| 49 63 68 61 67 65 5c 66 | 20 63 68 61 6e 67 65 73 |Ichage\f| changes|
|00000640| 20 74 68 65 20 6e 75 6d | 62 65 72 20 6f 66 20 64 | the num|ber of d|
|00000650| 61 79 73 20 62 65 74 77 | 65 65 6e 20 70 61 73 73 |ays betw|een pass|
|00000660| 77 6f 72 64 20 63 68 61 | 6e 67 65 73 20 61 6e 64 |word cha|nges and|
|00000670| 20 74 68 65 0a 58 64 61 | 74 65 20 6f 66 20 74 68 | the.Xda|te of th|
|00000680| 65 20 6c 61 73 74 20 70 | 61 73 73 77 6f 72 64 20 |e last p|assword |
|00000690| 63 68 61 6e 67 65 2e 0a | 58 54 68 69 73 20 69 6e |change..|XThis in|
|000006a0| 66 6f 72 6d 61 74 69 6f | 6e 20 69 73 20 75 73 65 |formatio|n is use|
|000006b0| 64 20 62 79 20 74 68 65 | 20 73 79 73 74 65 6d 20 |d by the| system |
|000006c0| 74 6f 20 64 65 74 65 72 | 6d 69 6e 65 20 77 68 65 |to deter|mine whe|
|000006d0| 6e 20 61 20 75 73 65 72 | 20 6d 75 73 74 0a 58 63 |n a user| must.Xc|
|000006e0| 68 61 6e 67 65 20 74 68 | 65 69 72 20 70 61 73 73 |hange th|eir pass|
|000006f0| 77 6f 72 64 2e 0a 58 54 | 68 65 20 5c 66 49 63 68 |word..XT|he \fIch|
|00000700| 61 67 65 5c 66 20 63 6f | 6d 6d 61 6e 64 20 69 73 |age\f co|mmand is|
|00000710| 20 72 65 73 74 72 69 63 | 74 65 64 20 74 6f 20 74 | restric|ted to t|
|00000720| 68 65 20 72 6f 6f 74 20 | 75 73 65 72 2e 0a 58 2e |he root |user..X.|
|00000730| 50 50 0a 58 54 68 65 20 | 76 61 6c 75 65 20 6f 66 |PP.XThe |value of|
|00000740| 20 5c 66 49 6d 69 6e 64 | 61 79 73 5c 66 20 69 73 | \fImind|ays\f is|
|00000750| 20 74 68 65 20 6d 69 6e | 69 6d 75 6d 20 6e 75 6d | the min|imum num|
|00000760| 62 65 72 20 6f 66 20 64 | 61 79 73 20 62 65 74 77 |ber of d|ays betw|
|00000770| 65 65 6e 0a 58 70 61 73 | 73 77 6f 72 64 20 63 68 |een.Xpas|sword ch|
|00000780| 61 6e 67 65 73 2e 0a 58 | 41 20 76 61 6c 75 65 20 |anges..X|A value |
|00000790| 6f 66 20 7a 65 72 6f 20 | 66 6f 72 20 74 68 69 73 |of zero |for this|
|000007a0| 20 66 69 65 6c 64 20 69 | 6e 64 69 63 61 74 65 73 | field i|ndicates|
|000007b0| 20 74 68 61 74 20 74 68 | 65 20 75 73 65 72 20 6d | that th|e user m|
|000007c0| 61 79 20 63 68 61 6e 67 | 65 0a 58 68 65 72 20 70 |ay chang|e.Xher p|
|000007d0| 61 73 73 77 6f 72 64 20 | 61 74 20 61 6e 79 20 74 |assword |at any t|
|000007e0| 69 6d 65 2e 0a 58 2e 50 | 50 0a 58 54 68 65 20 76 |ime..X.P|P.XThe v|
|000007f0| 61 6c 75 65 20 6f 66 20 | 5c 66 49 6d 61 78 64 61 |alue of |\fImaxda|
|00000800| 79 73 5c 66 20 69 73 20 | 74 68 65 20 6d 61 78 69 |ys\f is |the maxi|
|00000810| 6d 75 6d 20 6e 75 6d 62 | 65 72 20 6f 66 20 64 61 |mum numb|er of da|
|00000820| 79 73 20 64 75 72 69 6e | 67 0a 58 77 68 69 63 68 |ys durin|g.Xwhich|
|00000830| 20 61 20 70 61 73 73 77 | 6f 72 64 20 69 73 20 76 | a passw|ord is v|
|00000840| 61 6c 69 64 2e 0a 58 57 | 68 65 6e 20 5c 66 49 6d |alid..XW|hen \fIm|
|00000850| 61 78 64 61 79 73 5c 66 | 20 70 6c 75 73 20 5c 66 |axdays\f| plus \f|
|00000860| 49 6c 61 73 74 64 61 79 | 5c 66 20 69 73 20 6c 65 |Ilastday|\f is le|
|00000870| 73 73 20 74 68 61 6e 20 | 74 68 65 20 63 75 72 72 |ss than |the curr|
|00000880| 65 6e 74 20 64 61 79 2c | 0a 58 74 68 65 20 75 73 |ent day,|.Xthe us|
|00000890| 65 72 20 77 69 6c 6c 20 | 62 65 20 72 65 71 75 69 |er will |be requi|
|000008a0| 72 65 64 20 74 6f 20 63 | 68 61 6e 67 65 20 68 65 |red to c|hange he|
|000008b0| 72 20 70 61 73 73 77 6f | 72 64 20 62 65 66 6f 72 |r passwo|rd befor|
|000008c0| 65 20 62 65 69 6e 67 0a | 58 61 62 6c 65 20 74 6f |e being.|Xable to|
|000008d0| 20 75 73 65 20 68 65 72 | 20 61 63 63 6f 75 6e 74 | use her| account|
|000008e0| 2e 0a 58 2e 50 50 0a 58 | 54 68 65 20 76 61 6c 75 |..X.PP.X|The valu|
|000008f0| 65 20 6f 66 20 5c 66 49 | 6c 61 73 74 64 61 79 5c |e of \fI|lastday\|
|00000900| 66 20 69 73 20 74 68 65 | 20 6e 75 6d 62 65 72 20 |f is the| number |
|00000910| 6f 66 20 64 61 79 73 20 | 73 69 6e 63 65 20 4a 61 |of days |since Ja|
|00000920| 6e 75 61 72 79 20 31 73 | 74 2c 0a 58 31 39 37 30 |nuary 1s|t,.X1970|
|00000930| 20 77 68 65 6e 20 74 68 | 65 20 70 61 73 73 77 6f | when th|e passwo|
|00000940| 72 64 20 77 61 73 20 6c | 61 73 74 20 63 68 61 6e |rd was l|ast chan|
|00000950| 67 65 64 2e 0a 58 2e 50 | 50 0a 58 41 6c 6c 20 6f |ged..X.P|P.XAll o|
|00000960| 66 20 74 68 65 20 61 62 | 6f 76 65 20 76 61 6c 75 |f the ab|ove valu|
|00000970| 65 73 20 61 72 65 20 73 | 74 6f 72 65 64 20 65 78 |es are s|tored ex|
|00000980| 61 63 74 6c 79 20 61 73 | 20 64 61 79 73 20 77 68 |actly as| days wh|
|00000990| 65 6e 20 74 68 65 20 73 | 68 61 64 6f 77 0a 58 70 |en the s|hadow.Xp|
|000009a0| 61 73 73 77 6f 72 64 20 | 66 69 6c 65 20 69 73 20 |assword |file is |
|000009b0| 75 73 65 64 2c 20 62 75 | 74 20 61 72 65 20 63 6f |used, bu|t are co|
|000009c0| 6e 76 65 72 74 65 64 20 | 74 6f 20 61 6e 64 20 66 |nverted |to and f|
|000009d0| 72 6f 6d 20 77 65 65 6b | 73 20 77 68 65 6e 20 74 |rom week|s when t|
|000009e0| 68 65 0a 58 73 74 61 6e | 64 61 72 64 20 70 61 73 |he.Xstan|dard pas|
|000009f0| 73 77 6f 72 64 20 66 69 | 6c 65 20 69 73 20 75 73 |sword fi|le is us|
|00000a00| 65 64 2e 0a 58 42 65 63 | 61 75 73 65 20 6f 66 20 |ed..XBec|ause of |
|00000a10| 74 68 69 73 20 63 6f 6e | 76 65 72 73 69 6f 6e 2c |this con|version,|
|00000a20| 20 72 6f 75 6e 64 69 6e | 67 20 65 72 72 6f 72 73 | roundin|g errors|
|00000a30| 20 6d 61 79 20 72 65 73 | 75 6c 74 2e 0a 58 2e 50 | may res|ult..X.P|
|00000a40| 50 0a 58 49 66 20 6e 6f | 6e 65 20 6f 66 20 74 68 |P.XIf no|ne of th|
|00000a50| 65 20 6f 70 74 69 6f 6e | 73 20 61 72 65 20 73 65 |e option|s are se|
|00000a60| 6c 65 63 74 65 64 2c 20 | 5c 66 49 63 68 61 67 65 |lected, |\fIchage|
|00000a70| 5c 66 20 6f 70 65 72 61 | 74 65 73 20 69 6e 20 61 |\f opera|tes in a|
|00000a80| 6e 20 69 6e 74 65 72 61 | 63 74 69 76 65 0a 58 66 |n intera|ctive.Xf|
|00000a90| 61 73 68 69 6f 6e 2c 20 | 70 72 6f 6d 70 74 69 6e |ashion, |promptin|
|00000aa0| 67 20 74 68 65 20 75 73 | 65 72 20 77 69 74 68 20 |g the us|er with |
|00000ab0| 74 68 65 20 63 75 72 72 | 65 6e 74 20 76 61 6c 75 |the curr|ent valu|
|00000ac0| 65 73 20 66 6f 72 20 61 | 6c 6c 20 6f 66 20 74 68 |es for a|ll of th|
|00000ad0| 65 20 66 69 65 6c 64 73 | 2e 0a 58 45 6e 74 65 72 |e fields|..XEnter|
|00000ae0| 20 74 68 65 20 6e 65 77 | 20 76 61 6c 75 65 20 74 | the new| value t|
|00000af0| 6f 20 63 68 61 6e 67 65 | 20 74 68 65 20 66 69 65 |o change| the fie|
|00000b00| 6c 64 2c 20 6f 72 20 6c | 65 61 76 65 20 74 68 65 |ld, or l|eave the|
|00000b10| 20 6c 69 6e 65 20 62 6c | 61 6e 6b 20 74 6f 20 75 | line bl|ank to u|
|00000b20| 73 65 0a 58 74 68 65 20 | 63 75 72 72 65 6e 74 20 |se.Xthe |current |
|00000b30| 76 61 6c 75 65 2e 0a 58 | 54 68 65 20 63 75 72 72 |value..X|The curr|
|00000b40| 65 6e 74 20 76 61 6c 75 | 65 20 69 73 20 64 69 73 |ent valu|e is dis|
|00000b50| 70 6c 61 79 65 64 20 62 | 65 74 77 65 65 6e 20 61 |played b|etween a|
|00000b60| 20 70 61 69 72 20 6f 66 | 20 5c 66 42 5b 20 5d 5c | pair of| \fB[ ]\|
|00000b70| 66 20 6d 61 72 6b 73 2e | 0a 58 2e 53 48 20 46 69 |f marks.|.X.SH Fi|
|00000b80| 6c 65 73 0a 58 2f 65 74 | 63 2f 70 61 73 73 77 64 |les.X/et|c/passwd|
|00000b90| 20 5c 2d 20 75 73 65 72 | 20 61 63 63 6f 75 6e 74 | \- user| account|
|00000ba0| 20 69 6e 66 6f 72 6d 61 | 74 69 6f 6e 0a 58 2e 62 | informa|tion.X.b|
|00000bb0| 72 0a 58 2f 65 74 63 2f | 73 68 61 64 6f 77 20 5c |r.X/etc/|shadow \|
|00000bc0| 2d 20 73 68 61 64 6f 77 | 20 75 73 65 72 20 61 63 |- shadow| user ac|
|00000bd0| 63 6f 75 6e 74 20 69 6e | 66 6f 72 6d 61 74 69 6f |count in|formatio|
|00000be0| 6e 0a 58 2e 53 48 20 53 | 65 65 20 41 6c 73 6f 0a |n.X.SH S|ee Also.|
|00000bf0| 58 70 61 73 73 77 64 28 | 34 29 2c 0a 58 73 68 61 |Xpasswd(|4),.Xsha|
|00000c00| 64 6f 77 28 34 29 0a 53 | 48 41 52 5f 45 4f 46 0a |dow(4).S|HAR_EOF.|
|00000c10| 69 66 20 74 65 73 74 20 | 31 36 35 37 20 2d 6e 65 |if test |1657 -ne|
|00000c20| 20 22 60 77 63 20 2d 63 | 20 3c 20 27 63 68 61 67 | "`wc -c| < 'chag|
|00000c30| 65 2e 31 27 60 22 0a 74 | 68 65 6e 0a 09 65 63 68 |e.1'`".t|hen..ech|
|00000c40| 6f 20 73 68 61 72 3a 20 | 22 65 72 72 6f 72 20 74 |o shar: |"error t|
|00000c50| 72 61 6e 73 6d 69 74 74 | 69 6e 67 20 27 63 68 61 |ransmitt|ing 'cha|
|00000c60| 67 65 2e 31 27 22 20 27 | 28 73 68 6f 75 6c 64 20 |ge.1'" '|(should |
|00000c70| 68 61 76 65 20 62 65 65 | 6e 20 31 36 35 37 20 63 |have bee|n 1657 c|
|00000c80| 68 61 72 61 63 74 65 72 | 73 29 27 0a 66 69 0a 66 |haracter|s)'.fi.f|
|00000c90| 69 0a 65 63 68 6f 20 73 | 68 61 72 3a 20 22 65 78 |i.echo s|har: "ex|
|00000ca0| 74 72 61 63 74 69 6e 67 | 20 27 4d 61 6b 65 66 69 |tracting| 'Makefi|
|00000cb0| 6c 65 27 22 20 27 28 38 | 31 31 39 20 63 68 61 72 |le'" '(8|119 char|
|00000cc0| 61 63 74 65 72 73 29 27 | 0a 69 66 20 74 65 73 74 |acters)'|.if test|
|00000cd0| 20 2d 66 20 27 4d 61 6b | 65 66 69 6c 65 27 0a 74 | -f 'Mak|efile'.t|
|00000ce0| 68 65 6e 0a 09 65 63 68 | 6f 20 73 68 61 72 3a 20 |hen..ech|o shar: |
|00000cf0| 22 77 69 6c 6c 20 6e 6f | 74 20 6f 76 65 72 2d 77 |"will no|t over-w|
|00000d00| 72 69 74 65 20 65 78 69 | 73 74 69 6e 67 20 66 69 |rite exi|sting fi|
|00000d10| 6c 65 20 27 4d 61 6b 65 | 66 69 6c 65 27 22 0a 65 |le 'Make|file'".e|
|00000d20| 6c 73 65 0a 73 65 64 20 | 27 73 2f 5e 58 2f 2f 27 |lse.sed |'s/^X//'|
|00000d30| 20 3c 3c 20 5c 53 48 41 | 52 5f 45 4f 46 20 3e 20 | << \SHA|R_EOF > |
|00000d40| 27 4d 61 6b 65 66 69 6c | 65 27 0a 58 23 0a 58 23 |'Makefil|e'.X#.X#|
|00000d50| 20 43 6f 70 79 72 69 67 | 68 74 20 31 39 38 38 2c | Copyrig|ht 1988,|
|00000d60| 31 39 38 39 2c 31 39 39 | 30 2c 20 4a 6f 68 6e 20 |1989,199|0, John |
|00000d70| 46 2e 20 48 61 75 67 68 | 20 49 49 0a 58 23 20 41 |F. Haugh| II.X# A|
|00000d80| 6c 6c 20 72 69 67 68 74 | 73 20 72 65 73 65 72 76 |ll right|s reserv|
|00000d90| 65 64 2e 0a 58 23 0a 58 | 23 20 4e 6f 6e 2d 63 6f |ed..X#.X|# Non-co|
|00000da0| 6d 6d 65 72 63 69 61 6c | 20 64 69 73 74 72 69 62 |mmercial| distrib|
|00000db0| 75 74 69 6f 6e 20 70 65 | 72 6d 69 74 74 65 64 2e |ution pe|rmitted.|
|00000dc0| 20 20 59 6f 75 20 6d 75 | 73 74 20 70 72 6f 76 69 | You mu|st provi|
|00000dd0| 64 65 20 74 68 69 73 20 | 73 6f 75 72 63 65 0a 58 |de this |source.X|
|00000de0| 23 20 63 6f 64 65 20 69 | 6e 20 61 6e 79 20 64 69 |# code i|n any di|
|00000df0| 73 74 72 69 62 75 74 69 | 6f 6e 2e 20 20 54 68 69 |stributi|on. Thi|
|00000e00| 73 20 6e 6f 74 69 63 65 | 20 6d 75 73 74 20 72 65 |s notice| must re|
|00000e10| 6d 61 69 6e 20 69 6e 74 | 61 63 74 2e 0a 58 23 0a |main int|act..X#.|
|00000e20| 58 23 09 40 28 23 29 4d | 61 6b 65 66 69 6c 65 09 |X#.@(#)M|akefile.|
|00000e30| 32 2e 31 35 09 30 39 3a | 34 33 3a 32 36 20 20 2d |2.15.09:|43:26 -|
|00000e40| 20 53 68 61 64 6f 77 20 | 70 61 73 73 77 6f 72 64 | Shadow |password|
|00000e50| 20 73 79 73 74 65 6d 0a | 58 23 0a 58 23 09 40 28 | system.|X#.X#.@(|
|00000e60| 23 29 4d 61 6b 65 66 69 | 6c 65 09 32 2e 31 35 09 |#)Makefi|le.2.15.|
|00000e70| 30 39 3a 34 33 3a 32 36 | 09 38 2f 32 33 2f 39 30 |09:43:26|.8/23/90|
|00000e80| 0a 58 23 0a 58 53 48 45 | 4c 4c 20 3d 20 2f 62 69 |.X#.XSHE|LL = /bi|
|00000e90| 6e 2f 73 68 0a 58 0a 58 | 23 20 44 65 66 69 6e 65 |n/sh.X.X|# Define|
|00000ea0| 20 74 68 65 20 64 69 72 | 65 63 74 6f 72 79 20 6c | the dir|ectory l|
|00000eb0| 6f 67 69 6e 20 69 73 20 | 63 6f 70 69 65 64 20 74 |ogin is |copied t|
|00000ec0| 6f 2e 20 20 42 45 20 56 | 45 52 59 20 43 41 52 45 |o. BE V|ERY CARE|
|00000ed0| 46 55 4c 21 21 21 0a 58 | 23 20 4c 4f 47 49 4e 44 |FUL!!!.X|# LOGIND|
|00000ee0| 49 52 20 3d 20 2f 62 69 | 6e 0a 58 4c 4f 47 49 4e |IR = /bi|n.XLOGIN|
|00000ef0| 44 49 52 20 3d 20 2f 65 | 74 63 0a 58 0a 58 23 20 |DIR = /e|tc.X.X# |
|00000f00| 50 69 63 6b 20 79 6f 75 | 72 20 66 61 76 6f 72 69 |Pick you|r favori|
|00000f10| 74 65 20 43 20 63 6f 6d | 70 69 6c 65 72 20 61 6e |te C com|piler an|
|00000f20| 64 20 74 61 67 73 20 63 | 6f 6d 6d 61 6e 64 0a 58 |d tags c|ommand.X|
|00000f30| 43 43 20 3d 20 63 63 0a | 58 54 41 47 53 20 3d 20 |CC = cc.|XTAGS = |
|00000f40| 63 74 61 67 73 0a 58 0a | 58 23 20 4f 53 2e 20 20 |ctags.X.|X# OS. |
|00000f50| 43 75 72 72 65 6e 74 6c | 79 20 6f 6e 6c 79 20 42 |Currentl|y only B|
|00000f60| 53 44 20 61 6e 64 20 55 | 53 47 20 61 72 65 20 64 |SD and U|SG are d|
|00000f70| 65 66 69 6e 65 64 2e 20 | 20 49 66 20 79 6f 75 20 |efined. | If you |
|00000f80| 64 6f 6e 27 74 20 75 73 | 65 20 42 53 44 2c 0a 58 |don't us|e BSD,.X|
|00000f90| 23 20 55 53 47 20 28 53 | 79 73 74 65 6d 20 56 29 |# USG (S|ystem V)|
|00000fa0| 20 69 73 20 61 73 73 75 | 6d 65 64 2e 0a 58 23 20 | is assu|med..X# |
|00000fb0| 4f 53 20 3d 20 2d 44 42 | 53 44 0a 58 0a 58 23 20 |OS = -DB|SD.X.X# |
|00000fc0| 44 6f 20 79 6f 75 20 68 | 61 76 65 20 74 6f 20 64 |Do you h|ave to d|
|00000fd0| 6f 20 72 61 6e 6c 69 62 | 3f 20 20 53 6f 72 72 79 |o ranlib|? Sorry|
|00000fe0| 20 74 6f 20 68 65 61 72 | 20 74 68 61 74 20 2e 2e | to hear| that ..|
|00000ff0| 2e 0a 58 52 41 4e 4c 49 | 42 20 3d 20 72 61 6e 6c |..XRANLI|B = ranl|
|00001000| 69 62 0a 58 23 20 52 41 | 4e 4c 49 42 20 3d 20 65 |ib.X# RA|NLIB = e|
|00001010| 63 68 6f 0a 58 0a 58 23 | 20 46 6c 61 67 73 20 66 |cho.X.X#| Flags f|
|00001020| 6f 72 20 53 43 4f 20 58 | 65 6e 69 78 2f 33 38 36 |or SCO X|enix/386|
|00001030| 0a 58 43 46 4c 41 47 53 | 20 3d 20 2d 4f 20 2d 4d |.XCFLAGS| = -O -M|
|00001040| 33 20 2d 67 20 24 28 50 | 57 44 45 46 29 20 24 28 |3 -g $(P|WDEF) $(|
|00001050| 41 4c 36 34 44 45 46 29 | 20 24 28 4f 53 29 0a 58 |AL64DEF)| $(OS).X|
|00001060| 4c 49 42 53 20 3d 20 2d | 6c 63 72 79 70 74 20 2d |LIBS = -|lcrypt -|
|00001070| 6c 64 62 6d 0a 58 4c 44 | 46 4c 41 47 53 20 3d 20 |ldbm.XLD|FLAGS = |
|00001080| 2d 4d 33 20 2d 67 0a 58 | 4c 54 46 4c 41 47 53 20 |-M3 -g.X|LTFLAGS |
|00001090| 3d 20 0a 58 23 20 54 68 | 69 73 20 73 68 6f 75 6c |= .X# Th|is shoul|
|000010a0| 64 20 62 65 20 53 6c 69 | 62 73 65 63 2e 61 20 66 |d be Sli|bsec.a f|
|000010b0| 6f 72 20 73 6d 61 6c 6c | 20 6d 6f 64 65 6c 2c 20 |or small| model, |
|000010c0| 6f 72 20 4c 6c 69 62 73 | 65 63 2e 61 20 66 6f 72 |or Llibs|ec.a for|
|000010d0| 0a 58 23 20 6c 61 72 67 | 65 20 6d 6f 64 65 6c 20 |.X# larg|e model |
|000010e0| 6f 72 20 77 68 61 74 65 | 76 65 72 2e 20 20 4d 55 |or whate|ver. MU|
|000010f0| 53 54 20 41 47 52 45 45 | 20 57 49 54 48 20 43 46 |ST AGREE| WITH CF|
|00001100| 4c 41 47 53 21 21 21 0a | 58 4c 49 42 53 45 43 20 |LAGS!!!.|XLIBSEC |
|00001110| 3d 20 53 6c 69 62 73 65 | 63 2e 61 0a 58 0a 58 23 |= Slibse|c.a.X.X#|
|00001120| 20 46 6c 61 67 73 20 66 | 6f 72 20 6e 6f 72 6d 61 | Flags f|or norma|
|00001130| 6c 20 6d 61 63 68 69 6e | 65 73 0a 58 23 20 43 46 |l machin|es.X# CF|
|00001140| 4c 41 47 53 20 3d 20 2d | 4f 20 2d 67 20 24 28 50 |LAGS = -|O -g $(P|
|00001150| 57 44 45 46 29 20 24 28 | 41 4c 36 34 44 45 46 29 |WDEF) $(|AL64DEF)|
|00001160| 20 24 28 4f 53 29 0a 58 | 23 20 4c 49 42 53 20 3d | $(OS).X|# LIBS =|
|00001170| 0a 58 23 20 4c 44 46 4c | 41 47 53 20 3d 20 2d 67 |.X# LDFL|AGS = -g|
|00001180| 0a 58 23 20 4c 49 42 53 | 45 43 20 3d 20 6c 69 62 |.X# LIBS|EC = lib|
|00001190| 73 65 63 2e 61 0a 58 0a | 58 4c 4f 42 4a 53 20 3d |sec.a.X.|XLOBJS =|
|000011a0| 20 6c 6d 61 69 6e 2e 6f | 20 6c 6f 67 69 6e 2e 6f | lmain.o| login.o|
|000011b0| 20 65 6e 76 2e 6f 20 70 | 61 73 73 77 6f 72 64 2e | env.o p|assword.|
|000011c0| 6f 20 65 6e 74 72 79 2e | 6f 20 76 61 6c 69 64 2e |o entry.|o valid.|
|000011d0| 6f 20 73 65 74 75 70 2e | 6f 20 73 68 65 6c 6c 2e |o setup.|o shell.|
|000011e0| 6f 20 61 67 65 2e 6f 20 | 5c 0a 58 09 70 77 65 6e |o age.o |\.X.pwen|
|000011f0| 74 2e 6f 20 75 74 6d 70 | 2e 6f 20 73 75 62 2e 6f |t.o utmp|.o sub.o|
|00001200| 20 6d 61 69 6c 2e 6f 20 | 6d 6f 74 64 2e 6f 20 6c | mail.o |motd.o l|
|00001210| 6f 67 2e 6f 20 73 68 61 | 64 6f 77 2e 6f 20 64 69 |og.o sha|dow.o di|
|00001220| 61 6c 75 70 2e 6f 20 64 | 69 61 6c 63 68 6b 2e 6f |alup.o d|ialchk.o|
|00001230| 20 5c 0a 58 09 74 74 79 | 74 79 70 65 2e 6f 20 66 | \.X.tty|type.o f|
|00001240| 61 69 6c 75 72 65 2e 6f | 20 70 6f 72 74 2e 6f 20 |ailure.o| port.o |
|00001250| 70 77 70 61 63 6b 2e 6f | 0a 58 0a 58 4c 53 52 43 |pwpack.o|.X.XLSRC|
|00001260| 53 20 3d 20 6c 6d 61 69 | 6e 2e 63 20 6c 6f 67 69 |S = lmai|n.c logi|
|00001270| 6e 2e 63 20 65 6e 76 2e | 63 20 70 61 73 73 77 6f |n.c env.|c passwo|
|00001280| 72 64 2e 63 20 65 6e 74 | 72 79 2e 63 20 76 61 6c |rd.c ent|ry.c val|
|00001290| 69 64 2e 63 20 73 65 74 | 75 70 2e 63 20 73 68 65 |id.c set|up.c she|
|000012a0| 6c 6c 2e 63 20 61 67 65 | 2e 63 20 5c 0a 58 09 70 |ll.c age|.c \.X.p|
|000012b0| 77 65 6e 74 2e 63 20 75 | 74 6d 70 2e 63 20 73 75 |went.c u|tmp.c su|
|000012c0| 62 2e 63 20 6d 61 69 6c | 2e 63 20 6d 6f 74 64 2e |b.c mail|.c motd.|
|000012d0| 63 20 6c 6f 67 2e 63 20 | 73 68 61 64 6f 77 2e 63 |c log.c |shadow.c|
|000012e0| 20 64 69 61 6c 75 70 2e | 63 20 64 69 61 6c 63 68 | dialup.|c dialch|
|000012f0| 6b 2e 63 20 5c 0a 58 09 | 74 74 79 74 79 70 65 2e |k.c \.X.|ttytype.|
|00001300| 63 20 66 61 69 6c 75 72 | 65 2e 63 20 70 6f 72 74 |c failur|e.c port|
|00001310| 2e 63 20 70 77 70 61 63 | 6b 2e 63 0a 58 0a 58 53 |.c pwpac|k.c.X.XS|
|00001320| 4f 42 4a 53 20 3d 20 73 | 6d 61 69 6e 2e 6f 20 65 |OBJS = s|main.o e|
|00001330| 6e 76 2e 6f 20 70 61 73 | 73 77 6f 72 64 2e 6f 20 |nv.o pas|sword.o |
|00001340| 65 6e 74 72 79 2e 6f 20 | 73 75 76 61 6c 69 64 2e |entry.o |suvalid.|
|00001350| 6f 20 73 75 73 65 74 75 | 70 2e 6f 20 73 75 73 68 |o susetu|p.o sush|
|00001360| 65 6c 6c 2e 6f 20 5c 0a | 58 09 70 77 65 6e 74 2e |ell.o \.|X.pwent.|
|00001370| 6f 20 73 75 73 75 62 2e | 6f 20 6d 61 69 6c 2e 6f |o susub.|o mail.o|
|00001380| 20 6d 6f 74 64 2e 6f 20 | 73 75 6c 6f 67 2e 6f 20 | motd.o |sulog.o |
|00001390| 73 68 61 64 6f 77 2e 6f | 20 73 75 61 67 65 2e 6f |shadow.o| suage.o|
|000013a0| 20 70 77 70 61 63 6b 2e | 6f 0a 58 0a 58 53 53 52 | pwpack.|o.X.XSSR|
|000013b0| 43 53 20 3d 20 73 6d 61 | 69 6e 2e 63 20 65 6e 76 |CS = sma|in.c env|
|000013c0| 2e 63 20 70 61 73 73 77 | 6f 72 64 2e 63 20 65 6e |.c passw|ord.c en|
|000013d0| 74 72 79 2e 63 20 76 61 | 6c 69 64 2e 63 20 73 65 |try.c va|lid.c se|
|000013e0| 74 75 70 2e 63 20 73 68 | 65 6c 6c 2e 63 20 5c 0a |tup.c sh|ell.c \.|
|000013f0| 58 09 70 77 65 6e 74 2e | 63 20 73 75 62 2e 63 20 |X.pwent.|c sub.c |
|00001400| 6d 61 69 6c 2e 63 20 6d | 6f 74 64 2e 63 20 73 75 |mail.c m|otd.c su|
|00001410| 6c 6f 67 2e 63 20 73 68 | 61 64 6f 77 2e 63 20 61 |log.c sh|adow.c a|
|00001420| 67 65 2e 63 20 70 77 70 | 61 63 6b 2e 63 0a 58 0a |ge.c pwp|ack.c.X.|
|00001430| 58 50 4f 42 4a 53 20 3d | 20 70 6d 61 69 6e 2e 6f |XPOBJS =| pmain.o|
|00001440| 20 70 61 73 73 77 6f 72 | 64 2e 6f 20 65 6e 74 72 | passwor|d.o entr|
|00001450| 79 2e 6f 20 76 61 6c 69 | 64 2e 6f 20 70 77 61 67 |y.o vali|d.o pwag|
|00001460| 65 2e 6f 20 70 77 65 6e | 74 2e 6f 20 6f 62 73 63 |e.o pwen|t.o obsc|
|00001470| 75 72 65 2e 6f 20 73 68 | 61 64 6f 77 2e 6f 20 5c |ure.o sh|adow.o \|
|00001480| 0a 58 09 70 77 70 61 63 | 6b 2e 6f 0a 58 0a 58 50 |.X.pwpac|k.o.X.XP|
|00001490| 53 52 43 53 20 3d 20 70 | 6d 61 69 6e 2e 63 20 70 |SRCS = p|main.c p|
|000014a0| 61 73 73 77 6f 72 64 2e | 63 20 65 6e 74 72 79 2e |assword.|c entry.|
|000014b0| 63 20 76 61 6c 69 64 2e | 63 20 61 67 65 2e 63 20 |c valid.|c age.c |
|000014c0| 70 77 65 6e 74 2e 63 20 | 6f 62 73 63 75 72 65 2e |pwent.c |obscure.|
|000014d0| 63 20 73 68 61 64 6f 77 | 2e 63 20 5c 0a 58 09 70 |c shadow|.c \.X.p|
|000014e0| 77 70 61 63 6b 2e 63 0a | 58 0a 58 47 50 53 52 43 |wpack.c.|X.XGPSRC|
|000014f0| 53 20 3d 20 67 70 6d 61 | 69 6e 2e 63 20 70 61 73 |S = gpma|in.c pas|
|00001500| 73 77 6f 72 64 2e 63 20 | 67 72 65 6e 74 2e 63 0a |sword.c |grent.c.|
|00001510| 58 0a 58 47 50 4f 42 4a | 53 20 3d 20 67 70 6d 61 |X.XGPOBJ|S = gpma|
|00001520| 69 6e 2e 6f 20 70 61 73 | 73 77 6f 72 64 2e 6f 20 |in.o pas|sword.o |
|00001530| 67 72 65 6e 74 2e 6f 0a | 58 0a 58 50 57 4f 42 4a |grent.o.|X.XPWOBJ|
|00001540| 53 20 3d 20 70 77 63 6f | 6e 76 2e 6f 20 70 77 65 |S = pwco|nv.o pwe|
|00001550| 6e 74 2e 6f 20 73 68 61 | 64 6f 77 2e 6f 20 70 77 |nt.o sha|dow.o pw|
|00001560| 61 67 65 2e 6f 20 70 77 | 70 61 63 6b 2e 6f 0a 58 |age.o pw|pack.o.X|
|00001570| 0a 58 50 57 53 52 43 53 | 20 3d 20 70 77 63 6f 6e |.XPWSRCS| = pwcon|
|00001580| 76 2e 63 20 70 77 65 6e | 74 2e 63 20 73 68 61 64 |v.c pwen|t.c shad|
|00001590| 6f 77 2e 63 20 61 67 65 | 2e 63 20 70 77 70 61 63 |ow.c age|.c pwpac|
|000015a0| 6b 2e 63 0a 58 0a 58 50 | 57 55 4e 4f 42 4a 53 20 |k.c.X.XP|WUNOBJS |
|000015b0| 3d 20 70 77 75 6e 63 6f | 6e 76 2e 6f 20 70 77 65 |= pwunco|nv.o pwe|
|000015c0| 6e 74 2e 6f 20 73 68 61 | 64 6f 77 2e 6f 20 70 77 |nt.o sha|dow.o pw|
|000015d0| 61 67 65 2e 6f 20 70 77 | 70 61 63 6b 2e 6f 0a 58 |age.o pw|pack.o.X|
|000015e0| 0a 58 50 57 55 4e 53 52 | 43 53 20 3d 20 70 77 75 |.XPWUNSR|CS = pwu|
|000015f0| 6e 63 6f 6e 76 2e 63 20 | 70 77 65 6e 74 2e 63 20 |nconv.c |pwent.c |
|00001600| 73 68 61 64 6f 77 2e 63 | 20 61 67 65 2e 63 20 70 |shadow.c| age.c p|
|00001610| 77 70 61 63 6b 2e 63 0a | 58 0a 58 53 55 4c 4f 47 |wpack.c.|X.XSULOG|
|00001620| 4f 42 4a 53 20 3d 20 73 | 75 6c 6f 67 69 6e 2e 6f |OBJS = s|ulogin.o|
|00001630| 20 65 6e 74 72 79 2e 6f | 20 65 6e 76 2e 6f 20 70 | entry.o| env.o p|
|00001640| 61 73 73 77 6f 72 64 2e | 6f 20 70 77 61 67 65 2e |assword.|o pwage.|
|00001650| 6f 20 70 77 65 6e 74 2e | 6f 20 73 65 74 75 70 2e |o pwent.|o setup.|
|00001660| 6f 20 5c 0a 58 09 73 68 | 61 64 6f 77 2e 6f 20 73 |o \.X.sh|adow.o s|
|00001670| 68 65 6c 6c 2e 6f 20 76 | 61 6c 69 64 2e 6f 20 70 |hell.o v|alid.o p|
|00001680| 77 70 61 63 6b 2e 6f 0a | 58 0a 58 53 55 4c 4f 47 |wpack.o.|X.XSULOG|
|00001690| 53 52 43 53 20 3d 20 73 | 75 6c 6f 67 69 6e 2e 63 |SRCS = s|ulogin.c|
|000016a0| 20 65 6e 74 72 79 2e 63 | 20 65 6e 76 2e 63 20 70 | entry.c| env.c p|
|000016b0| 61 73 73 77 6f 72 64 2e | 63 20 61 67 65 2e 63 20 |assword.|c age.c |
|000016c0| 70 77 65 6e 74 2e 63 20 | 73 65 74 75 70 2e 63 20 |pwent.c |setup.c |
|000016d0| 5c 0a 58 09 73 68 61 64 | 6f 77 2e 63 20 73 68 65 |\.X.shad|ow.c she|
|000016e0| 6c 6c 2e 63 20 76 61 6c | 69 64 2e 63 20 70 77 70 |ll.c val|id.c pwp|
|000016f0| 61 63 6b 2e 63 0a 58 0a | 58 44 42 4f 42 4a 53 20 |ack.c.X.|XDBOBJS |
|00001700| 3d 20 6d 6b 70 61 73 73 | 77 64 2e 6f 20 70 77 65 |= mkpass|wd.o pwe|
|00001710| 6e 74 2e 6f 20 70 77 70 | 61 63 6b 2e 6f 0a 58 0a |nt.o pwp|ack.o.X.|
|00001720| 58 44 42 53 52 43 53 20 | 3d 20 6d 6b 70 61 73 73 |XDBSRCS |= mkpass|
|00001730| 77 64 2e 63 20 70 77 65 | 6e 74 2e 63 20 70 77 70 |wd.c pwe|nt.c pwp|
|00001740| 61 63 6b 2e 63 0a 58 0a | 58 4e 47 53 52 43 53 20 |ack.c.X.|XNGSRCS |
|00001750| 3d 20 6e 65 77 67 72 70 | 2e 63 20 73 68 61 64 6f |= newgrp|.c shado|
|00001760| 77 2e 63 20 70 61 73 73 | 77 6f 72 64 2e 63 0a 58 |w.c pass|word.c.X|
|00001770| 0a 58 4e 47 4f 42 4a 53 | 20 3d 20 6e 65 77 67 72 |.XNGOBJS| = newgr|
|00001780| 70 2e 6f 20 73 68 61 64 | 6f 77 2e 6f 20 70 61 73 |p.o shad|ow.o pas|
|00001790| 73 77 6f 72 64 2e 6f 0a | 58 0a 58 43 48 46 4e 53 |sword.o.|X.XCHFNS|
|000017a0| 52 43 53 20 3d 20 63 68 | 66 6e 2e 63 20 70 77 65 |RCS = ch|fn.c pwe|
|000017b0| 6e 74 2e 63 20 70 77 70 | 61 63 6b 2e 63 0a 58 0a |nt.c pwp|ack.c.X.|
|000017c0| 58 43 48 46 4e 4f 42 4a | 53 20 3d 20 63 68 66 6e |XCHFNOBJ|S = chfn|
|000017d0| 2e 6f 20 70 77 65 6e 74 | 2e 6f 20 70 77 70 61 63 |.o pwent|.o pwpac|
|000017e0| 6b 2e 6f 0a 58 0a 58 43 | 48 53 48 53 52 43 53 20 |k.o.X.XC|HSHSRCS |
|000017f0| 3d 20 63 68 73 68 2e 63 | 20 70 77 65 6e 74 2e 63 |= chsh.c| pwent.c|
|00001800| 20 70 77 70 61 63 6b 2e | 63 0a 58 0a 58 43 48 53 | pwpack.|c.X.XCHS|
|00001810| 48 4f 42 4a 53 20 3d 20 | 63 68 73 68 2e 6f 20 70 |HOBJS = |chsh.o p|
|00001820| 77 65 6e 74 2e 6f 20 70 | 77 70 61 63 6b 2e 6f 0a |went.o p|wpack.o.|
|00001830| 58 0a 58 43 48 41 47 45 | 4f 42 4a 53 20 3d 20 63 |X.XCHAGE|OBJS = c|
|00001840| 68 61 67 65 2e 6f 20 70 | 77 65 6e 74 2e 6f 20 70 |hage.o p|went.o p|
|00001850| 77 70 61 63 6b 2e 6f 20 | 70 77 61 67 65 2e 6f 20 |wpack.o |pwage.o |
|00001860| 73 68 61 64 6f 77 2e 6f | 0a 58 0a 58 43 48 41 47 |shadow.o|.X.XCHAG|
|00001870| 45 53 52 43 53 20 3d 20 | 63 68 61 67 65 2e 63 20 |ESRCS = |chage.c |
|00001880| 70 77 65 6e 74 2e 63 20 | 70 77 70 61 63 6b 2e 63 |pwent.c |pwpack.c|
|00001890| 20 61 67 65 2e 63 20 73 | 68 61 64 6f 77 2e 63 0a | age.c s|hadow.c.|
|000018a0| 58 0a 58 41 4c 4c 53 52 | 43 53 20 3d 20 61 67 65 |X.XALLSR|CS = age|
|000018b0| 2e 63 20 64 69 61 6c 63 | 68 6b 2e 63 20 64 69 61 |.c dialc|hk.c dia|
|000018c0| 6c 75 70 2e 63 20 65 6e | 74 72 79 2e 63 20 65 6e |lup.c en|try.c en|
|000018d0| 76 2e 63 20 6c 6d 61 69 | 6e 2e 63 20 6c 6f 67 2e |v.c lmai|n.c log.|
|000018e0| 63 20 6c 6f 67 69 6e 2e | 63 20 6d 61 69 6c 2e 63 |c login.|c mail.c|
|000018f0| 20 5c 0a 58 09 6d 6f 74 | 64 2e 63 20 6f 62 73 63 | \.X.mot|d.c obsc|
|00001900| 75 72 65 2e 63 20 70 61 | 73 73 77 6f 72 64 2e 63 |ure.c pa|ssword.c|
|00001910| 20 70 6d 61 69 6e 2e 63 | 20 70 77 63 6f 6e 76 2e | pmain.c| pwconv.|
|00001920| 63 20 70 77 65 6e 74 2e | 63 20 70 77 75 6e 63 6f |c pwent.|c pwunco|
|00001930| 6e 76 2e 63 20 5c 0a 58 | 09 73 65 74 75 70 2e 63 |nv.c \.X|.setup.c|
|00001940| 20 73 68 61 64 6f 77 2e | 63 20 73 68 65 6c 6c 2e | shadow.|c shell.|
|00001950| 63 20 73 6d 61 69 6e 2e | 63 20 73 75 62 2e 63 20 |c smain.|c sub.c |
|00001960| 73 75 6c 6f 67 2e 63 20 | 73 75 6c 6f 67 69 6e 2e |sulog.c |sulogin.|
|00001970| 63 20 74 74 79 74 79 70 | 65 2e 63 20 5c 0a 58 09 |c ttytyp|e.c \.X.|
|00001980| 75 74 6d 70 2e 63 20 76 | 61 6c 69 64 2e 63 20 70 |utmp.c v|alid.c p|
|00001990| 6f 72 74 2e 63 20 6e 65 | 77 67 72 70 2e 63 20 67 |ort.c ne|wgrp.c g|
|000019a0| 70 6d 61 69 6e 2e 63 20 | 67 72 65 6e 74 2e 63 20 |pmain.c |grent.c |
|000019b0| 6d 6b 70 61 73 73 77 64 | 2e 63 20 70 77 70 61 63 |mkpasswd|.c pwpac|
|000019c0| 6b 2e 63 20 5c 0a 58 09 | 63 68 66 6e 2e 63 20 63 |k.c \.X.|chfn.c c|
|000019d0| 68 73 68 2e 63 20 63 68 | 61 67 65 2e 63 0a 58 0a |hsh.c ch|age.c.X.|
|000019e0| 58 46 49 4c 45 53 31 20 | 3d 20 52 45 41 44 4d 45 |XFILES1 |= README|
|000019f0| 20 6e 65 77 67 72 70 2e | 63 20 4d 61 6b 65 66 69 | newgrp.|c Makefi|
|00001a00| 6c 65 20 63 6f 6e 66 69 | 67 2e 68 20 70 77 75 6e |le confi|g.h pwun|
|00001a10| 63 6f 6e 76 2e 63 20 6f | 62 73 63 75 72 65 2e 63 |conv.c o|bscure.c|
|00001a20| 20 61 67 65 2e 63 20 5c | 0a 58 09 73 75 62 2e 63 | age.c \|.X.sub.c|
|00001a30| 20 6c 6f 67 69 6e 2e 63 | 20 73 68 65 6c 6c 2e 63 | login.c| shell.c|
|00001a40| 20 6c 61 73 74 6c 6f 67 | 2e 68 0a 58 0a 58 46 49 | lastlog|.h.X.XFI|
|00001a50| 4c 45 53 32 20 3d 20 70 | 6d 61 69 6e 2e 63 20 70 |LES2 = p|main.c p|
|00001a60| 6f 72 74 2e 63 20 6c 6d | 61 69 6e 2e 63 20 6d 6b |ort.c lm|ain.c mk|
|00001a70| 70 61 73 73 77 64 2e 63 | 20 73 75 6c 6f 67 69 6e |passwd.c| sulogin|
|00001a80| 2e 63 20 70 77 70 61 63 | 6b 2e 63 20 64 69 61 6c |.c pwpac|k.c dial|
|00001a90| 75 70 2e 63 20 5c 0a 58 | 09 73 75 6c 6f 67 2e 63 |up.c \.X|.sulog.c|
|00001aa0| 20 70 61 73 73 77 6f 72 | 64 2e 63 20 65 6e 76 2e | passwor|d.c env.|
|00001ab0| 63 20 6d 61 69 6c 2e 63 | 20 64 69 61 6c 63 68 6b |c mail.c| dialchk|
|00001ac0| 2e 63 0a 58 0a 58 46 49 | 4c 45 53 33 20 3d 20 63 |.c.X.XFI|LES3 = c|
|00001ad0| 68 66 6e 2e 63 20 63 68 | 73 68 2e 63 20 73 6d 61 |hfn.c ch|sh.c sma|
|00001ae0| 69 6e 2e 63 20 66 61 69 | 6c 6c 6f 67 2e 63 20 70 |in.c fai|llog.c p|
|00001af0| 77 63 6f 6e 76 2e 63 20 | 66 61 69 6c 75 72 65 2e |wconv.c |failure.|
|00001b00| 63 20 75 74 6d 70 2e 63 | 20 73 68 61 64 6f 77 2e |c utmp.c| shadow.|
|00001b10| 63 20 5c 0a 58 09 6c 6f | 67 2e 63 20 73 68 61 64 |c \.X.lo|g.c shad|
|00001b20| 6f 77 2e 68 20 66 61 69 | 6c 6c 6f 67 2e 68 0a 58 |ow.h fai|llog.h.X|
|00001b30| 0a 58 46 49 4c 45 53 34 | 20 3d 20 67 70 6d 61 69 |.XFILES4| = gpmai|
|00001b40| 6e 2e 63 20 63 68 61 67 | 65 2e 63 20 70 77 65 6e |n.c chag|e.c pwen|
|00001b50| 74 2e 63 20 76 61 6c 69 | 64 2e 63 20 73 65 74 75 |t.c vali|d.c setu|
|00001b60| 70 2e 63 20 65 6e 74 72 | 79 2e 63 20 74 74 79 74 |p.c entr|y.c ttyt|
|00001b70| 79 70 65 2e 63 20 70 6f | 72 74 2e 68 20 5c 0a 58 |ype.c po|rt.h \.X|
|00001b80| 09 67 72 65 6e 74 2e 63 | 20 6d 6f 74 64 2e 63 20 |.grent.c| motd.c |
|00001b90| 64 69 61 6c 75 70 2e 68 | 0a 58 0a 58 4d 41 4e 5f |dialup.h|.X.XMAN_|
|00001ba0| 31 20 3d 20 63 68 61 67 | 65 2e 31 20 63 68 66 6e |1 = chag|e.1 chfn|
|00001bb0| 2e 31 20 63 68 73 68 2e | 31 20 6c 6f 67 69 6e 2e |.1 chsh.|1 login.|
|00001bc0| 31 20 70 61 73 73 77 64 | 2e 31 20 73 75 2e 31 0a |1 passwd|.1 su.1.|
|00001bd0| 58 4d 41 4e 5f 33 20 3d | 20 73 68 61 64 6f 77 2e |XMAN_3 =| shadow.|
|00001be0| 33 0a 58 4d 41 4e 5f 34 | 20 3d 20 66 61 69 6c 6c |3.XMAN_4| = faill|
|00001bf0| 6f 67 2e 34 20 70 61 73 | 73 77 64 2e 34 20 70 6f |og.4 pas|swd.4 po|
|00001c00| 72 74 74 69 6d 65 2e 34 | 20 73 68 61 64 6f 77 2e |rttime.4| shadow.|
|00001c10| 34 0a 58 4d 41 4e 5f 38 | 20 3d 20 66 61 69 6c 6c |4.XMAN_8| = faill|
|00001c20| 6f 67 2e 38 20 70 77 63 | 6f 6e 76 2e 38 20 70 77 |og.8 pwc|onv.8 pw|
|00001c30| 75 6e 63 6f 6e 76 2e 38 | 20 73 75 6c 6f 67 69 6e |unconv.8| sulogin|
|00001c40| 2e 38 0a 58 0a 58 44 4f | 43 53 20 3d 20 24 28 4d |.8.X.XDO|CS = $(M|
|00001c50| 41 4e 5f 31 29 20 24 28 | 4d 41 4e 5f 33 29 20 24 |AN_1) $(|MAN_3) $|
|00001c60| 28 4d 41 4e 5f 34 29 20 | 24 28 4d 41 4e 5f 38 29 |(MAN_4) |$(MAN_8)|
|00001c70| 0a 58 0a 58 42 49 4e 53 | 20 3d 20 73 75 20 6c 6f |.X.XBINS| = su lo|
|00001c80| 67 69 6e 20 70 77 63 6f | 6e 76 20 70 77 75 6e 63 |gin pwco|nv pwunc|
|00001c90| 6f 6e 76 20 70 61 73 73 | 77 64 20 73 75 6c 6f 67 |onv pass|wd sulog|
|00001ca0| 69 6e 20 66 61 69 6c 6c | 6f 67 20 6e 65 77 67 72 |in faill|og newgr|
|00001cb0| 70 20 67 70 61 73 73 77 | 64 20 5c 0a 58 09 6d 6b |p gpassw|d \.X.mk|
|00001cc0| 70 61 73 73 77 64 20 63 | 68 66 6e 20 63 68 73 68 |passwd c|hfn chsh|
|00001cd0| 20 63 68 61 67 65 0a 58 | 0a 58 61 6c 6c 3a 09 24 | chage.X|.Xall:.$|
|00001ce0| 28 42 49 4e 53 29 20 24 | 28 44 4f 43 53 29 0a 58 |(BINS) $|(DOCS).X|
|00001cf0| 0a 58 6c 69 62 73 65 63 | 3a 20 73 68 61 64 6f 77 |.Xlibsec|: shadow|
|00001d00| 2e 6f 0a 58 09 61 72 20 | 72 76 20 24 28 4c 49 42 |.o.X.ar |rv $(LIB|
|00001d10| 53 45 43 29 20 73 68 61 | 64 6f 77 2e 6f 0a 58 09 |SEC) sha|dow.o.X.|
|00001d20| 24 28 52 41 4e 4c 49 42 | 29 20 24 28 4c 49 42 53 |$(RANLIB|) $(LIBS|
|00001d30| 45 43 29 0a 58 0a 58 69 | 6e 73 74 61 6c 6c 3a 20 |EC).X.Xi|nstall: |
|00001d40| 61 6c 6c 0a 58 09 73 74 | 72 69 70 20 24 28 42 49 |all.X.st|rip $(BI|
|00001d50| 4e 53 29 0a 58 09 63 70 | 20 6c 6f 67 69 6e 20 24 |NS).X.cp| login $|
|00001d60| 28 4c 4f 47 49 4e 44 49 | 52 29 2f 6c 6f 67 69 6e |(LOGINDI|R)/login|
|00001d70| 0a 58 09 63 70 20 6d 6b | 70 61 73 73 77 64 20 70 |.X.cp mk|passwd p|
|00001d80| 77 63 6f 6e 76 20 70 77 | 75 6e 63 6f 6e 76 20 73 |wconv pw|unconv s|
|00001d90| 75 6c 6f 67 69 6e 20 2f | 65 74 63 0a 58 09 63 70 |ulogin /|etc.X.cp|
|00001da0| 20 73 75 20 70 61 73 73 | 77 64 20 67 70 61 73 73 | su pass|wd gpass|
|00001db0| 77 64 20 66 61 69 6c 6c | 6f 67 20 6e 65 77 67 72 |wd faill|og newgr|
|00001dc0| 70 20 63 68 66 6e 20 63 | 68 73 68 20 2f 62 69 6e |p chfn c|hsh /bin|
|00001dd0| 0a 58 09 63 70 20 73 68 | 61 64 6f 77 2e 68 20 2f |.X.cp sh|adow.h /|
|00001de0| 75 73 72 2f 69 6e 63 6c | 75 64 65 0a 58 09 63 68 |usr/incl|ude.X.ch|
|00001df0| 6f 77 6e 20 72 6f 6f 74 | 20 24 28 4c 4f 47 49 4e |own root| $(LOGIN|
|00001e00| 44 49 52 29 2f 6c 6f 67 | 69 6e 20 2f 65 74 63 2f |DIR)/log|in /etc/|
|00001e10| 70 77 63 6f 6e 76 20 2f | 65 74 63 2f 70 77 75 6e |pwconv /|etc/pwun|
|00001e20| 63 6f 6e 76 20 2f 65 74 | 63 2f 73 75 6c 6f 67 69 |conv /et|c/sulogi|
|00001e30| 6e 20 5c 0a 58 09 09 2f | 62 69 6e 2f 73 75 20 2f |n \.X../|bin/su /|
|00001e40| 62 69 6e 2f 70 61 73 73 | 77 64 20 2f 62 69 6e 2f |bin/pass|wd /bin/|
|00001e50| 67 70 61 73 73 77 64 20 | 2f 62 69 6e 2f 6e 65 77 |gpasswd |/bin/new|
|00001e60| 67 72 70 20 2f 65 74 63 | 2f 6d 6b 70 61 73 73 77 |grp /etc|/mkpassw|
|00001e70| 64 0a 58 09 63 68 67 72 | 70 20 72 6f 6f 74 20 24 |d.X.chgr|p root $|
|00001e80| 28 4c 4f 47 49 4e 44 49 | 52 29 2f 6c 6f 67 69 6e |(LOGINDI|R)/login|
|00001e90| 20 2f 65 74 63 2f 70 77 | 63 6f 6e 76 20 2f 65 74 | /etc/pw|conv /et|
|00001ea0| 63 2f 70 77 75 6e 63 6f | 6e 76 20 2f 65 74 63 2f |c/pwunco|nv /etc/|
|00001eb0| 73 75 6c 6f 67 69 6e 20 | 5c 0a 58 09 09 2f 62 69 |sulogin |\.X../bi|
|00001ec0| 6e 2f 73 75 20 2f 62 69 | 6e 2f 70 61 73 73 77 64 |n/su /bi|n/passwd|
|00001ed0| 20 2f 62 69 6e 2f 67 70 | 61 73 73 77 64 20 2f 62 | /bin/gp|asswd /b|
|00001ee0| 69 6e 2f 6e 65 77 67 72 | 70 20 2f 65 74 63 2f 6d |in/newgr|p /etc/m|
|00001ef0| 6b 70 61 73 73 77 64 0a | 58 09 63 68 6f 77 6e 20 |kpasswd.|X.chown |
|00001f00| 62 69 6e 20 2f 62 69 6e | 2f 66 61 69 6c 6c 6f 67 |bin /bin|/faillog|
|00001f10| 20 2f 75 73 72 2f 69 6e | 63 6c 75 64 65 2f 73 68 | /usr/in|clude/sh|
|00001f20| 61 64 6f 77 2e 68 0a 58 | 09 63 68 67 72 70 20 62 |adow.h.X|.chgrp b|
|00001f30| 69 6e 20 2f 62 69 6e 2f | 66 61 69 6c 6c 6f 67 20 |in /bin/|faillog |
|00001f40| 2f 75 73 72 2f 69 6e 63 | 6c 75 64 65 2f 73 68 61 |/usr/inc|lude/sha|
|00001f50| 64 6f 77 2e 68 0a 58 09 | 63 68 6d 6f 64 20 37 30 |dow.h.X.|chmod 70|
|00001f60| 30 20 2f 65 74 63 2f 70 | 77 63 6f 6e 76 20 2f 65 |0 /etc/p|wconv /e|
|00001f70| 74 63 2f 70 77 75 6e 63 | 6f 6e 76 20 2f 65 74 63 |tc/pwunc|onv /etc|
|00001f80| 2f 73 75 6c 6f 67 69 6e | 20 2f 65 74 63 2f 6d 6b |/sulogin| /etc/mk|
|00001f90| 70 61 73 73 77 64 0a 58 | 09 63 68 6d 6f 64 20 34 |passwd.X|.chmod 4|
|00001fa0| 37 31 31 20 24 28 4c 4f | 47 49 4e 44 49 52 29 2f |711 $(LO|GINDIR)/|
|00001fb0| 6c 6f 67 69 6e 20 2f 62 | 69 6e 2f 73 75 20 2f 62 |login /b|in/su /b|
|00001fc0| 69 6e 2f 70 61 73 73 77 | 64 20 2f 62 69 6e 2f 67 |in/passw|d /bin/g|
|00001fd0| 70 61 73 73 77 64 20 5c | 0a 58 09 09 2f 62 69 6e |passwd \|.X../bin|
|00001fe0| 2f 6e 65 77 67 72 70 20 | 2f 62 69 6e 2f 63 68 66 |/newgrp |/bin/chf|
|00001ff0| 6e 0a 58 09 63 68 6d 6f | 64 20 37 31 31 20 2f 62 |n.X.chmo|d 711 /b|
|00002000| 69 6e 2f 66 61 69 6c 6c | 6f 67 0a 58 09 63 68 6d |in/faill|og.X.chm|
|00002010| 6f 64 20 34 34 34 20 2f | 75 73 72 2f 69 6e 63 6c |od 444 /|usr/incl|
|00002020| 75 64 65 2f 73 68 61 64 | 6f 77 2e 68 0a 58 0a 58 |ude/shad|ow.h.X.X|
|00002030| 6c 69 6e 74 3a 09 73 75 | 2e 4c 20 6c 6f 67 69 6e |lint:.su|.L login|
|00002040| 2e 4c 20 70 77 63 6f 6e | 76 2e 4c 20 70 77 75 6e |.L pwcon|v.L pwun|
|00002050| 63 6f 6e 76 2e 4c 20 70 | 61 73 73 77 64 2e 4c 20 |conv.L p|asswd.L |
|00002060| 73 75 6c 6f 67 69 6e 2e | 4c 20 66 61 69 6c 6c 6f |sulogin.|L faillo|
|00002070| 67 2e 4c 20 5c 0a 58 09 | 6e 65 77 67 72 70 2e 4c |g.L \.X.|newgrp.L|
|00002080| 20 67 70 61 73 73 77 64 | 2e 4c 20 6d 6b 70 61 73 | gpasswd|.L mkpas|
|00002090| 73 77 64 2e 4c 20 63 68 | 66 6e 2e 4c 20 63 68 73 |swd.L ch|fn.L chs|
|000020a0| 68 2e 4c 20 63 68 61 67 | 65 2e 4c 0a 58 0a 58 74 |h.L chag|e.L.X.Xt|
|000020b0| 61 67 73 3a 09 24 28 41 | 4c 4c 53 52 43 53 29 0a |ags:.$(A|LLSRCS).|
|000020c0| 58 09 24 28 54 41 47 53 | 29 20 24 28 41 4c 4c 53 |X.$(TAGS|) $(ALLS|
|000020d0| 52 43 53 29 0a 58 0a 58 | 52 45 41 44 4d 45 3a 09 |RCS).X.X|README:.|
|000020e0| 73 2e 52 45 41 44 4d 45 | 0a 58 09 67 65 74 20 73 |s.README|.X.get s|
|000020f0| 2e 52 45 41 44 4d 45 0a | 58 09 0a 58 24 28 44 4f |.README.|X..X$(DO|
|00002100| 43 53 29 3a 0a 58 09 67 | 65 74 20 73 2e 24 40 0a |CS):.X.g|et s.$@.|
|00002110| 58 0a 58 6c 6f 67 69 6e | 3a 09 24 28 4c 4f 42 4a |X.Xlogin|:.$(LOBJ|
|00002120| 53 29 0a 58 09 24 28 43 | 43 29 20 2d 6f 20 6c 6f |S).X.$(C|C) -o lo|
|00002130| 67 69 6e 20 24 28 4c 44 | 46 4c 41 47 53 29 20 24 |gin $(LD|FLAGS) $|
|00002140| 28 4c 4f 42 4a 53 29 20 | 24 28 4c 49 42 53 29 0a |(LOBJS) |$(LIBS).|
|00002150| 58 0a 58 6c 6f 67 69 6e | 2e 4c 3a 20 24 28 4c 53 |X.Xlogin|.L: $(LS|
|00002160| 52 43 53 29 0a 58 09 6c | 69 6e 74 20 24 28 4c 53 |RCS).X.l|int $(LS|
|00002170| 52 43 53 29 20 3e 20 6c | 6f 67 69 6e 2e 4c 0a 58 |RCS) > l|ogin.L.X|
|00002180| 0a 58 73 75 3a 09 24 28 | 53 4f 42 4a 53 29 0a 58 |.Xsu:.$(|SOBJS).X|
|00002190| 09 24 28 43 43 29 20 2d | 6f 20 73 75 20 24 28 4c |.$(CC) -|o su $(L|
|000021a0| 44 46 4c 41 47 53 29 20 | 24 28 53 4f 42 4a 53 29 |DFLAGS) |$(SOBJS)|
|000021b0| 20 24 28 4c 49 42 53 29 | 0a 58 0a 58 73 75 2e 4c | $(LIBS)|.X.Xsu.L|
|000021c0| 3a 09 24 28 53 53 52 43 | 53 29 0a 58 09 6c 69 6e |:.$(SSRC|S).X.lin|
|000021d0| 74 20 2d 44 53 55 20 24 | 28 53 53 52 43 53 29 20 |t -DSU $|(SSRCS) |
|000021e0| 3e 20 73 75 2e 4c 0a 58 | 0a 58 70 61 73 73 77 64 |> su.L.X|.Xpasswd|
|000021f0| 3a 09 24 28 50 4f 42 4a | 53 29 0a 58 09 24 28 43 |:.$(POBJ|S).X.$(C|
|00002200| 43 29 20 2d 6f 20 70 61 | 73 73 77 64 20 24 28 4c |C) -o pa|sswd $(L|
|00002210| 44 46 4c 41 47 53 29 20 | 24 28 50 4f 42 4a 53 29 |DFLAGS) |$(POBJS)|
|00002220| 20 24 28 4c 49 42 53 29 | 0a 58 0a 58 70 61 73 73 | $(LIBS)|.X.Xpass|
|00002230| 77 64 2e 4c 3a 20 24 28 | 50 53 52 43 53 29 0a 58 |wd.L: $(|PSRCS).X|
|00002240| 09 6c 69 6e 74 20 2d 44 | 50 41 53 53 57 44 20 24 |.lint -D|PASSWD $|
|00002250| 28 50 53 52 43 53 29 20 | 3e 20 70 61 73 73 77 64 |(PSRCS) |> passwd|
|00002260| 2e 4c 0a 58 0a 58 67 70 | 61 73 73 77 64 3a 20 24 |.L.X.Xgp|asswd: $|
|00002270| 28 47 50 4f 42 4a 53 29 | 0a 58 09 24 28 43 43 29 |(GPOBJS)|.X.$(CC)|
|00002280| 20 2d 6f 20 67 70 61 73 | 73 77 64 20 24 28 4c 44 | -o gpas|swd $(LD|
|00002290| 46 4c 41 47 53 29 20 24 | 28 47 50 4f 42 4a 53 29 |FLAGS) $|(GPOBJS)|
|000022a0| 20 24 28 4c 49 42 53 29 | 0a 58 0a 58 67 70 61 73 | $(LIBS)|.X.Xgpas|
|000022b0| 73 77 64 2e 4c 3a 20 24 | 28 47 50 53 52 43 53 29 |swd.L: $|(GPSRCS)|
|000022c0| 0a 58 09 6c 69 6e 74 20 | 24 28 47 50 53 52 43 53 |.X.lint |$(GPSRCS|
|000022d0| 29 20 3e 20 67 70 61 73 | 73 77 64 2e 4c 0a 58 0a |) > gpas|swd.L.X.|
|000022e0| 58 70 77 63 6f 6e 76 3a | 09 24 28 50 57 4f 42 4a |Xpwconv:|.$(PWOBJ|
|000022f0| 53 29 0a 58 09 24 28 43 | 43 29 20 2d 6f 20 70 77 |S).X.$(C|C) -o pw|
|00002300| 63 6f 6e 76 20 24 28 4c | 44 46 4c 41 47 53 29 20 |conv $(L|DFLAGS) |
|00002310| 24 28 50 57 4f 42 4a 53 | 29 20 24 28 4c 49 42 53 |$(PWOBJS|) $(LIBS|
|00002320| 29 0a 58 0a 58 70 77 63 | 6f 6e 76 2e 4c 3a 20 24 |).X.Xpwc|onv.L: $|
|00002330| 28 50 57 53 52 43 53 29 | 0a 58 09 6c 69 6e 74 20 |(PWSRCS)|.X.lint |
|00002340| 2d 44 50 41 53 53 57 44 | 20 24 28 50 57 53 52 43 |-DPASSWD| $(PWSRC|
|00002350| 53 29 20 3e 20 70 77 63 | 6f 6e 76 2e 4c 0a 58 0a |S) > pwc|onv.L.X.|
|00002360| 58 70 77 75 6e 63 6f 6e | 76 3a 20 24 28 50 57 55 |Xpwuncon|v: $(PWU|
|00002370| 4e 4f 42 4a 53 29 0a 58 | 09 24 28 43 43 29 20 2d |NOBJS).X|.$(CC) -|
|00002380| 6f 20 70 77 75 6e 63 6f | 6e 76 20 24 28 4c 44 46 |o pwunco|nv $(LDF|
|00002390| 4c 41 47 53 29 20 24 28 | 50 57 55 4e 4f 42 4a 53 |LAGS) $(|PWUNOBJS|
|000023a0| 29 20 24 28 4c 49 42 53 | 29 0a 58 0a 58 70 77 75 |) $(LIBS|).X.Xpwu|
|000023b0| 6e 63 6f 6e 76 2e 4c 3a | 20 24 28 50 57 55 4e 53 |nconv.L:| $(PWUNS|
|000023c0| 52 43 53 29 0a 58 09 6c | 69 6e 74 20 2d 44 50 41 |RCS).X.l|int -DPA|
|000023d0| 53 53 57 44 20 24 28 50 | 57 55 4e 53 52 43 53 29 |SSWD $(P|WUNSRCS)|
|000023e0| 20 3e 20 70 77 75 6e 63 | 6f 6e 76 2e 4c 0a 58 0a | > pwunc|onv.L.X.|
|000023f0| 58 73 75 6c 6f 67 69 6e | 3a 20 24 28 53 55 4c 4f |Xsulogin|: $(SULO|
|00002400| 47 4f 42 4a 53 29 0a 58 | 09 24 28 43 43 29 20 2d |GOBJS).X|.$(CC) -|
|00002410| 6f 20 73 75 6c 6f 67 69 | 6e 20 24 28 4c 44 46 4c |o sulogi|n $(LDFL|
|00002420| 41 47 53 29 20 24 28 53 | 55 4c 4f 47 4f 42 4a 53 |AGS) $(S|ULOGOBJS|
|00002430| 29 20 24 28 4c 49 42 53 | 29 0a 58 0a 58 73 75 6c |) $(LIBS|).X.Xsul|
|00002440| 6f 67 69 6e 2e 4c 3a 20 | 24 28 53 55 4c 4f 47 53 |ogin.L: |$(SULOGS|
|00002450| 52 43 53 29 0a 58 09 6c | 69 6e 74 20 24 28 53 55 |RCS).X.l|int $(SU|
|00002460| 4c 4f 47 53 52 43 53 29 | 20 3e 20 73 75 6c 6f 67 |LOGSRCS)| > sulog|
|00002470| 69 6e 2e 4c 0a 58 0a 58 | 66 61 69 6c 6c 6f 67 3a |in.L.X.X|faillog:|
|00002480| 20 66 61 69 6c 6c 6f 67 | 2e 6f 0a 58 09 24 28 43 | faillog|.o.X.$(C|
|00002490| 43 29 20 2d 6f 20 66 61 | 69 6c 6c 6f 67 20 24 28 |C) -o fa|illog $(|
|000024a0| 4c 44 46 4c 41 47 53 29 | 20 66 61 69 6c 6c 6f 67 |LDFLAGS)| faillog|
|000024b0| 2e 6f 20 24 28 4c 49 42 | 53 29 0a 58 0a 58 66 61 |.o $(LIB|S).X.Xfa|
|000024c0| 69 6c 6c 6f 67 2e 4c 3a | 20 66 61 69 6c 6c 6f 67 |illog.L:| faillog|
|000024d0| 2e 63 20 66 61 69 6c 6c | 6f 67 2e 68 20 63 6f 6e |.c faill|og.h con|
|000024e0| 66 69 67 2e 68 0a 58 09 | 6c 69 6e 74 20 66 61 69 |fig.h.X.|lint fai|
|000024f0| 6c 6c 6f 67 2e 63 20 3e | 20 66 61 69 6c 6c 6f 67 |llog.c >| faillog|
|00002500| 2e 4c 0a 58 0a 58 6d 6b | 70 61 73 73 77 64 3a 20 |.L.X.Xmk|passwd: |
|00002510| 24 28 44 42 4f 42 4a 53 | 29 0a 58 09 24 28 43 43 |$(DBOBJS|).X.$(CC|
|00002520| 29 20 2d 6f 20 6d 6b 70 | 61 73 73 77 64 20 24 28 |) -o mkp|asswd $(|
|00002530| 4c 44 46 4c 41 47 53 29 | 20 24 28 44 42 4f 42 4a |LDFLAGS)| $(DBOBJ|
|00002540| 53 29 20 24 28 4c 49 42 | 53 29 0a 58 0a 58 6d 6b |S) $(LIB|S).X.Xmk|
|00002550| 70 61 73 73 77 64 2e 4c | 3a 20 24 28 44 42 53 52 |passwd.L|: $(DBSR|
|00002560| 43 53 29 0a 58 09 6c 69 | 6e 74 20 24 28 44 42 53 |CS).X.li|nt $(DBS|
|00002570| 52 43 53 29 20 3e 20 6d | 6b 70 61 73 73 77 64 2e |RCS) > m|kpasswd.|
|00002580| 4c 0a 58 0a 58 6e 65 77 | 67 72 70 3a 20 24 28 4e |L.X.Xnew|grp: $(N|
|00002590| 47 4f 42 4a 53 29 0a 58 | 09 24 28 43 43 29 20 2d |GOBJS).X|.$(CC) -|
|000025a0| 6f 20 6e 65 77 67 72 70 | 20 24 28 4c 44 46 4c 41 |o newgrp| $(LDFLA|
|000025b0| 47 53 29 20 24 28 4e 47 | 4f 42 4a 53 29 20 24 28 |GS) $(NG|OBJS) $(|
|000025c0| 4c 49 42 53 29 0a 58 0a | 58 6e 65 77 67 72 70 2e |LIBS).X.|Xnewgrp.|
|000025d0| 4c 3a 20 24 28 4e 47 53 | 52 43 53 29 0a 58 09 6c |L: $(NGS|RCS).X.l|
|000025e0| 69 6e 74 20 24 28 4e 47 | 53 52 43 53 29 20 3e 20 |int $(NG|SRCS) > |
|000025f0| 6e 65 77 67 72 70 2e 4c | 0a 58 0a 58 63 68 66 6e |newgrp.L|.X.Xchfn|
|00002600| 3a 09 24 28 43 48 46 4e | 4f 42 4a 53 29 0a 58 09 |:.$(CHFN|OBJS).X.|
|00002610| 24 28 43 43 29 20 2d 6f | 20 63 68 66 6e 20 24 28 |$(CC) -o| chfn $(|
|00002620| 4c 44 46 4c 41 47 53 29 | 20 24 28 43 48 46 4e 4f |LDFLAGS)| $(CHFNO|
|00002630| 42 4a 53 29 20 24 28 4c | 49 42 53 29 0a 58 0a 58 |BJS) $(L|IBS).X.X|
|00002640| 63 68 66 6e 2e 4c 3a 09 | 24 28 43 48 46 4e 53 52 |chfn.L:.|$(CHFNSR|
|00002650| 43 53 29 0a 58 09 6c 69 | 6e 74 20 24 28 43 48 46 |CS).X.li|nt $(CHF|
|00002660| 4e 53 52 43 53 29 20 3e | 20 63 68 66 6e 2e 4c 0a |NSRCS) >| chfn.L.|
|00002670| 58 0a 58 63 68 73 68 3a | 09 24 28 43 48 53 48 4f |X.Xchsh:|.$(CHSHO|
|00002680| 42 4a 53 29 0a 58 09 24 | 28 43 43 29 20 2d 6f 20 |BJS).X.$|(CC) -o |
|00002690| 63 68 73 68 20 24 28 4c | 44 46 4c 41 47 53 29 20 |chsh $(L|DFLAGS) |
|000026a0| 24 28 43 48 53 48 4f 42 | 4a 53 29 20 24 28 4c 49 |$(CHSHOB|JS) $(LI|
|000026b0| 42 53 29 0a 58 0a 58 63 | 68 73 68 2e 4c 3a 20 24 |BS).X.Xc|hsh.L: $|
|000026c0| 28 43 48 53 48 53 52 43 | 53 29 0a 58 09 6c 69 6e |(CHSHSRC|S).X.lin|
|000026d0| 74 20 24 28 43 48 53 48 | 53 52 43 53 29 20 3e 20 |t $(CHSH|SRCS) > |
|000026e0| 63 68 73 68 2e 4c 0a 58 | 0a 58 63 68 61 67 65 3a |chsh.L.X|.Xchage:|
|000026f0| 09 24 28 43 48 41 47 45 | 4f 42 4a 53 29 0a 58 09 |.$(CHAGE|OBJS).X.|
|00002700| 24 28 43 43 29 20 2d 6f | 20 63 68 61 67 65 20 24 |$(CC) -o| chage $|
|00002710| 28 4c 44 46 4c 41 47 53 | 29 20 24 28 43 48 41 47 |(LDFLAGS|) $(CHAG|
|00002720| 45 4f 42 4a 53 29 20 24 | 28 4c 49 42 53 29 0a 58 |EOBJS) $|(LIBS).X|
|00002730| 0a 58 63 68 61 67 65 2e | 4c 3a 20 24 28 43 48 41 |.Xchage.|L: $(CHA|
|00002740| 47 45 53 52 43 53 29 0a | 58 09 6c 69 6e 74 20 2d |GESRCS).|X.lint -|
|00002750| 44 50 41 53 53 57 44 20 | 24 28 43 48 41 47 45 53 |DPASSWD |$(CHAGES|
|00002760| 52 43 53 29 20 3e 20 63 | 68 61 67 65 2e 4c 0a 58 |RCS) > c|hage.L.X|
|00002770| 0a 58 73 75 73 68 65 6c | 6c 2e 63 3a 20 73 68 65 |.Xsushel|l.c: she|
|00002780| 6c 6c 2e 63 0a 58 09 63 | 70 20 73 68 65 6c 6c 2e |ll.c.X.c|p shell.|
|00002790| 63 20 73 75 73 68 65 6c | 6c 2e 63 0a 58 0a 58 73 |c sushel|l.c.X.Xs|
|000027a0| 75 73 68 65 6c 6c 2e 6f | 3a 20 63 6f 6e 66 69 67 |ushell.o|: config|
|000027b0| 2e 68 20 73 75 73 68 65 | 6c 6c 2e 63 0a 58 09 24 |.h sushe|ll.c.X.$|
|000027c0| 28 43 43 29 20 2d 63 20 | 24 28 43 46 4c 41 47 53 |(CC) -c |$(CFLAGS|
|000027d0| 29 20 2d 44 53 55 20 73 | 75 73 68 65 6c 6c 2e 63 |) -DSU s|ushell.c|
|000027e0| 0a 58 0a 58 73 75 73 75 | 62 2e 63 3a 20 73 75 62 |.X.Xsusu|b.c: sub|
|000027f0| 2e 63 0a 58 09 63 70 20 | 73 75 62 2e 63 20 73 75 |.c.X.cp |sub.c su|
|00002800| 73 75 62 2e 63 0a 58 0a | 58 73 75 73 75 62 2e 6f |sub.c.X.|Xsusub.o|
|00002810| 3a 20 63 6f 6e 66 69 67 | 2e 68 20 73 75 73 75 62 |: config|.h susub|
|00002820| 2e 63 0a 58 09 24 28 43 | 43 29 20 2d 63 20 24 28 |.c.X.$(C|C) -c $(|
|00002830| 43 46 4c 41 47 53 29 20 | 2d 44 53 55 20 73 75 73 |CFLAGS) |-DSU sus|
|00002840| 75 62 2e 63 0a 58 0a 58 | 73 75 6c 6f 67 2e 6f 3a |ub.c.X.X|sulog.o:|
|00002850| 20 63 6f 6e 66 69 67 2e | 68 0a 58 0a 58 73 75 73 | config.|h.X.Xsus|
|00002860| 65 74 75 70 2e 63 3a 20 | 73 65 74 75 70 2e 63 0a |etup.c: |setup.c.|
|00002870| 58 09 63 70 20 73 65 74 | 75 70 2e 63 20 73 75 73 |X.cp set|up.c sus|
|00002880| 65 74 75 70 2e 63 0a 58 | 0a 58 73 75 73 65 74 75 |etup.c.X|.Xsusetu|
|00002890| 70 2e 6f 3a 20 63 6f 6e | 66 69 67 2e 68 20 73 65 |p.o: con|fig.h se|
|000028a0| 74 75 70 2e 63 0a 58 09 | 24 28 43 43 29 20 2d 63 |tup.c.X.|$(CC) -c|
|000028b0| 20 24 28 43 46 4c 41 47 | 53 29 20 2d 44 53 55 20 | $(CFLAG|S) -DSU |
|000028c0| 73 75 73 65 74 75 70 2e | 63 0a 58 0a 58 73 75 76 |susetup.|c.X.Xsuv|
|000028d0| 61 6c 69 64 2e 63 3a 20 | 76 61 6c 69 64 2e 63 0a |alid.c: |valid.c.|
|000028e0| 58 09 63 70 20 76 61 6c | 69 64 2e 63 20 73 75 76 |X.cp val|id.c suv|
|000028f0| 61 6c 69 64 2e 63 0a 58 | 0a 58 73 75 76 61 6c 69 |alid.c.X|.Xsuvali|
|00002900| 64 2e 6f 3a 20 63 6f 6e | 66 69 67 2e 68 20 76 61 |d.o: con|fig.h va|
|00002910| 6c 69 64 2e 63 0a 58 09 | 24 28 43 43 29 20 2d 63 |lid.c.X.|$(CC) -c|
|00002920| 20 24 28 43 46 4c 41 47 | 53 29 20 2d 44 53 55 20 | $(CFLAG|S) -DSU |
|00002930| 73 75 76 61 6c 69 64 2e | 63 0a 58 0a 58 70 6d 61 |suvalid.|c.X.Xpma|
|00002940| 69 6e 2e 6f 3a 20 63 6f | 6e 66 69 67 2e 68 20 6c |in.o: co|nfig.h l|
|00002950| 61 73 74 6c 6f 67 2e 68 | 20 73 68 61 64 6f 77 2e |astlog.h| shadow.|
|00002960| 68 0a 58 0a 58 70 77 61 | 67 65 2e 6f 3a 20 61 67 |h.X.Xpwa|ge.o: ag|
|00002970| 65 2e 63 20 63 6f 6e 66 | 69 67 2e 68 0a 58 09 63 |e.c conf|ig.h.X.c|
|00002980| 70 20 61 67 65 2e 63 20 | 70 77 61 67 65 2e 63 0a |p age.c |pwage.c.|
|00002990| 58 09 24 28 43 43 29 20 | 2d 63 20 24 28 43 46 4c |X.$(CC) |-c $(CFL|
|000029a0| 41 47 53 29 20 2d 44 50 | 41 53 53 57 44 20 70 77 |AGS) -DP|ASSWD pw|
|000029b0| 61 67 65 2e 63 0a 58 09 | 72 6d 20 70 77 61 67 65 |age.c.X.|rm pwage|
|000029c0| 2e 63 0a 58 0a 58 73 75 | 61 67 65 2e 6f 3a 20 61 |.c.X.Xsu|age.o: a|
|000029d0| 67 65 2e 63 20 63 6f 6e | 66 69 67 2e 68 0a 58 09 |ge.c con|fig.h.X.|
|000029e0| 63 70 20 61 67 65 2e 63 | 20 73 75 61 67 65 2e 63 |cp age.c| suage.c|
|000029f0| 0a 58 09 24 28 43 43 29 | 20 2d 63 20 24 28 43 46 |.X.$(CC)| -c $(CF|
|00002a00| 4c 41 47 53 29 20 2d 44 | 53 55 20 73 75 61 67 65 |LAGS) -D|SU suage|
|00002a10| 2e 63 0a 58 09 72 6d 20 | 73 75 61 67 65 2e 63 0a |.c.X.rm |suage.c.|
|00002a20| 58 0a 58 6c 6d 61 69 6e | 2e 6f 3a 20 63 6f 6e 66 |X.Xlmain|.o: conf|
|00002a30| 69 67 2e 68 20 6c 61 73 | 74 6c 6f 67 2e 68 20 66 |ig.h las|tlog.h f|
|00002a40| 61 69 6c 6c 6f 67 2e 68 | 0a 58 0a 58 73 6d 61 69 |aillog.h|.X.Xsmai|
|00002a50| 6e 2e 6f 3a 20 63 6f 6e | 66 69 67 2e 68 20 6c 61 |n.o: con|fig.h la|
|00002a60| 73 74 6c 6f 67 2e 68 0a | 58 0a 58 73 65 74 75 70 |stlog.h.|X.Xsetup|
|00002a70| 2e 6f 3a 20 63 6f 6e 66 | 69 67 2e 68 0a 58 0a 58 |.o: conf|ig.h.X.X|
|00002a80| 75 74 6d 70 2e 6f 3a 20 | 63 6f 6e 66 69 67 2e 68 |utmp.o: |config.h|
|00002a90| 0a 58 0a 58 6d 61 69 6c | 2e 6f 3a 20 63 6f 6e 66 |.X.Xmail|.o: conf|
|00002aa0| 69 67 2e 68 0a 58 0a 58 | 6d 6f 74 64 2e 6f 3a 20 |ig.h.X.X|motd.o: |
|00002ab0| 63 6f 6e 66 69 67 2e 68 | 0a 58 0a 58 61 67 65 2e |config.h|.X.Xage.|
|00002ac0| 6f 3a 20 63 6f 6e 66 69 | 67 2e 68 0a 58 0a 58 6c |o: confi|g.h.X.Xl|
|00002ad0| 6f 67 2e 6f 3a 20 63 6f | 6e 66 69 67 2e 68 20 6c |og.o: co|nfig.h l|
|00002ae0| 61 73 74 6c 6f 67 2e 68 | 0a 58 0a 58 73 68 65 6c |astlog.h|.X.Xshel|
|00002af0| 6c 2e 6f 3a 20 63 6f 6e | 66 69 67 2e 68 0a 58 0a |l.o: con|fig.h.X.|
|00002b00| 58 65 6e 74 72 79 2e 6f | 3a 20 63 6f 6e 66 69 67 |Xentry.o|: config|
|00002b10| 2e 68 20 73 68 61 64 6f | 77 2e 68 0a 58 0a 58 73 |.h shado|w.h.X.Xs|
|00002b20| 68 61 64 6f 77 2e 6f 3a | 20 73 68 61 64 6f 77 2e |hadow.o:| shadow.|
|00002b30| 68 0a 58 0a 58 64 69 61 | 6c 75 70 2e 6f 3a 20 64 |h.X.Xdia|lup.o: d|
|00002b40| 69 61 6c 75 70 2e 68 0a | 58 0a 58 64 69 61 6c 63 |ialup.h.|X.Xdialc|
|00002b50| 68 6b 2e 6f 3a 20 64 69 | 61 6c 75 70 2e 68 20 63 |hk.o: di|alup.h c|
|00002b60| 6f 6e 66 69 67 2e 68 0a | 58 0a 58 76 61 6c 69 64 |onfig.h.|X.Xvalid|
|00002b70| 2e 6f 3a 20 63 6f 6e 66 | 69 67 2e 68 0a 58 0a 58 |.o: conf|ig.h.X.X|
|00002b80| 66 61 69 6c 75 72 65 2e | 6f 3a 20 66 61 69 6c 6c |failure.|o: faill|
|00002b90| 6f 67 2e 68 20 63 6f 6e | 66 69 67 2e 68 0a 58 0a |og.h con|fig.h.X.|
|00002ba0| 58 66 61 69 6c 6c 6f 67 | 2e 6f 3a 20 66 61 69 6c |Xfaillog|.o: fail|
|00002bb0| 6c 6f 67 2e 68 20 63 6f | 6e 66 69 67 2e 68 0a 58 |log.h co|nfig.h.X|
|00002bc0| 0a 58 70 77 65 6e 74 2e | 6f 3a 20 63 6f 6e 66 69 |.Xpwent.|o: confi|
|00002bd0| 67 2e 68 0a 58 0a 58 70 | 6f 72 74 2e 6f 3a 20 70 |g.h.X.Xp|ort.o: p|
|00002be0| 6f 72 74 2e 68 0a 58 0a | 58 6e 65 77 67 72 70 2e |ort.h.X.|Xnewgrp.|
|00002bf0| 6f 3a 20 63 6f 6e 66 69 | 67 2e 68 20 73 68 61 64 |o: confi|g.h shad|
|00002c00| 6f 77 2e 68 0a 58 0a 58 | 6d 6b 70 61 73 73 77 64 |ow.h.X.X|mkpasswd|
|00002c10| 2e 6f 3a 20 63 6f 6e 66 | 69 67 2e 68 0a 58 0a 58 |.o: conf|ig.h.X.X|
|00002c20| 67 70 6d 61 69 6e 2e 6f | 3a 20 63 6f 6e 66 69 67 |gpmain.o|: config|
|00002c30| 2e 68 0a 58 0a 58 63 68 | 66 6e 2e 6f 3a 20 63 6f |.h.X.Xch|fn.o: co|
|00002c40| 6e 66 69 67 2e 68 0a 58 | 0a 58 63 68 73 68 2e 6f |nfig.h.X|.Xchsh.o|
|00002c50| 3a 20 63 6f 6e 66 69 67 | 2e 68 0a 58 0a 58 63 68 |: config|.h.X.Xch|
|00002c60| 61 67 65 2e 6f 3a 20 63 | 6f 6e 66 69 67 2e 68 20 |age.o: c|onfig.h |
|00002c70| 73 68 61 64 6f 77 2e 68 | 0a 58 0a 58 63 6c 65 61 |shadow.h|.X.Xclea|
|00002c80| 6e 3a 0a 58 09 2d 72 6d | 20 2d 66 20 2a 2e 6f 20 |n:.X.-rm| -f *.o |
|00002c90| 61 2e 6f 75 74 20 63 6f | 72 65 20 6e 70 61 73 73 |a.out co|re npass|
|00002ca0| 77 64 20 6e 73 68 61 64 | 6f 77 20 2a 2e 70 61 67 |wd nshad|ow *.pag|
|00002cb0| 20 2a 2e 64 69 72 0a 58 | 0a 58 63 6c 6f 62 62 65 | *.dir.X|.Xclobbe|
|00002cc0| 72 3a 20 63 6c 65 61 6e | 0a 58 09 2d 72 6d 20 2d |r: clean|.X.-rm -|
|00002cd0| 66 20 24 28 42 49 4e 53 | 29 20 2a 2e 4c 20 73 75 |f $(BINS|) *.L su|
|00002ce0| 73 68 65 6c 6c 2e 63 20 | 73 75 73 65 74 75 70 2e |shell.c |susetup.|
|00002cf0| 63 20 73 75 73 75 62 2e | 63 20 73 75 76 61 6c 69 |c susub.|c suvali|
|00002d00| 64 2e 63 0a 58 0a 58 73 | 68 61 72 3a 09 6c 6f 67 |d.c.X.Xs|har:.log|
|00002d10| 69 6e 2e 73 68 2e 31 20 | 6c 6f 67 69 6e 2e 73 68 |in.sh.1 |login.sh|
|00002d20| 2e 32 20 6c 6f 67 69 6e | 2e 73 68 2e 33 20 6c 6f |.2 login|.sh.3 lo|
|00002d30| 67 69 6e 2e 73 68 2e 34 | 20 6c 6f 67 69 6e 2e 73 |gin.sh.4| login.s|
|00002d40| 68 2e 35 0a 58 0a 58 6c | 6f 67 69 6e 2e 73 68 2e |h.5.X.Xl|ogin.sh.|
|00002d50| 31 3a 20 24 28 46 49 4c | 45 53 31 29 0a 58 09 73 |1: $(FIL|ES1).X.s|
|00002d60| 68 61 72 20 2d 61 20 24 | 28 46 49 4c 45 53 31 29 |har -a $|(FILES1)|
|00002d70| 20 3e 20 6c 6f 67 69 6e | 2e 73 68 2e 31 0a 58 0a | > login|.sh.1.X.|
|00002d80| 58 6c 6f 67 69 6e 2e 73 | 68 2e 32 3a 20 24 28 46 |Xlogin.s|h.2: $(F|
|00002d90| 49 4c 45 53 32 29 0a 58 | 09 73 68 61 72 20 2d 61 |ILES2).X|.shar -a|
|00002da0| 20 24 28 46 49 4c 45 53 | 32 29 20 3e 20 6c 6f 67 | $(FILES|2) > log|
|00002db0| 69 6e 2e 73 68 2e 32 0a | 58 0a 58 6c 6f 67 69 6e |in.sh.2.|X.Xlogin|
|00002dc0| 2e 73 68 2e 33 3a 20 24 | 28 46 49 4c 45 53 33 29 |.sh.3: $|(FILES3)|
|00002dd0| 0a 58 09 73 68 61 72 20 | 2d 61 20 24 28 46 49 4c |.X.shar |-a $(FIL|
|00002de0| 45 53 33 29 20 3e 20 6c | 6f 67 69 6e 2e 73 68 2e |ES3) > l|ogin.sh.|
|00002df0| 33 0a 58 0a 58 6c 6f 67 | 69 6e 2e 73 68 2e 34 3a |3.X.Xlog|in.sh.4:|
|00002e00| 20 24 28 46 49 4c 45 53 | 34 29 0a 58 09 73 68 61 | $(FILES|4).X.sha|
|00002e10| 72 20 2d 61 20 24 28 46 | 49 4c 45 53 34 29 20 3e |r -a $(F|ILES4) >|
|00002e20| 20 6c 6f 67 69 6e 2e 73 | 68 2e 34 0a 58 0a 58 6c | login.s|h.4.X.Xl|
|00002e30| 6f 67 69 6e 2e 73 68 2e | 35 3a 20 24 28 44 4f 43 |ogin.sh.|5: $(DOC|
|00002e40| 53 29 0a 58 09 73 68 61 | 72 20 2d 61 20 24 28 44 |S).X.sha|r -a $(D|
|00002e50| 4f 43 53 29 20 3e 20 6c | 6f 67 69 6e 2e 73 68 2e |OCS) > l|ogin.sh.|
|00002e60| 35 0a 53 48 41 52 5f 45 | 4f 46 0a 69 66 20 74 65 |5.SHAR_E|OF.if te|
|00002e70| 73 74 20 38 31 31 39 20 | 2d 6e 65 20 22 60 77 63 |st 8119 |-ne "`wc|
|00002e80| 20 2d 63 20 3c 20 27 4d | 61 6b 65 66 69 6c 65 27 | -c < 'M|akefile'|
|00002e90| 60 22 0a 74 68 65 6e 0a | 09 65 63 68 6f 20 73 68 |`".then.|.echo sh|
|00002ea0| 61 72 3a 20 22 65 72 72 | 6f 72 20 74 72 61 6e 73 |ar: "err|or trans|
|00002eb0| 6d 69 74 74 69 6e 67 20 | 27 4d 61 6b 65 66 69 6c |mitting |'Makefil|
|00002ec0| 65 27 22 20 27 28 73 68 | 6f 75 6c 64 20 68 61 76 |e'" '(sh|ould hav|
|00002ed0| 65 20 62 65 65 6e 20 38 | 31 31 39 20 63 68 61 72 |e been 8|119 char|
|00002ee0| 61 63 74 65 72 73 29 27 | 0a 66 69 0a 66 69 0a 65 |acters)'|.fi.fi.e|
|00002ef0| 63 68 6f 20 73 68 61 72 | 3a 20 22 65 78 74 72 61 |cho shar|: "extra|
|00002f00| 63 74 69 6e 67 20 27 63 | 6f 6e 66 69 67 2e 68 27 |cting 'c|onfig.h'|
|00002f10| 22 20 27 28 36 30 35 30 | 20 63 68 61 72 61 63 74 |" '(6050| charact|
|00002f20| 65 72 73 29 27 0a 69 66 | 20 74 65 73 74 20 2d 66 |ers)'.if| test -f|
|00002f30| 20 27 63 6f 6e 66 69 67 | 2e 68 27 0a 74 68 65 6e | 'config|.h'.then|
|00002f40| 0a 09 65 63 68 6f 20 73 | 68 61 72 3a 20 22 77 69 |..echo s|har: "wi|
|00002f50| 6c 6c 20 6e 6f 74 20 6f | 76 65 72 2d 77 72 69 74 |ll not o|ver-writ|
|00002f60| 65 20 65 78 69 73 74 69 | 6e 67 20 66 69 6c 65 20 |e existi|ng file |
|00002f70| 27 63 6f 6e 66 69 67 2e | 68 27 22 0a 65 6c 73 65 |'config.|h'".else|
|00002f80| 0a 73 65 64 20 27 73 2f | 5e 58 2f 2f 27 20 3c 3c |.sed 's/|^X//' <<|
|00002f90| 20 5c 53 48 41 52 5f 45 | 4f 46 20 3e 20 27 63 6f | \SHAR_E|OF > 'co|
|00002fa0| 6e 66 69 67 2e 68 27 0a | 58 2f 2a 0a 58 20 2a 20 |nfig.h'.|X/*.X * |
|00002fb0| 43 6f 70 79 72 69 67 68 | 74 20 31 39 38 39 2c 20 |Copyrigh|t 1989, |
|00002fc0| 31 39 39 30 2c 20 4a 6f | 68 6e 20 46 2e 20 48 61 |1990, Jo|hn F. Ha|
|00002fd0| 75 67 68 20 49 49 0a 58 | 20 2a 20 41 6c 6c 20 72 |ugh II.X| * All r|
|00002fe0| 69 67 68 74 73 20 72 65 | 73 65 72 76 65 64 2e 0a |ights re|served..|
|00002ff0| 58 20 2a 0a 58 20 2a 20 | 55 73 65 2c 20 64 75 70 |X *.X * |Use, dup|
|00003000| 6c 69 63 61 74 69 6f 6e | 2c 20 61 6e 64 20 64 69 |lication|, and di|
|00003010| 73 63 6c 6f 73 75 72 65 | 20 70 72 6f 68 69 62 69 |sclosure| prohibi|
|00003020| 74 65 64 20 77 69 74 68 | 6f 75 74 0a 58 20 2a 20 |ted with|out.X * |
|00003030| 74 68 65 20 65 78 70 72 | 65 73 73 20 77 72 69 74 |the expr|ess writ|
|00003040| 74 65 6e 20 70 65 72 6d | 69 73 73 69 6f 6e 20 6f |ten perm|ission o|
|00003050| 66 20 74 68 65 20 61 75 | 74 68 6f 72 2e 0a 58 20 |f the au|thor..X |
|00003060| 2a 2f 0a 58 0a 58 2f 2a | 0a 58 20 2a 20 43 6f 6e |*/.X.X/*|.X * Con|
|00003070| 66 69 67 75 72 61 74 69 | 6f 6e 20 66 69 6c 65 20 |figurati|on file |
|00003080| 66 6f 72 20 6c 6f 67 69 | 6e 2e 0a 58 20 2a 0a 58 |for logi|n..X *.X|
|00003090| 20 2a 09 40 28 23 29 63 | 6f 6e 66 69 67 2e 68 09 | *.@(#)c|onfig.h.|
|000030a0| 32 2e 36 09 30 38 3a 32 | 36 3a 32 38 09 38 2f 32 |2.6.08:2|6:28.8/2|
|000030b0| 30 2f 39 30 0a 58 20 2a | 2f 0a 58 0a 58 2f 2a 0a |0/90.X *|/.X.X/*.|
|000030c0| 58 20 2a 20 44 65 66 69 | 6e 65 20 44 49 41 4c 55 |X * Defi|ne DIALU|
|000030d0| 50 20 74 6f 20 75 73 65 | 20 64 69 61 6c 75 70 20 |P to use| dialup |
|000030e0| 70 61 73 73 77 6f 72 64 | 20 66 69 6c 65 73 2e 20 |password| files. |
|000030f0| 20 44 65 66 69 6e 65 20 | 50 4f 52 54 54 49 4d 45 | Define |PORTTIME|
|00003100| 0a 58 20 2a 20 74 6f 20 | 75 73 65 20 74 68 65 20 |.X * to |use the |
|00003110| 70 6f 72 74 20 74 69 6d | 65 20 72 65 73 74 72 69 |port tim|e restri|
|00003120| 63 74 69 6f 6e 20 66 69 | 6c 65 2c 20 73 65 65 20 |ction fi|le, see |
|00003130| 70 6f 72 74 2e 68 20 66 | 6f 72 20 6d 6f 72 65 0a |port.h f|or more.|
|00003140| 58 20 2a 20 69 6e 66 6f | 72 6d 61 74 69 6f 6e 2e |X * info|rmation.|
|00003150| 0a 58 20 2a 2f 0a 58 0a | 58 23 64 65 66 69 6e 65 |.X */.X.|X#define|
|00003160| 09 44 49 41 4c 55 50 0a | 58 23 64 65 66 69 6e 65 |.DIALUP.|X#define|
|00003170| 09 50 4f 52 54 54 49 4d | 45 0a 58 0a 58 2f 2a 0a |.PORTTIM|E.X.X/*.|
|00003180| 58 20 2a 20 44 65 66 69 | 6e 65 20 53 48 41 44 4f |X * Defi|ne SHADO|
|00003190| 57 50 57 44 20 74 6f 20 | 75 73 65 20 73 68 61 64 |WPWD to |use shad|
|000031a0| 6f 77 20 5b 20 75 6e 72 | 65 61 64 61 62 6c 65 20 |ow [ unr|eadable |
|000031b0| 5d 20 70 61 73 73 77 6f | 72 64 20 66 69 6c 65 0a |] passwo|rd file.|
|000031c0| 58 20 2a 2f 0a 58 0a 58 | 23 64 65 66 69 6e 65 09 |X */.X.X|#define.|
|000031d0| 53 48 41 44 4f 57 50 57 | 44 0a 58 0a 58 2f 2a 0a |SHADOWPW|D.X.X/*.|
|000031e0| 58 20 2a 20 44 65 66 69 | 6e 65 20 44 4f 55 42 4c |X * Defi|ne DOUBL|
|000031f0| 45 53 49 5a 45 20 74 6f | 20 75 73 65 20 31 36 20 |ESIZE to| use 16 |
|00003200| 63 68 61 72 61 63 74 65 | 72 20 70 61 73 73 77 6f |characte|r passwo|
|00003210| 72 64 73 0a 58 20 2a 2f | 0a 58 0a 58 23 64 65 66 |rds.X */|.X.X#def|
|00003220| 69 6e 65 20 44 4f 55 42 | 4c 45 53 49 5a 45 0a 58 |ine DOUB|LESIZE.X|
|00003230| 0a 58 2f 2a 0a 58 20 2a | 20 44 65 66 69 6e 65 20 |.X/*.X *| Define |
|00003240| 4f 42 53 43 55 52 45 20 | 74 6f 20 69 6e 63 6c 75 |OBSCURE |to inclu|
|00003250| 64 65 20 68 61 72 64 20 | 70 61 73 73 77 6f 72 64 |de hard |password|
|00003260| 20 74 65 73 74 69 6e 67 | 20 63 6f 64 65 2e 0a 58 | testing| code..X|
|00003270| 20 2a 2f 0a 58 0a 58 23 | 64 65 66 69 6e 65 09 4f | */.X.X#|define.O|
|00003280| 42 53 43 55 52 45 0a 58 | 0a 58 2f 2a 0a 58 20 2a |BSCURE.X|.X/*.X *|
|00003290| 20 44 65 66 69 6e 65 20 | 50 41 53 53 4c 45 4e 47 | Define |PASSLENG|
|000032a0| 54 48 20 74 6f 20 62 65 | 20 73 68 6f 72 74 65 73 |TH to be| shortes|
|000032b0| 74 20 6c 65 67 61 6c 20 | 70 61 73 73 77 6f 72 64 |t legal |password|
|000032c0| 0a 58 20 2a 2f 0a 58 0a | 58 23 64 65 66 69 6e 65 |.X */.X.|X#define|
|000032d0| 09 50 41 53 53 4c 45 4e | 47 54 48 09 35 0a 58 0a |.PASSLEN|GTH.5.X.|
|000032e0| 58 2f 2a 0a 58 20 2a 20 | 44 65 66 69 6e 65 20 4e |X/*.X * |Define N|
|000032f0| 4f 42 4c 41 4e 4b 20 69 | 66 20 79 6f 75 20 77 61 |OBLANK i|f you wa|
|00003300| 6e 74 20 61 6c 6c 20 70 | 61 73 73 77 6f 72 64 73 |nt all p|asswords|
|00003310| 20 70 72 6f 6d 70 74 65 | 64 20 66 6f 72 2c 20 69 | prompte|d for, i|
|00003320| 6e 63 6c 75 64 69 6e 67 | 0a 58 20 2a 20 65 6d 70 |ncluding|.X * emp|
|00003330| 74 79 20 6f 6e 65 73 2e | 0a 58 0a 58 23 75 6e 64 |ty ones.|.X.X#und|
|00003340| 65 66 09 4e 4f 42 4c 41 | 4e 4b 0a 58 0a 58 2f 2a |ef.NOBLA|NK.X.X/*|
|00003350| 0a 58 20 2a 20 44 65 66 | 69 6e 65 20 4d 41 58 44 |.X * Def|ine MAXD|
|00003360| 41 59 53 20 74 6f 20 62 | 65 20 74 68 65 20 64 65 |AYS to b|e the de|
|00003370| 66 61 75 6c 74 20 6d 61 | 78 69 6d 75 6d 20 6e 75 |fault ma|ximum nu|
|00003380| 6d 62 65 72 20 6f 66 20 | 64 61 79 73 20 61 20 70 |mber of |days a p|
|00003390| 61 73 73 77 6f 72 64 0a | 58 20 2a 20 69 73 20 76 |assword.|X * is v|
|000033a0| 61 6c 69 64 20 66 6f 72 | 20 77 68 65 6e 20 63 6f |alid for| when co|
|000033b0| 6e 76 65 72 74 69 6e 67 | 20 74 6f 20 73 68 61 64 |nverting| to shad|
|000033c0| 6f 77 20 70 61 73 73 77 | 6f 72 64 73 2e 20 20 44 |ow passw|ords. D|
|000033d0| 65 66 69 6e 65 20 4d 49 | 4e 44 41 59 53 0a 58 20 |efine MI|NDAYS.X |
|000033e0| 2a 20 74 6f 20 62 65 20 | 74 68 65 20 6d 69 6e 69 |* to be |the mini|
|000033f0| 6d 75 6d 20 6e 75 6d 62 | 65 72 20 6f 66 20 64 61 |mum numb|er of da|
|00003400| 79 73 20 62 65 66 6f 72 | 65 20 61 20 70 61 73 73 |ys befor|e a pass|
|00003410| 77 6f 72 64 20 6d 61 79 | 20 62 65 20 63 68 61 6e |word may| be chan|
|00003420| 67 65 64 2e 0a 58 20 2a | 20 53 65 65 20 70 77 63 |ged..X *| See pwc|
|00003430| 6f 6e 76 2e 63 20 66 6f | 72 20 6d 6f 72 65 20 64 |onv.c fo|r more d|
|00003440| 65 74 61 69 6c 73 2e 0a | 58 20 2a 2f 0a 58 0a 58 |etails..|X */.X.X|
|00003450| 23 64 65 66 69 6e 65 09 | 4d 41 58 44 41 59 53 09 |#define.|MAXDAYS.|
|00003460| 31 30 30 30 30 0a 58 23 | 64 65 66 69 6e 65 09 4d |10000.X#|define.M|
|00003470| 49 4e 44 41 59 53 09 30 | 0a 58 0a 58 2f 2a 0a 58 |INDAYS.0|.X.X/*.X|
|00003480| 20 2a 20 44 65 66 69 6e | 65 20 4e 44 45 42 55 47 | * Defin|e NDEBUG|
|00003490| 20 66 6f 72 20 70 72 6f | 64 75 63 74 69 6f 6e 20 | for pro|duction |
|000034a0| 76 65 72 73 69 6f 6e 73 | 0a 58 20 2a 2f 0a 58 0a |versions|.X */.X.|
|000034b0| 58 23 64 65 66 69 6e 65 | 09 4e 44 45 42 55 47 0a |X#define|.NDEBUG.|
|000034c0| 58 0a 58 2f 2a 0a 58 20 | 2a 20 44 65 66 69 6e 65 |X.X/*.X |* Define|
|000034d0| 20 48 5a 20 69 66 20 6c | 6f 67 69 6e 20 6d 75 73 | HZ if l|ogin mus|
|000034e0| 74 20 73 65 74 20 48 5a | 20 76 61 6c 75 65 0a 58 |t set HZ| value.X|
|000034f0| 20 2a 2f 0a 58 0a 58 23 | 64 65 66 69 6e 65 09 48 | */.X.X#|define.H|
|00003500| 5a 09 22 48 5a 3d 35 30 | 22 0a 58 0a 58 2f 2a 0a |Z."HZ=50|".X.X/*.|
|00003510| 58 20 2a 20 44 65 66 69 | 6e 65 20 54 5a 20 69 66 |X * Defi|ne TZ if|
|00003520| 20 6c 6f 67 69 6e 20 6d | 75 73 74 20 73 65 74 20 | login m|ust set |
|00003530| 74 69 6d 65 7a 6f 6e 65 | 0a 58 20 2a 0a 58 20 2a |timezone|.X *.X *|
|00003540| 20 54 68 65 20 66 69 72 | 73 74 20 65 78 61 6d 70 | The fir|st examp|
|00003550| 6c 65 20 73 65 74 73 20 | 74 68 65 20 76 61 72 69 |le sets |the vari|
|00003560| 61 62 6c 65 20 64 69 72 | 65 63 74 6c 79 2e 20 20 |able dir|ectly. |
|00003570| 54 68 65 0a 58 20 2a 20 | 73 65 63 6f 6e 64 20 65 |The.X * |second e|
|00003580| 78 61 6d 70 6c 65 20 6e | 61 6d 65 73 20 61 20 66 |xample n|ames a f|
|00003590| 69 6c 65 20 77 68 69 63 | 68 20 69 73 20 72 65 61 |ile whic|h is rea|
|000035a0| 64 20 74 6f 20 64 65 74 | 65 72 6d 69 6e 65 0a 58 |d to det|ermine.X|
|000035b0| 20 2a 20 74 68 65 20 70 | 72 6f 70 65 72 20 76 61 | * the p|roper va|
|000035c0| 6c 75 65 2e 20 20 54 68 | 65 20 66 69 6c 65 20 63 |lue. Th|e file c|
|000035d0| 6f 6e 73 69 73 74 73 20 | 6f 66 20 61 20 73 69 6e |onsists |of a sin|
|000035e0| 67 6c 65 20 6c 69 6e 65 | 0a 58 20 2a 20 6f 66 20 |gle line|.X * of |
|000035f0| 74 68 65 20 66 6f 72 6d | 20 27 54 5a 3d 7a 6f 6e |the form| 'TZ=zon|
|00003600| 65 2d 6e 61 6d 65 27 0a | 58 20 2a 2f 0a 58 0a 58 |e-name'.|X */.X.X|
|00003610| 2f 2a 20 23 64 65 66 69 | 6e 65 09 54 5a 09 22 54 |/* #defi|ne.TZ."T|
|00003620| 5a 3d 43 53 54 36 43 44 | 54 22 20 2a 2f 0a 58 23 |Z=CST6CD|T" */.X#|
|00003630| 64 65 66 69 6e 65 09 54 | 5a 09 22 2f 65 74 63 2f |define.T|Z."/etc/|
|00003640| 74 7a 6e 61 6d 65 22 0a | 58 0a 58 2f 2a 0a 58 20 |tzname".|X.X/*.X |
|00003650| 2a 20 44 65 66 69 6e 65 | 20 74 68 65 20 64 65 66 |* Define| the def|
|00003660| 61 75 6c 74 20 50 41 54 | 48 20 61 6e 64 20 53 55 |ault PAT|H and SU|
|00003670| 50 41 54 48 20 68 65 72 | 65 2e 20 20 50 41 54 48 |PATH her|e. PATH|
|00003680| 20 69 73 20 66 6f 72 20 | 6e 6f 6e 2d 70 72 69 76 | is for |non-priv|
|00003690| 69 6c 65 67 65 64 0a 58 | 20 2a 20 75 73 65 72 73 |ileged.X| * users|
|000036a0| 2c 20 53 55 50 41 54 48 | 20 69 73 20 66 6f 72 20 |, SUPATH| is for |
|000036b0| 72 6f 6f 74 2e 20 20 54 | 68 65 20 66 69 72 73 74 |root. T|he first|
|000036c0| 20 70 61 69 72 20 61 72 | 65 20 66 6f 72 20 72 65 | pair ar|e for re|
|000036d0| 61 6c 20 74 72 75 73 74 | 69 6e 67 0a 58 20 2a 20 |al trust|ing.X * |
|000036e0| 73 79 73 74 65 6d 73 2c | 20 74 68 65 20 73 65 63 |systems,| the sec|
|000036f0| 6f 6e 64 20 70 61 69 72 | 20 61 72 65 20 66 6f 72 |ond pair| are for|
|00003700| 20 74 68 65 20 70 61 72 | 61 6e 6f 69 64 20 2e 2e | the par|anoid ..|
|00003710| 2e 0a 58 20 2a 2f 0a 58 | 0a 58 2f 2a 20 23 64 65 |..X */.X|.X/* #de|
|00003720| 66 69 6e 65 09 50 41 54 | 48 09 22 50 41 54 48 3d |fine.PAT|H."PATH=|
|00003730| 3a 2f 62 69 6e 3a 2f 75 | 73 72 2f 62 69 6e 22 09 |:/bin:/u|sr/bin".|
|00003740| 2a 2f 0a 58 2f 2a 20 23 | 64 65 66 69 6e 65 09 53 |*/.X/* #|define.S|
|00003750| 55 50 41 54 48 09 22 50 | 41 54 48 3d 3a 2f 62 69 |UPATH."P|ATH=:/bi|
|00003760| 6e 3a 2f 75 73 72 2f 62 | 69 6e 3a 2f 65 74 63 22 |n:/usr/b|in:/etc"|
|00003770| 20 2a 2f 0a 58 23 64 65 | 66 69 6e 65 09 50 41 54 | */.X#de|fine.PAT|
|00003780| 48 09 22 50 41 54 48 3d | 2f 62 69 6e 3a 2f 75 73 |H."PATH=|/bin:/us|
|00003790| 72 2f 62 69 6e 22 0a 58 | 23 64 65 66 69 6e 65 09 |r/bin".X|#define.|
|000037a0| 53 55 50 41 54 48 09 22 | 50 41 54 48 3d 2f 62 69 |SUPATH."|PATH=/bi|
|000037b0| 6e 3a 2f 75 73 72 2f 62 | 69 6e 3a 2f 65 74 63 22 |n:/usr/b|in:/etc"|
|000037c0| 0a 58 0a 58 2f 2a 0a 58 | 20 2a 20 44 65 66 69 6e |.X.X/*.X| * Defin|
|000037d0| 65 20 74 68 65 20 6d 61 | 69 6c 62 6f 78 20 64 69 |e the ma|ilbox di|
|000037e0| 72 65 63 74 6f 72 79 0a | 58 20 2a 2f 0a 58 0a 58 |rectory.|X */.X.X|
|000037f0| 23 64 65 66 69 6e 65 09 | 4d 41 49 4c 44 49 52 09 |#define.|MAILDIR.|
|00003800| 22 2f 75 73 72 2f 73 70 | 6f 6f 6c 2f 6d 61 69 6c |"/usr/sp|ool/mail|
|00003810| 2f 22 0a 58 0a 58 2f 2a | 0a 58 20 2a 20 44 65 66 |/".X.X/*|.X * Def|
|00003820| 69 6e 65 20 41 47 49 4e | 47 20 69 66 20 79 6f 75 |ine AGIN|G if you|
|00003830| 20 77 61 6e 74 20 74 68 | 65 20 70 61 73 73 77 6f | want th|e passwo|
|00003840| 72 64 20 61 67 69 6e 67 | 20 63 68 65 63 6b 73 20 |rd aging| checks |
|00003850| 6d 61 64 65 2e 0a 58 20 | 2a 20 44 65 66 69 6e 65 |made..X |* Define|
|00003860| 20 57 41 52 4e 41 47 45 | 20 74 6f 20 62 65 20 74 | WARNAGE| to be t|
|00003870| 68 65 20 6e 75 6d 62 65 | 72 20 6f 66 20 64 61 79 |he numbe|r of day|
|00003880| 73 20 6e 6f 74 69 63 65 | 20 61 20 75 73 65 72 20 |s notice| a user |
|00003890| 72 65 63 65 69 76 65 73 | 0a 58 20 2a 20 6f 66 20 |receives|.X * of |
|000038a0| 61 20 73 6f 6f 6e 20 74 | 6f 20 65 78 70 69 72 65 |a soon t|o expire|
|000038b0| 20 70 61 73 73 77 6f 72 | 64 2e 0a 58 20 2a 2f 0a | passwor|d..X */.|
|000038c0| 58 0a 58 23 64 65 66 69 | 6e 65 09 41 47 49 4e 47 |X.X#defi|ne.AGING|
|000038d0| 0a 58 23 64 65 66 69 6e | 65 09 57 41 52 4e 41 47 |.X#defin|e.WARNAG|
|000038e0| 45 09 31 30 0a 58 0a 58 | 2f 2a 0a 58 20 2a 20 44 |E.10.X.X|/*.X * D|
|000038f0| 65 66 69 6e 65 20 4d 41 | 49 4c 43 48 45 43 4b 20 |efine MA|ILCHECK |
|00003900| 69 66 20 79 6f 75 20 77 | 61 6e 74 20 74 68 65 20 |if you w|ant the |
|00003910| 6d 61 69 6c 62 6f 78 20 | 63 68 65 63 6b 65 64 20 |mailbox |checked |
|00003920| 66 6f 72 20 6e 65 77 20 | 6d 61 69 6c 0a 58 20 2a |for new |mail.X *|
|00003930| 0a 58 20 2a 20 4f 6e 65 | 20 6f 66 20 74 77 6f 20 |.X * One| of two |
|00003940| 6d 65 73 73 61 67 65 73 | 20 61 72 65 20 70 72 69 |messages| are pri|
|00003950| 6e 74 65 64 20 2d 20 60 | 59 6f 75 20 68 61 76 65 |nted - `|You have|
|00003960| 20 6e 65 77 20 6d 61 69 | 6c 2e 27 20 6f 72 0a 58 | new mai|l.' or.X|
|00003970| 20 2a 20 60 59 6f 75 20 | 68 61 76 65 20 6d 61 69 | * `You |have mai|
|00003980| 6c 2e 27 2e 0a 58 20 2a | 2f 0a 58 0a 58 23 64 65 |l.'..X *|/.X.X#de|
|00003990| 66 69 6e 65 09 4d 41 49 | 4c 43 48 45 43 4b 0a 58 |fine.MAI|LCHECK.X|
|000039a0| 0a 58 2f 2a 0a 58 20 2a | 20 44 65 66 69 6e 65 20 |.X/*.X *| Define |
|000039b0| 43 4f 4e 53 4f 4c 45 20 | 69 66 20 79 6f 75 20 77 |CONSOLE |if you w|
|000039c0| 61 6e 74 20 52 4f 4f 54 | 20 72 65 73 74 72 69 63 |ant ROOT| restric|
|000039d0| 74 65 64 20 74 6f 20 61 | 20 70 61 72 74 69 63 75 |ted to a| particu|
|000039e0| 6c 61 72 20 74 65 72 6d | 69 6e 61 6c 2e 0a 58 20 |lar term|inal..X |
|000039f0| 2a 0a 58 20 2a 20 55 73 | 65 20 74 68 65 20 6e 61 |*.X * Us|e the na|
|00003a00| 6d 65 20 6f 66 20 74 68 | 65 20 74 74 79 20 6c 69 |me of th|e tty li|
|00003a10| 6e 65 20 69 66 20 79 6f | 75 20 6f 6e 6c 79 20 77 |ne if yo|u only w|
|00003a20| 61 6e 74 20 61 20 73 69 | 6e 67 6c 65 20 6c 69 6e |ant a si|ngle lin|
|00003a30| 65 2c 20 6f 72 20 75 73 | 65 0a 58 20 2a 20 74 68 |e, or us|e.X * th|
|00003a40| 65 20 6e 61 6d 65 20 6f | 66 20 74 68 65 20 66 69 |e name o|f the fi|
|00003a50| 6c 65 20 63 6f 6e 74 61 | 69 6e 69 6e 67 20 74 68 |le conta|ining th|
|00003a60| 65 20 70 65 72 6d 69 73 | 73 69 62 6c 65 20 70 6f |e permis|sible po|
|00003a70| 72 74 73 20 69 66 20 79 | 6f 75 20 77 69 73 68 20 |rts if y|ou wish |
|00003a80| 74 6f 0a 58 20 2a 20 61 | 6c 6c 6f 77 20 72 6f 6f |to.X * a|llow roo|
|00003a90| 74 20 6c 6f 67 69 6e 73 | 20 6f 6e 20 6d 6f 72 65 |t logins| on more|
|00003aa0| 20 74 68 61 6e 20 6f 6e | 65 20 70 6f 72 74 2e 0a | than on|e port..|
|00003ab0| 58 20 2a 2f 0a 58 0a 58 | 2f 2a 20 23 64 65 66 69 |X */.X.X|/* #defi|
|00003ac0| 6e 65 09 43 4f 4e 53 4f | 4c 45 09 22 63 6f 6e 73 |ne.CONSO|LE."cons|
|00003ad0| 6f 6c 65 22 09 2f 2a 20 | 72 6f 6f 74 20 6f 6e 20 |ole"./* |root on |
|00003ae0| 2f 64 65 76 2f 63 6f 6e | 73 6f 6c 65 20 6f 6e 6c |/dev/con|sole onl|
|00003af0| 79 20 2a 2f 0a 58 23 64 | 65 66 69 6e 65 09 43 4f |y */.X#d|efine.CO|
|00003b00| 4e 53 4f 4c 45 09 22 2f | 65 74 63 2f 63 6f 6e 73 |NSOLE."/|etc/cons|
|00003b10| 6f 6c 65 73 22 09 09 2f | 2a 20 63 68 65 63 6b 20 |oles"../|* check |
|00003b20| 2f 65 74 63 2f 63 6f 6e | 73 6f 6c 65 73 20 66 6f |/etc/con|soles fo|
|00003b30| 72 20 61 20 6c 69 73 74 | 20 2a 2f 0a 58 0a 58 2f |r a list| */.X.X/|
|00003b40| 2a 0a 58 20 2a 20 44 65 | 66 69 6e 65 20 4e 4f 4c |*.X * De|fine NOL|
|00003b50| 4f 47 49 4e 53 20 69 66 | 20 79 6f 75 20 77 61 6e |OGINS if| you wan|
|00003b60| 74 20 74 6f 20 62 65 20 | 61 62 6c 65 20 74 6f 20 |t to be |able to |
|00003b70| 64 65 6e 79 20 6e 6f 6e | 2d 72 6f 6f 74 20 75 73 |deny non|-root us|
|00003b80| 65 72 73 20 6c 6f 67 69 | 6e 73 2e 0a 58 20 2a 20 |ers logi|ns..X * |
|00003b90| 4c 6f 67 69 6e 73 20 77 | 69 6c 6c 20 6e 6f 74 20 |Logins w|ill not |
|00003ba0| 62 65 20 70 65 72 6d 69 | 74 74 65 64 20 69 66 20 |be permi|tted if |
|00003bb0| 74 68 69 73 20 66 69 6c | 65 20 65 78 69 73 74 73 |this fil|e exists|
|00003bc0| 2e 0a 58 20 2a 2f 0a 58 | 0a 58 23 64 65 66 69 6e |..X */.X|.X#defin|
|00003bd0| 65 09 4e 4f 4c 4f 47 49 | 4e 53 09 22 2f 65 74 63 |e.NOLOGI|NS."/etc|
|00003be0| 2f 6e 6f 6c 6f 67 69 6e | 22 0a 58 0a 58 2f 2a 0a |/nologin|".X.X/*.|
|00003bf0| 58 20 2a 20 44 65 66 69 | 6e 65 20 4e 4f 55 53 45 |X * Defi|ne NOUSE|
|00003c00| 20 69 66 20 79 6f 75 20 | 77 61 6e 74 20 74 6f 20 | if you |want to |
|00003c10| 62 65 20 61 62 6c 65 20 | 74 6f 20 64 65 63 6c 61 |be able |to decla|
|00003c20| 72 65 20 61 63 63 6f 75 | 6e 74 73 20 77 68 69 63 |re accou|nts whic|
|00003c30| 68 20 63 61 6e 27 74 0a | 58 20 2a 20 62 65 20 6c |h can't.|X * be l|
|00003c40| 6f 67 67 65 64 20 69 6e | 74 6f 2e 20 20 44 65 66 |ogged in|to. Def|
|00003c50| 69 6e 65 20 4e 4f 4c 4f | 47 49 4e 20 69 66 20 79 |ine NOLO|GIN if y|
|00003c60| 6f 75 20 77 61 6e 74 20 | 69 74 20 74 6f 20 62 65 |ou want |it to be|
|00003c70| 20 61 6e 20 73 75 2d 6f | 6e 6c 79 20 61 63 63 6f | an su-o|nly acco|
|00003c80| 75 6e 74 2e 0a 58 20 2a | 2f 0a 58 0a 58 23 64 65 |unt..X *|/.X.X#de|
|00003c90| 66 69 6e 65 09 4e 4f 55 | 53 45 09 22 4e 4f 55 53 |fine.NOU|SE."NOUS|
|00003ca0| 45 22 0a 58 23 64 65 66 | 69 6e 65 09 4e 4f 4c 4f |E".X#def|ine.NOLO|
|00003cb0| 47 49 4e 09 22 4e 4f 4c | 4f 47 49 4e 22 0a 58 0a |GIN."NOL|OGIN".X.|
|00003cc0| 58 2f 2a 0a 58 20 2a 20 | 44 65 66 69 6e 65 20 4d |X/*.X * |Define M|
|00003cd0| 4f 54 44 20 69 66 20 79 | 6f 75 20 77 61 6e 74 20 |OTD if y|ou want |
|00003ce0| 74 68 65 20 6d 65 73 73 | 61 67 65 20 6f 66 20 74 |the mess|age of t|
|00003cf0| 68 65 20 64 61 79 20 28 | 2f 65 74 63 2f 6d 6f 74 |he day (|/etc/mot|
|00003d00| 64 29 20 70 72 69 6e 74 | 65 64 0a 58 20 2a 20 61 |d) print|ed.X * a|
|00003d10| 74 20 6c 6f 67 69 6e 20 | 74 69 6d 65 2e 0a 58 20 |t login |time..X |
|00003d20| 2a 2f 0a 58 0a 58 23 64 | 65 66 69 6e 65 09 4d 4f |*/.X.X#d|efine.MO|
|00003d30| 54 44 0a 58 0a 58 2f 2a | 0a 58 20 2a 20 44 65 66 |TD.X.X/*|.X * Def|
|00003d40| 69 6e 65 20 48 55 53 48 | 4c 4f 47 49 4e 20 69 66 |ine HUSH|LOGIN if|
|00003d50| 20 79 6f 75 20 77 61 6e | 74 20 74 68 65 20 63 6f | you wan|t the co|
|00003d60| 64 65 20 61 64 64 65 64 | 20 74 6f 20 61 76 6f 69 |de added| to avoi|
|00003d70| 64 20 70 72 69 6e 74 69 | 6e 67 20 74 68 65 0a 58 |d printi|ng the.X|
|00003d80| 20 2a 20 6d 6f 74 64 20 | 69 66 20 61 20 66 69 6c | * motd |if a fil|
|00003d90| 65 20 24 48 4f 4d 45 2f | 2e 68 75 73 68 6c 6f 67 |e $HOME/|.hushlog|
|00003da0| 69 6e 20 65 78 69 73 74 | 73 2e 20 20 54 68 69 73 |in exist|s. This|
|00003db0| 20 6f 62 76 69 6f 75 73 | 6c 79 20 6f 6e 6c 79 20 | obvious|ly only |
|00003dc0| 6d 61 74 74 65 72 73 0a | 58 20 2a 20 69 66 20 61 |matters.|X * if a|
|00003dd0| 6e 79 20 6f 66 20 4d 4f | 54 44 2c 20 4d 41 49 4c |ny of MO|TD, MAIL|
|00003de0| 43 48 45 43 4b 20 6f 72 | 20 4c 41 53 54 4c 4f 47 |CHECK or| LASTLOG|
|00003df0| 20 61 72 65 20 23 64 65 | 66 69 6e 65 27 64 2e 0a | are #de|fine'd..|
|00003e00| 58 20 2a 2f 0a 58 0a 58 | 23 64 65 66 69 6e 65 09 |X */.X.X|#define.|
|00003e10| 48 55 53 48 4c 4f 47 49 | 4e 0a 58 0a 58 2f 2a 0a |HUSHLOGI|N.X.X/*.|
|00003e20| 58 20 2a 20 44 65 66 69 | 6e 65 20 4c 41 53 54 4c |X * Defi|ne LASTL|
|00003e30| 4f 47 20 69 66 20 79 6f | 75 20 77 61 6e 74 20 61 |OG if yo|u want a|
|00003e40| 20 72 65 63 6f 72 64 20 | 6d 61 64 65 20 6f 66 20 | record |made of |
|00003e50| 6c 6f 67 69 6e 73 20 69 | 6e 20 2f 75 73 72 2f 61 |logins i|n /usr/a|
|00003e60| 64 6d 2f 6c 61 73 74 6c | 6f 67 2e 0a 58 20 2a 2f |dm/lastl|og..X */|
|00003e70| 0a 58 0a 58 23 64 65 66 | 69 6e 65 09 4c 41 53 54 |.X.X#def|ine.LAST|
|00003e80| 4c 4f 47 0a 58 0a 58 2f | 2a 0a 58 20 2a 20 44 65 |LOG.X.X/|*.X * De|
|00003e90| 66 69 6e 65 20 46 41 49 | 4c 4c 4f 47 20 69 66 20 |fine FAI|LLOG if |
|00003ea0| 79 6f 75 20 77 61 6e 74 | 20 61 20 72 65 63 6f 72 |you want| a recor|
|00003eb0| 64 20 6d 61 6b 65 20 6f | 66 20 66 61 69 6c 65 64 |d make o|f failed|
|00003ec0| 20 6c 6f 67 69 6e 73 20 | 69 6e 0a 58 20 2a 20 2f | logins |in.X * /|
|00003ed0| 75 73 72 2f 61 64 6d 2f | 66 61 69 6c 6c 6f 67 2e |usr/adm/|faillog.|
|00003ee0| 20 20 53 65 65 20 66 61 | 69 6c 6c 6f 67 2e 68 20 | See fa|illog.h |
|00003ef0| 66 6f 72 20 6d 6f 72 65 | 20 64 65 74 61 69 6c 73 |for more| details|
|00003f00| 2e 20 20 53 65 65 20 66 | 61 69 6c 28 31 4c 29 0a |. See f|ail(1L).|
|00003f10| 58 20 2a 20 66 6f 72 20 | 65 76 65 6e 20 73 74 69 |X * for |even sti|
|00003f20| 6c 6c 20 6d 6f 72 65 20 | 64 65 74 61 69 6c 73 20 |ll more |details |
|00003f30| 2e 2e 2e 20 20 41 6c 73 | 6f 2c 20 64 65 66 69 6e |... Als|o, defin|
|00003f40| 65 20 46 54 4d 50 20 74 | 6f 20 72 65 63 6f 72 64 |e FTMP t|o record|
|00003f50| 20 75 74 6d 70 0a 58 20 | 2a 20 73 74 79 6c 65 20 | utmp.X |* style |
|00003f60| 72 65 63 6f 72 64 73 20 | 66 6f 72 20 66 61 69 6c |records |for fail|
|00003f70| 65 64 20 6c 6f 67 69 6e | 73 2e 20 20 46 54 4d 50 |ed login|s. FTMP|
|00003f80| 20 69 73 20 74 68 65 20 | 6e 61 6d 65 20 6f 66 20 | is the |name of |
|00003f90| 61 20 75 74 6d 70 2d 6c | 69 6b 65 0a 58 20 2a 20 |a utmp-l|ike.X * |
|00003fa0| 66 69 6c 65 2e 20 20 59 | 6f 75 20 63 61 6e 20 75 |file. Y|ou can u|
|00003fb0| 73 65 20 77 68 6f 28 31 | 29 20 69 6e 73 74 65 61 |se who(1|) instea|
|00003fc0| 64 20 6f 66 20 66 61 69 | 6c 6c 6f 67 28 4c 29 2c |d of fai|llog(L),|
|00003fd0| 20 77 68 69 63 68 20 69 | 73 20 61 6e 0a 58 20 2a | which i|s an.X *|
|00003fe0| 20 61 64 76 61 6e 74 61 | 67 65 2e 20 20 44 65 66 | advanta|ge. Def|
|00003ff0| 69 6e 65 20 55 4e 4b 4e | 4f 57 4e 53 20 69 66 20 |ine UNKN|OWNS if |
|00004000| 79 6f 75 20 64 6f 20 77 | 61 6e 74 20 75 6e 6b 6e |you do w|ant unkn|
|00004010| 6f 77 6e 20 75 73 65 72 | 20 6e 61 6d 65 73 0a 58 |own user| names.X|
|00004020| 20 2a 20 72 65 63 6f 72 | 64 65 64 2e 20 20 54 68 | * recor|ded. Th|
|00004030| 69 73 20 63 61 6e 20 62 | 65 20 61 20 73 65 63 75 |is can b|e a secu|
|00004040| 72 69 74 79 20 68 6f 6c | 65 20 73 69 6e 63 65 20 |rity hol|e since |
|00004050| 70 61 73 73 77 6f 72 64 | 73 20 61 72 65 20 6f 66 |password|s are of|
|00004060| 74 65 6e 0a 58 20 2a 20 | 65 6e 74 65 72 65 64 20 |ten.X * |entered |
|00004070| 6d 69 73 74 61 6b 65 6e | 6c 79 20 61 73 20 75 73 |mistaken|ly as us|
|00004080| 65 72 20 6e 61 6d 65 73 | 2e 0a 58 20 2a 2f 0a 58 |er names|..X */.X|
|00004090| 0a 58 23 64 65 66 69 6e | 65 09 46 41 49 4c 4c 4f |.X#defin|e.FAILLO|
|000040a0| 47 0a 58 23 64 65 66 69 | 6e 65 09 46 54 4d 50 09 |G.X#defi|ne.FTMP.|
|000040b0| 22 2f 65 74 63 2f 66 74 | 6d 70 22 0a 58 23 64 65 |"/etc/ft|mp".X#de|
|000040c0| 66 69 6e 65 09 55 4e 4b | 4e 4f 57 4e 53 0a 58 0a |fine.UNK|NOWNS.X.|
|000040d0| 58 2f 2a 0a 58 20 2a 20 | 44 65 66 69 6e 65 20 54 |X/*.X * |Define T|
|000040e0| 54 59 50 45 52 4d 20 74 | 6f 20 62 65 20 74 68 65 |TYPERM t|o be the|
|000040f0| 20 69 6e 69 74 69 61 6c | 20 74 65 72 6d 69 6e 61 | initial| termina|
|00004100| 6c 20 70 65 72 6d 69 73 | 73 69 6f 6e 73 2e 20 20 |l permis|sions. |
|00004110| 44 65 66 69 6e 69 6e 67 | 0a 58 20 2a 20 61 73 20 |Defining|.X * as |
|00004120| 30 36 30 30 20 77 69 6c | 6c 20 6e 6f 74 20 61 6c |0600 wil|l not al|
|00004130| 6c 6f 77 20 6d 65 73 73 | 61 67 65 73 2c 20 30 36 |low mess|ages, 06|
|00004140| 32 32 20 77 69 6c 6c 2e | 0a 58 20 2a 2f 0a 58 0a |22 will.|.X */.X.|
|00004150| 58 23 64 65 66 69 6e 65 | 09 54 54 59 50 45 52 4d |X#define|.TTYPERM|
|00004160| 09 30 36 30 30 0a 58 0a | 58 2f 2a 0a 58 20 2a 20 |.0600.X.|X/*.X * |
|00004170| 44 65 66 69 6e 65 20 54 | 54 59 54 59 50 45 20 74 |Define T|TYTYPE t|
|00004180| 6f 20 74 68 65 20 62 65 | 20 6e 61 6d 65 20 6f 66 |o the be| name of|
|00004190| 20 74 68 65 20 70 6f 72 | 74 20 74 6f 20 74 65 72 | the por|t to ter|
|000041a0| 6d 69 6e 61 6c 20 74 79 | 70 65 0a 58 20 2a 20 6d |minal ty|pe.X * m|
|000041b0| 61 70 70 69 6e 67 20 66 | 69 6c 65 2e 20 20 54 68 |apping f|ile. Th|
|000041c0| 69 73 20 69 73 20 75 73 | 65 64 20 74 6f 20 73 65 |is is us|ed to se|
|000041d0| 74 20 74 68 65 20 65 6e | 76 69 72 6f 6e 6d 65 6e |t the en|vironmen|
|000041e0| 74 61 6c 20 76 61 72 69 | 61 62 6c 65 0a 58 20 2a |tal vari|able.X *|
|000041f0| 20 22 54 45 52 4d 22 20 | 74 6f 20 74 68 65 20 63 | "TERM" |to the c|
|00004200| 6f 72 72 65 63 74 20 74 | 65 72 6d 69 6e 61 6c 20 |orrect t|erminal |
|00004210| 74 79 70 65 2e 0a 58 20 | 2a 2f 0a 58 0a 58 23 64 |type..X |*/.X.X#d|
|00004220| 65 66 69 6e 65 09 54 54 | 59 54 59 50 45 09 22 2f |efine.TT|YTYPE."/|
|00004230| 65 74 63 2f 74 74 79 74 | 79 70 65 22 0a 58 0a 58 |etc/ttyt|ype".X.X|
|00004240| 2f 2a 0a 58 20 2a 20 44 | 65 66 69 6e 65 20 51 55 |/*.X * D|efine QU|
|00004250| 4f 54 41 53 20 69 66 20 | 79 6f 75 20 77 61 6e 74 |OTAS if |you want|
|00004260| 20 74 68 65 20 63 6f 64 | 65 20 61 64 64 65 64 20 | the cod|e added |
|00004270| 69 6e 20 73 65 74 75 70 | 2e 63 20 74 6f 20 73 75 |in setup|.c to su|
|00004280| 70 70 6f 72 74 0a 58 20 | 2a 20 66 69 6c 65 20 75 |pport.X |* file u|
|00004290| 6c 69 6d 69 74 20 61 6e | 64 20 6e 69 63 65 20 5b |limit an|d nice [|
|000042a0| 20 61 6e 64 20 75 6d 61 | 73 6b 20 61 73 20 77 65 | and uma|sk as we|
|000042b0| 6c 6c 20 5d 20 73 65 74 | 74 69 6e 67 20 66 72 6f |ll ] set|ting fro|
|000042c0| 6d 20 74 68 65 20 70 61 | 73 73 77 6f 72 64 0a 58 |m the pa|ssword.X|
|000042d0| 20 2a 20 66 69 6c 65 2e | 0a 58 20 2a 2f 0a 58 0a | * file.|.X */.X.|
|000042e0| 58 23 64 65 66 69 6e 65 | 09 51 55 4f 54 41 53 0a |X#define|.QUOTAS.|
|000042f0| 58 0a 58 2f 2a 0a 58 20 | 2a 20 50 69 63 6b 20 79 |X.X/*.X |* Pick y|
|00004300| 6f 75 72 20 76 65 72 73 | 69 6f 6e 20 6f 66 20 44 |our vers|ion of D|
|00004310| 42 4d 2e 20 20 4f 6e 6c | 79 20 44 42 4d 20 69 73 |BM. Onl|y DBM is|
|00004320| 20 70 72 65 73 65 6e 74 | 6c 79 20 73 75 70 70 6f | present|ly suppo|
|00004330| 72 74 65 64 2c 20 4e 44 | 42 4d 20 77 69 6c 6c 0a |rted, ND|BM will.|
|00004340| 58 20 2a 20 66 6f 6c 6c | 6f 77 2e 20 20 59 6f 75 |X * foll|ow. You|
|00004350| 20 6d 75 73 74 20 61 6c | 73 6f 20 64 65 66 69 6e | must al|so defin|
|00004360| 65 20 74 68 65 20 47 45 | 54 50 57 45 4e 54 20 6d |e the GE|TPWENT m|
|00004370| 61 63 72 6f 20 62 65 6c | 6f 77 2e 0a 58 20 2a 2f |acro bel|ow..X */|
|00004380| 0a 58 0a 58 23 64 65 66 | 69 6e 65 09 44 42 4d 0a |.X.X#def|ine.DBM.|
|00004390| 58 0a 58 2f 2a 0a 58 20 | 2a 20 44 65 66 69 6e 65 |X.X/*.X |* Define|
|000043a0| 20 66 69 6c 65 20 6e 61 | 6d 65 20 66 6f 72 20 73 | file na|me for s|
|000043b0| 75 6c 6f 67 2e 20 20 49 | 66 20 53 55 4c 4f 47 20 |ulog. I|f SULOG |
|000043c0| 69 73 20 6e 6f 74 20 64 | 65 66 69 6e 65 64 2c 20 |is not d|efined, |
|000043d0| 74 68 65 72 65 20 77 69 | 6c 6c 20 62 65 0a 58 20 |there wi|ll be.X |
|000043e0| 2a 20 6e 6f 20 6c 6f 67 | 67 69 6e 67 2e 20 20 54 |* no log|ging. T|
|000043f0| 68 69 73 20 69 73 20 4e | 4f 54 20 61 20 67 6f 6f |his is N|OT a goo|
|00004400| 64 20 69 64 65 61 20 2e | 2e 2e 20 20 57 65 20 61 |d idea .|.. We a|
|00004410| 6c 73 6f 20 64 65 66 69 | 6e 65 20 6f 74 68 65 72 |lso defi|ne other|
|00004420| 20 66 69 6c 65 0a 58 20 | 2a 20 6e 61 6d 65 73 2e | file.X |* names.|
|00004430| 0a 58 20 2a 2f 0a 58 0a | 58 23 64 65 66 69 6e 65 |.X */.X.|X#define|
|00004440| 09 53 55 4c 4f 47 09 22 | 2f 75 73 72 2f 61 64 6d |.SULOG."|/usr/adm|
|00004450| 2f 73 75 6c 6f 67 22 0a | 58 23 64 65 66 69 6e 65 |/sulog".|X#define|
|00004460| 09 53 55 43 4f 4e 09 22 | 2f 64 65 76 2f 63 6f 6e |.SUCON."|/dev/con|
|00004470| 73 6f 6c 65 22 0a 58 23 | 64 65 66 69 6e 65 09 50 |sole".X#|define.P|
|00004480| 57 44 46 49 4c 45 09 22 | 2f 65 74 63 2f 70 61 73 |WDFILE."|/etc/pas|
|00004490| 73 77 64 22 0a 58 23 64 | 65 66 69 6e 65 09 4f 50 |swd".X#d|efine.OP|
|000044a0| 57 44 46 49 4c 45 20 22 | 2f 65 74 63 2f 2d 70 61 |WDFILE "|/etc/-pa|
|000044b0| 73 73 77 64 22 0a 58 23 | 64 65 66 69 6e 65 09 4e |sswd".X#|define.N|
|000044c0| 50 57 44 46 49 4c 45 20 | 22 2f 65 74 63 2f 6e 70 |PWDFILE |"/etc/np|
|000044d0| 61 73 73 77 64 22 0a 58 | 23 64 65 66 69 6e 65 09 |asswd".X|#define.|
|000044e0| 4f 53 48 41 44 4f 57 20 | 22 2f 65 74 63 2f 2d 73 |OSHADOW |"/etc/-s|
|000044f0| 68 61 64 6f 77 22 0a 58 | 23 64 65 66 69 6e 65 09 |hadow".X|#define.|
|00004500| 4e 53 48 41 44 4f 57 20 | 22 2f 65 74 63 2f 6e 73 |NSHADOW |"/etc/ns|
|00004510| 68 61 64 6f 77 22 0a 58 | 23 64 65 66 69 6e 65 09 |hadow".X|#define.|
|00004520| 47 52 50 46 49 4c 45 09 | 22 2f 65 74 63 2f 67 72 |GRPFILE.|"/etc/gr|
|00004530| 6f 75 70 22 0a 58 23 64 | 65 66 69 6e 65 09 4f 47 |oup".X#d|efine.OG|
|00004540| 52 50 46 49 4c 45 20 22 | 2f 65 74 63 2f 2d 67 72 |RPFILE "|/etc/-gr|
|00004550| 6f 75 70 22 0a 58 23 64 | 65 66 69 6e 65 09 4e 47 |oup".X#d|efine.NG|
|00004560| 52 50 46 49 4c 45 20 22 | 2f 65 74 63 2f 6e 67 72 |RPFILE "|/etc/ngr|
|00004570| 6f 75 70 22 0a 58 0a 58 | 2f 2a 0a 58 20 2a 20 44 |oup".X.X|/*.X * D|
|00004580| 65 66 69 6e 65 20 50 57 | 44 4c 4f 43 4b 20 74 6f |efine PW|DLOCK to|
|00004590| 20 62 65 20 61 20 6c 6f | 63 6b 69 6e 67 20 73 65 | be a lo|cking se|
|000045a0| 6d 61 70 68 6f 72 65 20 | 66 6f 72 20 75 70 64 61 |maphore |for upda|
|000045b0| 74 69 6e 67 20 74 68 65 | 20 70 61 73 73 77 6f 72 |ting the| passwor|
|000045c0| 64 0a 58 20 2a 20 66 69 | 6c 65 2e 20 20 47 52 50 |d.X * fi|le. GRP|
|000045d0| 4c 4f 43 4b 20 69 73 20 | 74 68 65 20 73 61 6d 65 |LOCK is |the same|
|000045e0| 20 66 6f 72 20 74 68 65 | 20 67 72 6f 75 70 20 66 | for the| group f|
|000045f0| 69 6c 65 2e 0a 58 20 2a | 2f 0a 58 0a 58 23 64 65 |ile..X *|/.X.X#de|
|00004600| 66 69 6e 65 09 50 57 44 | 4c 4f 43 4b 09 22 2f 65 |fine.PWD|LOCK."/e|
|00004610| 74 63 2f 2e 70 77 64 6c | 6f 63 6b 22 0a 58 23 64 |tc/.pwdl|ock".X#d|
|00004620| 65 66 69 6e 65 09 47 52 | 50 4c 4f 43 4b 20 22 2f |efine.GR|PLOCK "/|
|00004630| 65 74 63 2f 2e 67 72 70 | 6c 6f 63 6b 22 0a 58 0a |etc/.grp|lock".X.|
|00004640| 58 2f 2a 0a 58 20 2a 20 | 57 69 65 72 64 20 73 74 |X/*.X * |Wierd st|
|00004650| 75 66 66 20 66 6f 6c 6c | 6f 77 73 20 2e 2e 2e 0a |uff foll|ows ....|
|00004660| 58 20 2a 0a 58 20 2a 09 | 54 68 65 20 66 6f 6c 6c |X *.X *.|The foll|
|00004670| 6f 77 69 6e 67 20 6d 61 | 63 72 6f 73 20 65 78 69 |owing ma|cros exi|
|00004680| 73 74 20 73 6f 6c 65 6c | 79 20 74 6f 20 6f 76 65 |st solel|y to ove|
|00004690| 72 72 69 64 65 20 73 74 | 75 66 66 20 2e 2e 2e 0a |rride st|uff ....|
|000046a0| 58 20 2a 09 59 6f 75 20 | 77 69 6c 6c 20 70 72 6f |X *.You |will pro|
|000046b0| 62 61 62 6c 79 20 77 61 | 6e 74 20 74 6f 20 63 68 |bably wa|nt to ch|
|000046c0| 61 6e 67 65 20 74 68 65 | 69 72 20 76 61 6c 75 65 |ange the|ir value|
|000046d0| 73 20 74 6f 20 73 75 69 | 74 20 79 6f 75 72 0a 58 |s to sui|t your.X|
|000046e0| 20 2a 09 66 61 6e 63 79 | 2e 0a 58 20 2a 2f 0a 58 | *.fancy|..X */.X|
|000046f0| 0a 58 23 64 65 66 69 6e | 65 09 45 52 41 53 45 43 |.X#defin|e.ERASEC|
|00004700| 48 41 52 09 27 5c 62 27 | 0a 58 23 64 65 66 69 6e |HAR.'\b'|.X#defin|
|00004710| 65 09 4b 49 4c 4c 43 48 | 41 52 09 27 5c 30 32 35 |e.KILLCH|AR.'\025|
|00004720| 27 0a 58 23 64 65 66 69 | 6e 65 09 55 4d 41 53 4b |'.X#defi|ne.UMASK|
|00004730| 09 09 30 32 32 0a 58 0a | 58 23 64 65 66 69 6e 65 |..022.X.|X#define|
|00004740| 09 55 4c 49 4d 49 54 09 | 28 31 4c 3c 3c 32 30 29 |.ULIMIT.|(1L<<20)|
|00004750| 20 2f 2a 20 44 65 66 69 | 6e 65 20 69 66 20 79 6f | /* Defi|ne if yo|
|00004760| 75 72 20 55 4e 49 58 20 | 73 75 70 70 6f 72 74 73 |ur UNIX |supports|
|00004770| 20 75 6c 69 6d 69 74 28 | 29 20 2a 2f 0a 58 23 64 | ulimit(|) */.X#d|
|00004780| 65 66 69 6e 65 09 46 47 | 45 54 50 57 45 4e 54 09 |efine.FG|ETPWENT.|
|00004790| 2f 2a 20 44 65 66 69 6e | 65 20 69 66 20 6c 69 62 |/* Defin|e if lib|
|000047a0| 72 61 72 79 20 64 6f 65 | 73 20 6e 6f 74 20 69 6e |rary doe|s not in|
|000047b0| 63 6c 75 64 65 20 46 47 | 45 54 50 57 45 4e 54 20 |clude FG|ETPWENT |
|000047c0| 2a 2f 0a 58 23 64 65 66 | 69 6e 65 09 47 45 54 50 |*/.X#def|ine.GETP|
|000047d0| 57 45 4e 54 09 2f 2a 20 | 44 65 66 69 6e 65 20 69 |WENT./* |Define i|
|000047e0| 66 20 79 6f 75 20 77 61 | 6e 74 20 6d 79 20 47 45 |f you wa|nt my GE|
|000047f0| 54 50 57 45 4e 54 28 33 | 29 20 72 6f 75 74 69 6e |TPWENT(3|) routin|
|00004800| 65 73 20 2a 2f 0a 58 23 | 64 65 66 69 6e 65 09 4e |es */.X#|define.N|
|00004810| 45 45 44 5f 41 4c 36 34 | 09 2f 2a 20 44 65 66 69 |EED_AL64|./* Defi|
|00004820| 6e 65 20 69 66 20 6c 69 | 62 72 61 72 79 20 64 6f |ne if li|brary do|
|00004830| 65 73 20 6e 6f 74 20 69 | 6e 63 6c 75 64 65 20 61 |es not i|nclude a|
|00004840| 36 34 6c 28 29 20 2a 2f | 0a 53 48 41 52 5f 45 4f |64l() */|.SHAR_EO|
|00004850| 46 0a 69 66 20 74 65 73 | 74 20 36 30 35 30 20 2d |F.if tes|t 6050 -|
|00004860| 6e 65 20 22 60 77 63 20 | 2d 63 20 3c 20 27 63 6f |ne "`wc |-c < 'co|
|00004870| 6e 66 69 67 2e 68 27 60 | 22 0a 74 68 65 6e 0a 09 |nfig.h'`|".then..|
|00004880| 65 63 68 6f 20 73 68 61 | 72 3a 20 22 65 72 72 6f |echo sha|r: "erro|
|00004890| 72 20 74 72 61 6e 73 6d | 69 74 74 69 6e 67 20 27 |r transm|itting '|
|000048a0| 63 6f 6e 66 69 67 2e 68 | 27 22 20 27 28 73 68 6f |config.h|'" '(sho|
|000048b0| 75 6c 64 20 68 61 76 65 | 20 62 65 65 6e 20 36 30 |uld have| been 60|
|000048c0| 35 30 20 63 68 61 72 61 | 63 74 65 72 73 29 27 0a |50 chara|cters)'.|
|000048d0| 66 69 0a 66 69 0a 65 63 | 68 6f 20 73 68 61 72 3a |fi.fi.ec|ho shar:|
|000048e0| 20 22 65 78 74 72 61 63 | 74 69 6e 67 20 27 73 68 | "extrac|ting 'sh|
|000048f0| 61 64 6f 77 2e 68 27 22 | 20 27 28 38 35 32 20 63 |adow.h'"| '(852 c|
|00004900| 68 61 72 61 63 74 65 72 | 73 29 27 0a 69 66 20 74 |haracter|s)'.if t|
|00004910| 65 73 74 20 2d 66 20 27 | 73 68 61 64 6f 77 2e 68 |est -f '|shadow.h|
|00004920| 27 0a 74 68 65 6e 0a 09 | 65 63 68 6f 20 73 68 61 |'.then..|echo sha|
|00004930| 72 3a 20 22 77 69 6c 6c | 20 6e 6f 74 20 6f 76 65 |r: "will| not ove|
|00004940| 72 2d 77 72 69 74 65 20 | 65 78 69 73 74 69 6e 67 |r-write |existing|
|00004950| 20 66 69 6c 65 20 27 73 | 68 61 64 6f 77 2e 68 27 | file 's|hadow.h'|
|00004960| 22 0a 65 6c 73 65 0a 73 | 65 64 20 27 73 2f 5e 58 |".else.s|ed 's/^X|
|00004970| 2f 2f 27 20 3c 3c 20 5c | 53 48 41 52 5f 45 4f 46 |//' << \|SHAR_EOF|
|00004980| 20 3e 20 27 73 68 61 64 | 6f 77 2e 68 27 0a 58 2f | > 'shad|ow.h'.X/|
|00004990| 2a 0a 58 20 2a 20 43 6f | 70 79 72 69 67 68 74 20 |*.X * Co|pyright |
|000049a0| 31 39 38 38 2c 20 31 39 | 38 39 2c 20 31 39 39 30 |1988, 19|89, 1990|
|000049b0| 2c 20 4a 6f 68 6e 20 46 | 2e 20 48 61 75 67 68 20 |, John F|. Haugh |
|000049c0| 49 49 0a 58 20 2a 20 41 | 6c 6c 20 72 69 67 68 74 |II.X * A|ll right|
|000049d0| 73 20 72 65 73 65 72 76 | 65 64 2e 0a 58 20 2a 0a |s reserv|ed..X *.|
|000049e0| 58 20 2a 20 55 73 65 2c | 20 64 75 70 6c 69 63 61 |X * Use,| duplica|
|000049f0| 74 69 6f 6e 2c 20 61 6e | 64 20 64 69 73 63 6c 6f |tion, an|d disclo|
|00004a00| 73 75 72 65 20 70 72 6f | 68 69 62 69 74 65 64 20 |sure pro|hibited |
|00004a10| 77 69 74 68 6f 75 74 0a | 58 20 2a 20 74 68 65 20 |without.|X * the |
|00004a20| 65 78 70 72 65 73 73 20 | 77 72 69 74 74 65 6e 20 |express |written |
|00004a30| 70 65 72 6d 69 73 73 69 | 6f 6e 20 6f 66 20 74 68 |permissi|on of th|
|00004a40| 65 20 61 75 74 68 6f 72 | 2e 0a 58 20 2a 2f 0a 58 |e author|..X */.X|
|00004a50| 0a 58 2f 2a 0a 58 20 2a | 20 54 68 69 73 20 69 6e |.X/*.X *| This in|
|00004a60| 66 6f 72 6d 61 74 69 6f | 6e 20 69 73 20 6e 6f 74 |formatio|n is not|
|00004a70| 20 64 65 72 69 76 65 64 | 20 66 72 6f 6d 20 41 54 | derived| from AT|
|00004a80| 26 54 20 6c 69 63 65 6e | 73 65 64 20 73 6f 75 72 |&T licen|sed sour|
|00004a90| 63 65 73 2e 20 20 50 6f | 73 74 65 64 0a 58 20 2a |ces. Po|sted.X *|
|00004aa0| 20 74 6f 20 74 68 65 20 | 55 53 45 4e 45 54 20 31 | to the |USENET 1|
|00004ab0| 31 2f 38 38 2e 0a 58 20 | 2a 0a 58 20 2a 09 40 28 |1/88..X |*.X *.@(|
|00004ac0| 23 29 73 68 61 64 6f 77 | 2e 68 09 32 2e 32 09 31 |#)shadow|.h.2.2.1|
|00004ad0| 39 3a 32 34 3a 31 33 09 | 37 2f 32 39 2f 39 30 0a |9:24:13.|7/29/90.|
|00004ae0| 58 20 2a 2f 0a 58 0a 58 | 2f 2a 0a 58 20 2a 20 53 |X */.X.X|/*.X * S|
|00004af0| 68 61 64 6f 77 20 70 61 | 73 73 77 6f 72 64 20 73 |hadow pa|ssword s|
|00004b00| 65 63 75 72 69 74 79 20 | 66 69 6c 65 20 73 74 72 |ecurity |file str|
|00004b10| 75 63 74 75 72 65 2e 0a | 58 20 2a 2f 0a 58 0a 58 |ucture..|X */.X.X|
|00004b20| 73 74 72 75 63 74 09 73 | 70 77 64 20 7b 0a 58 09 |struct.s|pwd {.X.|
|00004b30| 63 68 61 72 09 2a 73 70 | 5f 6e 61 6d 70 3b 09 2f |char.*sp|_namp;./|
|00004b40| 2a 20 6c 6f 67 69 6e 20 | 6e 61 6d 65 20 2a 2f 0a |* login |name */.|
|00004b50| 58 09 63 68 61 72 09 2a | 73 70 5f 70 77 64 70 3b |X.char.*|sp_pwdp;|
|00004b60| 09 2f 2a 20 65 6e 63 72 | 79 70 74 65 64 20 70 61 |./* encr|ypted pa|
|00004b70| 73 73 77 6f 72 64 20 2a | 2f 0a 58 09 6c 6f 6e 67 |ssword *|/.X.long|
|00004b80| 09 73 70 5f 6c 73 74 63 | 68 67 3b 09 2f 2a 20 64 |.sp_lstc|hg;./* d|
|00004b90| 61 74 65 20 6f 66 20 6c | 61 73 74 20 63 68 61 6e |ate of l|ast chan|
|00004ba0| 67 65 20 2a 2f 0a 58 09 | 6c 6f 6e 67 09 73 70 5f |ge */.X.|long.sp_|
|00004bb0| 6d 61 78 3b 09 09 2f 2a | 20 6d 61 78 69 6d 75 6d |max;../*| maximum|
|00004bc0| 20 6e 75 6d 62 65 72 20 | 6f 66 20 64 61 79 73 20 | number |of days |
|00004bd0| 62 65 74 77 65 65 6e 20 | 63 68 61 6e 67 65 73 20 |between |changes |
|00004be0| 2a 2f 0a 58 09 6c 6f 6e | 67 09 73 70 5f 6d 69 6e |*/.X.lon|g.sp_min|
|00004bf0| 3b 09 09 2f 2a 20 6d 69 | 6e 69 6d 75 6d 20 6e 75 |;../* mi|nimum nu|
|00004c00| 6d 62 65 72 20 6f 66 20 | 64 61 79 73 20 62 65 74 |mber of |days bet|
|00004c10| 77 65 65 6e 20 63 68 61 | 6e 67 65 73 20 2a 2f 0a |ween cha|nges */.|
|00004c20| 58 7d 3b 0a 58 0a 58 2f | 2a 0a 58 20 2a 20 53 68 |X};.X.X/|*.X * Sh|
|00004c30| 61 64 6f 77 20 70 61 73 | 73 77 6f 72 64 20 73 65 |adow pas|sword se|
|00004c40| 63 75 72 69 74 79 20 66 | 69 6c 65 20 66 75 6e 63 |curity f|ile func|
|00004c50| 74 69 6f 6e 73 2e 0a 58 | 20 2a 2f 0a 58 0a 58 73 |tions..X| */.X.Xs|
|00004c60| 74 72 75 63 74 09 73 70 | 77 64 09 2a 67 65 74 73 |truct.sp|wd.*gets|
|00004c70| 70 65 6e 74 20 28 29 3b | 0a 58 73 74 72 75 63 74 |pent ();|.Xstruct|
|00004c80| 09 73 70 77 64 09 2a 67 | 65 74 73 70 6e 61 6d 20 |.spwd.*g|etspnam |
|00004c90| 28 29 3b 0a 58 76 6f 69 | 64 09 73 65 74 73 70 65 |();.Xvoi|d.setspe|
|00004ca0| 6e 74 20 28 29 3b 0a 58 | 76 6f 69 64 09 65 6e 64 |nt ();.X|void.end|
|00004cb0| 73 70 65 6e 74 20 28 29 | 3b 0a 58 73 74 72 75 63 |spent ()|;.Xstruc|
|00004cc0| 74 09 73 70 77 64 09 2a | 66 67 65 74 73 70 65 6e |t.spwd.*|fgetspen|
|00004cd0| 74 20 28 29 3b 0a 58 69 | 6e 74 09 70 75 74 73 70 |t ();.Xi|nt.putsp|
|00004ce0| 65 6e 74 20 28 29 3b 0a | 58 0a 58 23 64 65 66 69 |ent ();.|X.X#defi|
|00004cf0| 6e 65 20 20 53 48 41 44 | 4f 57 20 22 2f 65 74 63 |ne SHAD|OW "/etc|
|00004d00| 2f 73 68 61 64 6f 77 22 | 0a 53 48 41 52 5f 45 4f |/shadow"|.SHAR_EO|
|00004d10| 46 0a 69 66 20 74 65 73 | 74 20 38 35 32 20 2d 6e |F.if tes|t 852 -n|
|00004d20| 65 20 22 60 77 63 20 2d | 63 20 3c 20 27 73 68 61 |e "`wc -|c < 'sha|
|00004d30| 64 6f 77 2e 68 27 60 22 | 0a 74 68 65 6e 0a 09 65 |dow.h'`"|.then..e|
|00004d40| 63 68 6f 20 73 68 61 72 | 3a 20 22 65 72 72 6f 72 |cho shar|: "error|
|00004d50| 20 74 72 61 6e 73 6d 69 | 74 74 69 6e 67 20 27 73 | transmi|tting 's|
|00004d60| 68 61 64 6f 77 2e 68 27 | 22 20 27 28 73 68 6f 75 |hadow.h'|" '(shou|
|00004d70| 6c 64 20 68 61 76 65 20 | 62 65 65 6e 20 38 35 32 |ld have |been 852|
|00004d80| 20 63 68 61 72 61 63 74 | 65 72 73 29 27 0a 66 69 | charact|ers)'.fi|
|00004d90| 0a 66 69 0a 65 63 68 6f | 20 73 68 61 72 3a 20 22 |.fi.echo| shar: "|
|00004da0| 65 78 74 72 61 63 74 69 | 6e 67 20 27 63 68 61 67 |extracti|ng 'chag|
|00004db0| 65 2e 63 27 22 20 27 28 | 39 33 37 34 20 63 68 61 |e.c'" '(|9374 cha|
|00004dc0| 72 61 63 74 65 72 73 29 | 27 0a 69 66 20 74 65 73 |racters)|'.if tes|
|00004dd0| 74 20 2d 66 20 27 63 68 | 61 67 65 2e 63 27 0a 74 |t -f 'ch|age.c'.t|
|00004de0| 68 65 6e 0a 09 65 63 68 | 6f 20 73 68 61 72 3a 20 |hen..ech|o shar: |
|00004df0| 22 77 69 6c 6c 20 6e 6f | 74 20 6f 76 65 72 2d 77 |"will no|t over-w|
|00004e00| 72 69 74 65 20 65 78 69 | 73 74 69 6e 67 20 66 69 |rite exi|sting fi|
|00004e10| 6c 65 20 27 63 68 61 67 | 65 2e 63 27 22 0a 65 6c |le 'chag|e.c'".el|
|00004e20| 73 65 0a 73 65 64 20 27 | 73 2f 5e 58 2f 2f 27 20 |se.sed '|s/^X//' |
|00004e30| 3c 3c 20 5c 53 48 41 52 | 5f 45 4f 46 20 3e 20 27 |<< \SHAR|_EOF > '|
|00004e40| 63 68 61 67 65 2e 63 27 | 0a 58 2f 2a 0a 58 20 2a |chage.c'|.X/*.X *|
|00004e50| 20 43 6f 70 79 72 69 67 | 68 74 20 31 39 38 39 2c | Copyrig|ht 1989,|
|00004e60| 20 31 39 39 30 2c 20 4a | 6f 68 6e 20 46 2e 20 48 | 1990, J|ohn F. H|
|00004e70| 61 75 67 68 20 49 49 0a | 58 20 2a 20 41 6c 6c 20 |augh II.|X * All |
|00004e80| 72 69 67 68 74 73 20 72 | 65 73 65 72 76 65 64 2e |rights r|eserved.|
|00004e90| 0a 58 20 2a 0a 58 20 2a | 20 55 73 65 2c 20 64 75 |.X *.X *| Use, du|
|00004ea0| 70 6c 69 63 61 74 69 6f | 6e 2c 20 61 6e 64 20 64 |plicatio|n, and d|
|00004eb0| 69 73 63 6c 6f 73 75 72 | 65 20 70 72 6f 68 69 62 |isclosur|e prohib|
|00004ec0| 69 74 65 64 20 77 69 74 | 68 6f 75 74 0a 58 20 2a |ited wit|hout.X *|
|00004ed0| 20 74 68 65 20 65 78 70 | 72 65 73 73 20 77 72 69 | the exp|ress wri|
|00004ee0| 74 74 65 6e 20 70 65 72 | 6d 69 73 73 69 6f 6e 20 |tten per|mission |
|00004ef0| 6f 66 20 74 68 65 20 61 | 75 74 68 6f 72 2e 0a 58 |of the a|uthor..X|
|00004f00| 20 2a 2f 0a 58 0a 58 23 | 69 6e 63 6c 75 64 65 20 | */.X.X#|include |
|00004f10| 3c 73 79 73 2f 74 79 70 | 65 73 2e 68 3e 0a 58 23 |<sys/typ|es.h>.X#|
|00004f20| 69 6e 63 6c 75 64 65 20 | 3c 73 74 64 69 6f 2e 68 |include |<stdio.h|
|00004f30| 3e 0a 58 23 69 6e 63 6c | 75 64 65 20 3c 70 77 64 |>.X#incl|ude <pwd|
|00004f40| 2e 68 3e 0a 58 23 69 6e | 63 6c 75 64 65 20 3c 66 |.h>.X#in|clude <f|
|00004f50| 63 6e 74 6c 2e 68 3e 0a | 58 23 69 6e 63 6c 75 64 |cntl.h>.|X#includ|
|00004f60| 65 20 3c 73 69 67 6e 61 | 6c 2e 68 3e 0a 58 23 69 |e <signa|l.h>.X#i|
|00004f70| 6e 63 6c 75 64 65 20 3c | 65 72 72 6e 6f 2e 68 3e |nclude <|errno.h>|
|00004f80| 0a 58 23 69 6e 63 6c 75 | 64 65 20 3c 63 74 79 70 |.X#inclu|de <ctyp|
|00004f90| 65 2e 68 3e 0a 58 23 69 | 66 6e 64 65 66 09 42 53 |e.h>.X#i|fndef.BS|
|00004fa0| 44 0a 58 23 69 6e 63 6c | 75 64 65 20 3c 73 74 72 |D.X#incl|ude <str|
|00004fb0| 69 6e 67 2e 68 3e 0a 58 | 23 69 6e 63 6c 75 64 65 |ing.h>.X|#include|
|00004fc0| 20 3c 6d 65 6d 6f 72 79 | 2e 68 3e 0a 58 23 65 6c | <memory|.h>.X#el|
|00004fd0| 73 65 0a 58 23 69 6e 63 | 6c 75 64 65 20 3c 73 74 |se.X#inc|lude <st|
|00004fe0| 72 69 6e 67 73 2e 68 3e | 0a 58 23 64 65 66 69 6e |rings.h>|.X#defin|
|00004ff0| 65 09 73 74 72 63 68 72 | 09 69 6e 64 65 78 0a 58 |e.strchr|.index.X|
|00005000| 23 64 65 66 69 6e 65 09 | 73 74 72 72 63 68 72 09 |#define.|strrchr.|
|00005010| 72 69 6e 64 65 78 0a 58 | 23 65 6e 64 69 66 0a 58 |rindex.X|#endif.X|
|00005020| 23 69 6e 63 6c 75 64 65 | 20 22 63 6f 6e 66 69 67 |#include| "config|
|00005030| 2e 68 22 0a 58 0a 58 23 | 69 66 64 65 66 09 53 48 |.h".X.X#|ifdef.SH|
|00005040| 41 44 4f 57 50 57 44 0a | 58 23 69 6e 63 6c 75 64 |ADOWPWD.|X#includ|
|00005050| 65 20 22 73 68 61 64 6f | 77 2e 68 22 0a 58 23 65 |e "shado|w.h".X#e|
|00005060| 6e 64 69 66 0a 58 23 69 | 66 64 65 66 09 44 42 4d |ndif.X#i|fdef.DBM|
|00005070| 0a 58 23 69 6e 63 6c 75 | 64 65 20 3c 64 62 6d 2e |.X#inclu|de <dbm.|
|00005080| 68 3e 0a 58 23 65 6e 64 | 69 66 0a 58 0a 58 23 69 |h>.X#end|if.X.X#i|
|00005090| 66 6e 64 65 66 09 6c 69 | 6e 74 0a 58 73 74 61 74 |fndef.li|nt.Xstat|
|000050a0| 69 63 09 63 68 61 72 09 | 5f 73 63 63 73 69 64 5b |ic.char.|_sccsid[|
|000050b0| 5d 20 3d 20 22 40 28 23 | 29 63 68 61 67 65 2e 63 |] = "@(#|)chage.c|
|000050c0| 09 32 2e 32 09 30 39 3a | 32 30 3a 35 37 09 38 2f |.2.2.09:|20:57.8/|
|000050d0| 32 33 2f 39 30 22 3b 0a | 58 23 65 6e 64 69 66 0a |23/90";.|X#endif.|
|000050e0| 58 0a 58 63 68 61 72 09 | 2a 6d 79 6e 61 6d 65 3b |X.Xchar.|*myname;|
|000050f0| 0a 58 0a 58 74 69 6d 65 | 5f 74 09 74 6f 64 61 79 |.X.Xtime|_t.today|
|00005100| 3b 0a 58 63 68 61 72 09 | 6e 61 6d 65 5b 42 55 46 |;.Xchar.|name[BUF|
|00005110| 53 49 5a 5d 3b 0a 58 63 | 68 61 72 09 6e 65 77 61 |SIZ];.Xc|har.newa|
|00005120| 67 65 5b 31 30 5d 3b 0a | 58 69 6e 74 09 6d 66 6c |ge[10];.|Xint.mfl|
|00005130| 67 3b 0a 58 69 6e 74 09 | 4d 66 6c 67 3b 0a 58 69 |g;.Xint.|Mflg;.Xi|
|00005140| 6e 74 09 64 66 6c 67 3b | 0a 58 0a 58 73 74 72 75 |nt.dflg;|.X.Xstru|
|00005150| 63 74 09 70 61 73 73 77 | 64 09 70 77 65 6e 74 3b |ct.passw|d.pwent;|
|00005160| 0a 58 23 69 66 64 65 66 | 09 53 48 41 44 4f 57 50 |.X#ifdef|.SHADOWP|
|00005170| 57 44 0a 58 73 74 72 75 | 63 74 09 73 70 77 64 09 |WD.Xstru|ct.spwd.|
|00005180| 73 70 77 64 3b 0a 58 23 | 65 6e 64 69 66 0a 58 69 |spwd;.X#|endif.Xi|
|00005190| 6e 74 09 6d 69 6e 64 61 | 79 73 3b 0a 58 69 6e 74 |nt.minda|ys;.Xint|
|000051a0| 09 6d 61 78 64 61 79 73 | 3b 0a 58 6c 6f 6e 67 09 |.maxdays|;.Xlong.|
|000051b0| 6c 61 73 74 64 61 79 3b | 0a 58 0a 58 65 78 74 65 |lastday;|.X.Xexte|
|000051c0| 72 6e 09 69 6e 74 09 65 | 72 72 6e 6f 3b 0a 58 0a |rn.int.e|rrno;.X.|
|000051d0| 58 63 68 61 72 09 55 73 | 61 67 65 5b 5d 20 3d 0a |Xchar.Us|age[] =.|
|000051e0| 58 22 55 73 61 67 65 3a | 20 25 73 20 5b 20 2d 6d |X"Usage:| %s [ -m|
|000051f0| 20 6d 69 6e 5f 64 61 79 | 73 20 5d 20 5b 20 2d 4d | min_day|s ] [ -M|
|00005200| 20 6d 61 78 5f 64 61 79 | 73 20 5d 20 5b 20 2d 77 | max_day|s ] [ -w|
|00005210| 20 77 65 65 6b 20 7c 20 | 2d 64 20 64 61 79 20 5d | week | |-d day ]|
|00005220| 20 75 73 65 72 5c 6e 22 | 3b 0a 58 0a 58 2f 2a 0a | user\n"|;.X.X/*.|
|00005230| 58 20 2a 20 75 73 61 67 | 65 20 2d 20 70 72 69 6e |X * usag|e - prin|
|00005240| 74 20 63 6f 6d 6d 61 6e | 64 20 6c 69 6e 65 20 73 |t comman|d line s|
|00005250| 79 6e 74 61 78 20 61 6e | 64 20 65 78 69 74 0a 58 |yntax an|d exit.X|
|00005260| 20 2a 2f 0a 58 0a 58 76 | 6f 69 64 0a 58 75 73 61 | */.X.Xv|oid.Xusa|
|00005270| 67 65 20 28 29 0a 58 7b | 0a 58 09 66 70 72 69 6e |ge ().X{|.X.fprin|
|00005280| 74 66 20 28 73 74 64 65 | 72 72 2c 20 55 73 61 67 |tf (stde|rr, Usag|
|00005290| 65 2c 20 6d 79 6e 61 6d | 65 29 3b 0a 58 09 65 78 |e, mynam|e);.X.ex|
|000052a0| 69 74 20 28 31 29 3b 0a | 58 7d 0a 58 0a 58 2f 2a |it (1);.|X}.X.X/*|
|000052b0| 0a 58 20 2a 20 63 68 61 | 6e 67 65 5f 66 69 65 6c |.X * cha|nge_fiel|
|000052c0| 64 20 2d 20 63 68 61 6e | 67 65 20 61 20 73 69 6e |d - chan|ge a sin|
|000052d0| 67 6c 65 20 66 69 65 6c | 64 20 69 66 20 61 20 6e |gle fiel|d if a n|
|000052e0| 65 77 20 76 61 6c 75 65 | 20 69 73 20 67 69 76 65 |ew value| is give|
|000052f0| 6e 2e 0a 58 20 2a 0a 58 | 20 2a 20 70 72 6f 6d 70 |n..X *.X| * promp|
|00005300| 74 20 74 68 65 20 75 73 | 65 72 20 77 69 74 68 20 |t the us|er with |
|00005310| 74 68 65 20 6e 61 6d 65 | 20 6f 66 20 74 68 65 20 |the name| of the |
|00005320| 66 69 65 6c 64 20 62 65 | 69 6e 67 20 63 68 61 6e |field be|ing chan|
|00005330| 67 65 64 20 61 6e 64 20 | 74 68 65 0a 58 20 2a 20 |ged and |the.X * |
|00005340| 63 75 72 72 65 6e 74 20 | 76 61 6c 75 65 2e 0a 58 |current |value..X|
|00005350| 20 2a 2f 0a 58 0a 58 76 | 6f 69 64 0a 58 63 68 61 | */.X.Xv|oid.Xcha|
|00005360| 6e 67 65 5f 66 69 65 6c | 64 20 28 76 61 6c 2c 20 |nge_fiel|d (val, |
|00005370| 70 72 6f 6d 70 74 29 0a | 58 69 6e 74 09 2a 76 61 |prompt).|Xint.*va|
|00005380| 6c 3b 0a 58 63 68 61 72 | 09 2a 70 72 6f 6d 70 74 |l;.Xchar|.*prompt|
|00005390| 3b 0a 58 7b 0a 58 09 69 | 6e 74 09 6e 65 77 76 61 |;.X{.X.i|nt.newva|
|000053a0| 6c 3b 0a 58 09 63 68 61 | 72 09 6e 65 77 5b 42 55 |l;.X.cha|r.new[BU|
|000053b0| 46 53 49 5a 5d 3b 0a 58 | 09 63 68 61 72 09 2a 63 |FSIZ];.X|.char.*c|
|000053c0| 70 3b 0a 58 0a 58 09 77 | 68 69 6c 65 20 28 31 29 |p;.X.X.w|hile (1)|
|000053d0| 20 7b 0a 58 09 09 69 66 | 20 28 2a 76 61 6c 20 3d | {.X..if| (*val =|
|000053e0| 3d 20 2d 31 29 0a 58 09 | 09 09 70 72 69 6e 74 66 |= -1).X.|..printf|
|000053f0| 20 28 22 5c 74 25 73 20 | 5b 5d 3a 20 22 2c 20 70 | ("\t%s |[]: ", p|
|00005400| 72 6f 6d 70 74 29 3b 0a | 58 09 09 65 6c 73 65 0a |rompt);.|X..else.|
|00005410| 58 09 09 09 70 72 69 6e | 74 66 20 28 22 5c 74 25 |X...prin|tf ("\t%|
|00005420| 73 20 5b 25 64 5d 3a 20 | 22 2c 20 70 72 6f 6d 70 |s [%d]: |", promp|
|00005430| 74 2c 20 2a 76 61 6c 29 | 3b 0a 58 0a 58 09 09 66 |t, *val)|;.X.X..f|
|00005440| 67 65 74 73 20 28 6e 65 | 77 2c 20 42 55 46 53 49 |gets (ne|w, BUFSI|
|00005450| 5a 2c 20 73 74 64 69 6e | 29 3b 0a 58 0a 58 09 09 |Z, stdin|);.X.X..|
|00005460| 69 66 20 28 63 70 20 3d | 20 73 74 72 63 68 72 20 |if (cp =| strchr |
|00005470| 28 6e 65 77 2c 20 27 5c | 6e 27 29 29 0a 58 09 09 |(new, '\|n')).X..|
|00005480| 09 2a 63 70 20 3d 20 27 | 5c 30 27 3b 0a 58 09 09 |.*cp = '|\0';.X..|
|00005490| 65 6c 73 65 0a 58 09 09 | 09 72 65 74 75 72 6e 3b |else.X..|.return;|
|000054a0| 0a 58 0a 58 09 09 69 66 | 20 28 6e 65 77 5b 30 5d |.X.X..if| (new[0]|
|000054b0| 20 3d 3d 20 27 5c 30 27 | 29 0a 58 09 09 09 72 65 | == '\0'|).X...re|
|000054c0| 74 75 72 6e 3b 0a 58 0a | 58 09 09 6e 65 77 76 61 |turn;.X.|X..newva|
|000054d0| 6c 20 3d 20 73 74 72 74 | 6f 6c 20 28 6e 65 77 2c |l = strt|ol (new,|
|000054e0| 20 26 63 70 2c 20 31 30 | 29 3b 0a 58 09 09 69 66 | &cp, 10|);.X..if|
|000054f0| 20 28 63 70 20 21 3d 20 | 6e 65 77 20 26 26 20 6e | (cp != |new && n|
|00005500| 65 77 76 61 6c 20 3e 3d | 20 2d 31 20 26 26 20 6e |ewval >=| -1 && n|
|00005510| 65 77 76 61 6c 20 3c 3d | 20 31 30 30 30 30 29 20 |ewval <=| 10000) |
|00005520| 7b 0a 58 09 09 09 2a 76 | 61 6c 20 3d 20 6e 65 77 |{.X...*v|al = new|
|00005530| 76 61 6c 3b 0a 58 09 09 | 09 72 65 74 75 72 6e 3b |val;.X..|.return;|
|00005540| 0a 58 09 09 7d 0a 58 09 | 09 66 70 72 69 6e 74 66 |.X..}.X.|.fprintf|
|00005550| 20 28 73 74 64 65 72 72 | 2c 20 22 25 73 3a 20 69 | (stderr|, "%s: i|
|00005560| 6c 6c 65 67 61 6c 20 76 | 61 6c 75 65 3a 20 25 73 |llegal v|alue: %s|
|00005570| 5c 6e 22 2c 20 6d 79 6e | 61 6d 65 2c 20 6e 65 77 |\n", myn|ame, new|
|00005580| 29 3b 0a 58 09 7d 0a 58 | 7d 0a 58 0a 58 2f 2a 0a |);.X.}.X|}.X.X/*.|
|00005590| 58 20 2a 20 6e 65 77 5f | 66 69 65 6c 64 73 20 2d |X * new_|fields -|
|000055a0| 20 63 68 61 6e 67 65 20 | 74 68 65 20 75 73 65 72 | change |the user|
|000055b0| 27 73 20 70 61 73 73 77 | 6f 72 64 20 61 67 69 6e |'s passw|ord agin|
|000055c0| 67 20 69 6e 66 6f 72 6d | 61 74 69 6f 6e 20 69 6e |g inform|ation in|
|000055d0| 74 65 72 61 63 74 69 76 | 65 6c 79 2e 0a 58 20 2a |teractiv|ely..X *|
|000055e0| 0a 58 20 2a 20 70 72 6f | 6d 70 74 20 74 68 65 20 |.X * pro|mpt the |
|000055f0| 75 73 65 72 20 66 6f 72 | 20 74 68 65 20 74 77 6f |user for| the two|
|00005600| 20 70 61 73 73 77 6f 72 | 64 20 61 67 65 20 76 61 | passwor|d age va|
|00005610| 6c 75 65 73 2e 20 20 73 | 65 74 20 74 68 65 20 66 |lues. s|et the f|
|00005620| 69 65 6c 64 73 0a 58 20 | 2a 20 66 72 6f 6d 20 74 |ields.X |* from t|
|00005630| 68 65 20 75 73 65 72 27 | 73 20 72 65 73 70 6f 6e |he user'|s respon|
|00005640| 73 65 2c 20 6f 72 20 6c | 65 61 76 65 20 61 6c 6f |se, or l|eave alo|
|00005650| 6e 65 20 69 66 20 6e 6f | 74 68 69 6e 67 20 77 61 |ne if no|thing wa|
|00005660| 73 20 65 6e 74 65 72 65 | 64 2e 0a 58 20 2a 2f 0a |s entere|d..X */.|
|00005670| 58 0a 58 6e 65 77 5f 66 | 69 65 6c 64 73 20 28 29 |X.Xnew_f|ields ()|
|00005680| 0a 58 7b 0a 58 09 70 72 | 69 6e 74 66 20 28 22 45 |.X{.X.pr|intf ("E|
|00005690| 6e 74 65 72 20 74 68 65 | 20 6e 65 77 20 76 61 6c |nter the| new val|
|000056a0| 75 65 2c 20 6f 72 20 70 | 72 65 73 73 20 72 65 74 |ue, or p|ress ret|
|000056b0| 75 72 6e 20 66 6f 72 20 | 74 68 65 20 64 65 66 61 |urn for |the defa|
|000056c0| 75 6c 74 5c 6e 5c 6e 22 | 29 3b 0a 58 0a 58 09 63 |ult\n\n"|);.X.X.c|
|000056d0| 68 61 6e 67 65 5f 66 69 | 65 6c 64 20 28 26 6d 69 |hange_fi|eld (&mi|
|000056e0| 6e 64 61 79 73 2c 20 22 | 4d 69 6e 69 6d 75 6d 20 |ndays, "|Minimum |
|000056f0| 50 61 73 73 77 6f 72 64 | 20 41 67 65 22 29 3b 0a |Password| Age");.|
|00005700| 58 09 63 68 61 6e 67 65 | 5f 66 69 65 6c 64 20 28 |X.change|_field (|
|00005710| 26 6d 61 78 64 61 79 73 | 2c 20 22 4d 61 78 69 6d |&maxdays|, "Maxim|
|00005720| 75 6d 20 50 61 73 73 77 | 6f 72 64 20 41 67 65 22 |um Passw|ord Age"|
|00005730| 29 3b 0a 58 09 63 68 61 | 6e 67 65 5f 66 69 65 6c |);.X.cha|nge_fiel|
|00005740| 64 20 28 26 6c 61 73 74 | 64 61 79 2c 20 22 4c 61 |d (&last|day, "La|
|00005750| 73 74 20 50 61 73 73 77 | 6f 72 64 20 43 68 61 6e |st Passw|ord Chan|
|00005760| 67 65 22 29 3b 0a 58 7d | 0a 58 0a 58 23 69 66 64 |ge");.X}|.X.X#ifd|
|00005770| 65 66 09 44 42 4d 0a 58 | 2f 2a 0a 58 20 2a 20 75 |ef.DBM.X|/*.X * u|
|00005780| 70 64 61 74 65 5f 64 62 | 6d 0a 58 20 2a 0a 58 20 |pdate_db|m.X *.X |
|00005790| 2a 20 55 70 64 61 74 65 | 73 20 74 68 65 20 44 42 |* Update|s the DB|
|000057a0| 4d 20 70 61 73 73 77 6f | 72 64 20 66 69 6c 65 73 |M passwo|rd files|
|000057b0| 2c 20 69 66 20 74 68 65 | 79 20 65 78 69 73 74 2e |, if the|y exist.|
|000057c0| 0a 58 20 2a 2f 0a 58 0a | 58 75 70 64 61 74 65 5f |.X */.X.|Xupdate_|
|000057d0| 64 62 6d 20 28 70 77 29 | 0a 58 73 74 72 75 63 74 |dbm (pw)|.Xstruct|
|000057e0| 09 70 61 73 73 77 64 09 | 2a 70 77 3b 0a 58 7b 0a |.passwd.|*pw;.X{.|
|000057f0| 58 09 64 61 74 75 6d 09 | 6b 65 79 3b 0a 58 09 64 |X.datum.|key;.X.d|
|00005800| 61 74 75 6d 09 63 6f 6e | 74 65 6e 74 3b 0a 58 09 |atum.con|tent;.X.|
|00005810| 63 68 61 72 09 64 61 74 | 61 5b 42 55 46 53 49 5a |char.dat|a[BUFSIZ|
|00005820| 5d 3b 0a 58 09 69 6e 74 | 09 6c 65 6e 3b 0a 58 0a |];.X.int|.len;.X.|
|00005830| 58 09 73 74 72 63 70 79 | 20 28 64 61 74 61 2c 20 |X.strcpy| (data, |
|00005840| 50 57 44 46 49 4c 45 29 | 3b 0a 58 09 73 74 72 63 |PWDFILE)|;.X.strc|
|00005850| 61 74 20 28 64 61 74 61 | 2c 20 22 2e 70 61 67 22 |at (data|, ".pag"|
|00005860| 29 3b 0a 58 09 69 66 20 | 28 61 63 63 65 73 73 20 |);.X.if |(access |
|00005870| 28 64 61 74 61 2c 20 30 | 29 29 0a 58 09 09 72 65 |(data, 0|)).X..re|
|00005880| 74 75 72 6e 3b 0a 58 0a | 58 09 6c 65 6e 20 3d 20 |turn;.X.|X.len = |
|00005890| 70 77 5f 70 61 63 6b 20 | 28 70 77 2c 20 64 61 74 |pw_pack |(pw, dat|
|000058a0| 61 29 3b 0a 58 09 63 6f | 6e 74 65 6e 74 2e 64 73 |a);.X.co|ntent.ds|
|000058b0| 69 7a 65 20 3d 20 6c 65 | 6e 3b 0a 58 09 63 6f 6e |ize = le|n;.X.con|
|000058c0| 74 65 6e 74 2e 64 70 74 | 72 20 3d 20 64 61 74 61 |tent.dpt|r = data|
|000058d0| 3b 0a 58 0a 58 09 6b 65 | 79 2e 64 73 69 7a 65 20 |;.X.X.ke|y.dsize |
|000058e0| 3d 20 73 74 72 6c 65 6e | 20 28 70 77 2d 3e 70 77 |= strlen| (pw->pw|
|000058f0| 5f 6e 61 6d 65 29 3b 0a | 58 09 6b 65 79 2e 64 70 |_name);.|X.key.dp|
|00005900| 74 72 20 3d 20 70 77 2d | 3e 70 77 5f 6e 61 6d 65 |tr = pw-|>pw_name|
|00005910| 3b 0a 58 09 73 74 6f 72 | 65 20 28 6b 65 79 2c 20 |;.X.stor|e (key, |
|00005920| 63 6f 6e 74 65 6e 74 29 | 3b 0a 58 0a 58 09 6b 65 |content)|;.X.X.ke|
|00005930| 79 2e 64 73 69 7a 65 20 | 3d 20 73 69 7a 65 6f 66 |y.dsize |= sizeof|
|00005940| 20 70 77 2d 3e 70 77 5f | 75 69 64 3b 0a 58 09 6b | pw->pw_|uid;.X.k|
|00005950| 65 79 2e 64 70 74 72 20 | 3d 20 28 63 68 61 72 20 |ey.dptr |= (char |
|00005960| 2a 29 20 26 70 77 2d 3e | 70 77 5f 75 69 64 3b 0a |*) &pw->|pw_uid;.|
|00005970| 58 09 73 74 6f 72 65 20 | 28 6b 65 79 2c 20 63 6f |X.store |(key, co|
|00005980| 6e 74 65 6e 74 29 3b 0a | 58 7d 0a 58 23 65 6e 64 |ntent);.|X}.X#end|
|00005990| 69 66 0a 58 0a 58 69 6e | 74 0a 58 6d 61 69 6e 20 |if.X.Xin|t.Xmain |
|000059a0| 28 61 72 67 63 2c 20 61 | 72 67 76 29 0a 58 69 6e |(argc, a|rgv).Xin|
|000059b0| 74 09 61 72 67 63 3b 0a | 58 63 68 61 72 09 2a 2a |t.argc;.|Xchar.**|
|000059c0| 61 72 67 76 3b 0a 58 7b | 0a 58 09 65 78 74 65 72 |argv;.X{|.X.exter|
|000059d0| 6e 09 69 6e 74 09 6f 70 | 74 69 6e 64 3b 0a 58 09 |n.int.op|tind;.X.|
|000059e0| 65 78 74 65 72 6e 09 63 | 68 61 72 09 2a 6f 70 74 |extern.c|har.*opt|
|000059f0| 61 72 67 3b 0a 58 09 76 | 6f 69 64 09 64 69 65 20 |arg;.X.v|oid.die |
|00005a00| 28 29 3b 0a 58 09 63 68 | 61 72 09 2a 63 70 3b 0a |();.X.ch|ar.*cp;.|
|00005a10| 58 09 63 68 61 72 09 2a | 67 65 74 6c 6f 67 69 6e |X.char.*|getlogin|
|00005a20| 20 28 29 3b 0a 58 09 69 | 6e 74 09 61 6d 72 6f 6f | ();.X.i|nt.amroo|
|00005a30| 74 3b 0a 58 09 69 6e 74 | 09 6c 6f 63 6b 66 64 20 |t;.X.int|.lockfd |
|00005a40| 3d 20 2d 31 3b 0a 58 09 | 69 6e 74 09 66 6c 61 67 |= -1;.X.|int.flag|
|00005a50| 3b 0a 58 09 73 74 72 75 | 63 74 09 70 61 73 73 77 |;.X.stru|ct.passw|
|00005a60| 64 09 2a 70 77 3b 0a 58 | 23 69 66 64 65 66 09 53 |d.*pw;.X|#ifdef.S|
|00005a70| 48 41 44 4f 57 50 57 44 | 0a 58 09 73 74 72 75 63 |HADOWPWD|.X.struc|
|00005a80| 74 09 73 70 77 64 09 2a | 73 70 3b 0a 58 23 65 6e |t.spwd.*|sp;.X#en|
|00005a90| 64 69 66 0a 58 09 73 74 | 72 75 63 74 09 70 61 73 |dif.X.st|ruct.pas|
|00005aa0| 73 77 64 09 2a 67 65 74 | 70 77 75 69 64 20 28 29 |swd.*get|pwuid ()|
|00005ab0| 3b 0a 58 09 73 74 72 75 | 63 74 09 70 61 73 73 77 |;.X.stru|ct.passw|
|00005ac0| 64 09 2a 67 65 74 70 77 | 6e 61 6d 20 28 29 3b 0a |d.*getpw|nam ();.|
|00005ad0| 58 09 73 74 72 75 63 74 | 09 70 61 73 73 77 64 09 |X.struct|.passwd.|
|00005ae0| 2a 73 67 65 74 70 77 65 | 6e 74 20 28 29 3b 0a 58 |*sgetpwe|nt ();.X|
|00005af0| 09 46 49 4c 45 09 2a 6e | 70 77 64 3b 0a 58 09 46 |.FILE.*n|pwd;.X.F|
|00005b00| 49 4c 45 09 2a 70 77 64 | 3b 0a 58 09 63 68 61 72 |ILE.*pwd|;.X.char|
|00005b10| 09 62 75 66 5b 42 55 46 | 53 49 5a 5d 3b 0a 58 09 |.buf[BUF|SIZ];.X.|
|00005b20| 63 68 61 72 09 74 6d 70 | 5b 42 55 46 53 49 5a 5d |char.tmp|[BUFSIZ]|
|00005b30| 3b 0a 58 0a 58 09 69 66 | 20 28 6d 79 6e 61 6d 65 |;.X.X.if| (myname|
|00005b40| 20 3d 20 73 74 72 63 68 | 72 20 28 61 72 67 76 5b | = strch|r (argv[|
|00005b50| 30 5d 2c 20 27 2f 27 29 | 29 0a 58 09 09 6d 79 6e |0], '/')|).X..myn|
|00005b60| 61 6d 65 2b 2b 3b 0a 58 | 09 65 6c 73 65 0a 58 09 |ame++;.X|.else.X.|
|00005b70| 09 6d 79 6e 61 6d 65 20 | 3d 20 61 72 67 76 5b 30 |.myname |= argv[0|
|00005b80| 5d 3b 0a 58 0a 58 09 69 | 66 20 28 67 65 74 75 69 |];.X.X.i|f (getui|
|00005b90| 64 20 28 29 20 21 3d 20 | 30 29 20 7b 0a 58 09 09 |d () != |0) {.X..|
|00005ba0| 66 70 72 69 6e 74 66 20 | 28 73 74 64 65 72 72 2c |fprintf |(stderr,|
|00005bb0| 20 22 25 73 3a 20 70 65 | 72 6d 69 73 73 69 6f 6e | "%s: pe|rmission|
|00005bc0| 20 64 65 6e 69 65 64 5c | 6e 22 2c 20 6d 79 6e 61 | denied\|n", myna|
|00005bd0| 6d 65 29 3b 0a 58 09 09 | 65 78 69 74 20 28 31 29 |me);.X..|exit (1)|
|00005be0| 3b 0a 58 09 7d 0a 58 09 | 77 68 69 6c 65 20 28 28 |;.X.}.X.|while ((|
|00005bf0| 66 6c 61 67 20 3d 20 67 | 65 74 6f 70 74 20 28 61 |flag = g|etopt (a|
|00005c00| 72 67 63 2c 20 61 72 67 | 76 2c 20 22 6d 3a 4d 3a |rgc, arg|v, "m:M:|
|00005c10| 64 3a 77 3a 22 29 29 20 | 21 3d 20 45 4f 46 29 20 |d:w:")) |!= EOF) |
|00005c20| 7b 0a 58 09 09 73 77 69 | 74 63 68 20 28 66 6c 61 |{.X..swi|tch (fla|
|00005c30| 67 29 20 7b 0a 58 09 09 | 09 63 61 73 65 20 27 6d |g) {.X..|.case 'm|
|00005c40| 27 3a 0a 58 09 09 09 09 | 6d 66 6c 67 2b 2b 3b 0a |':.X....|mflg++;.|
|00005c50| 58 09 09 09 09 6d 69 6e | 64 61 79 73 20 3d 20 73 |X....min|days = s|
|00005c60| 74 72 74 6f 6c 20 28 6f | 70 74 61 72 67 2c 20 30 |trtol (o|ptarg, 0|
|00005c70| 2c 20 31 30 29 3b 0a 58 | 09 09 09 09 62 72 65 61 |, 10);.X|....brea|
|00005c80| 6b 3b 0a 58 09 09 09 63 | 61 73 65 20 27 4d 27 3a |k;.X...c|ase 'M':|
|00005c90| 0a 58 09 09 09 09 4d 66 | 6c 67 2b 2b 3b 0a 58 09 |.X....Mf|lg++;.X.|
|00005ca0| 09 09 09 6d 61 78 64 61 | 79 73 20 3d 20 73 74 72 |...maxda|ys = str|
|00005cb0| 74 6f 6c 20 28 6f 70 74 | 61 72 67 2c 20 30 2c 20 |tol (opt|arg, 0, |
|00005cc0| 31 30 29 3b 0a 58 09 09 | 09 09 62 72 65 61 6b 3b |10);.X..|..break;|
|00005cd0| 0a 58 09 09 09 63 61 73 | 65 20 27 64 27 3a 0a 58 |.X...cas|e 'd':.X|
|00005ce0| 09 09 09 09 64 66 6c 67 | 2b 2b 3b 0a 58 09 09 09 |....dflg|++;.X...|
|00005cf0| 09 6c 61 73 74 64 61 79 | 20 3d 20 73 74 72 74 6f |.lastday| = strto|
|00005d00| 6c 20 28 6f 70 74 61 72 | 67 2c 20 30 2c 20 31 30 |l (optar|g, 0, 10|
|00005d10| 29 3b 0a 58 09 09 09 09 | 62 72 65 61 6b 3b 0a 58 |);.X....|break;.X|
|00005d20| 09 09 09 63 61 73 65 20 | 27 77 27 3a 0a 58 09 09 |...case |'w':.X..|
|00005d30| 09 09 64 66 6c 67 2b 2b | 3b 0a 58 09 09 09 09 6c |..dflg++|;.X....l|
|00005d40| 61 73 74 64 61 79 20 3d | 20 73 74 72 74 6f 6c 20 |astday =| strtol |
|00005d50| 28 6f 70 74 61 72 67 2c | 20 30 2c 20 31 30 29 20 |(optarg,| 0, 10) |
|00005d60| 2a 20 37 3b 0a 58 09 09 | 09 09 62 72 65 61 6b 3b |* 7;.X..|..break;|
|00005d70| 0a 58 09 09 09 64 65 66 | 61 75 6c 74 3a 0a 58 09 |.X...def|ault:.X.|
|00005d80| 09 09 09 75 73 61 67 65 | 20 28 29 3b 0a 58 09 09 |...usage| ();.X..|
|00005d90| 7d 0a 58 09 7d 0a 58 09 | 69 66 20 28 61 72 67 63 |}.X.}.X.|if (argc|
|00005da0| 20 21 3d 20 6f 70 74 69 | 6e 64 20 2b 20 31 29 0a | != opti|nd + 1).|
|00005db0| 58 09 09 75 73 61 67 65 | 20 28 29 3b 0a 58 0a 58 |X..usage| ();.X.X|
|00005dc0| 09 69 66 20 28 21 20 28 | 70 77 20 3d 20 67 65 74 |.if (! (|pw = get|
|00005dd0| 70 77 6e 61 6d 20 28 61 | 72 67 76 5b 6f 70 74 69 |pwnam (a|rgv[opti|
|00005de0| 6e 64 5d 29 29 29 20 7b | 0a 58 09 09 66 70 72 69 |nd]))) {|.X..fpri|
|00005df0| 6e 74 66 20 28 73 74 64 | 65 72 72 2c 20 22 25 73 |ntf (std|err, "%s|
|00005e00| 3a 20 75 6e 6b 6e 6f 77 | 6e 20 75 73 65 72 3a 20 |: unknow|n user: |
|00005e10| 25 73 5c 6e 22 2c 0a 58 | 09 09 09 6d 79 6e 61 6d |%s\n",.X|...mynam|
|00005e20| 65 2c 20 61 72 67 76 5b | 6f 70 74 69 6e 64 5d 29 |e, argv[|optind])|
|00005e30| 3b 0a 58 09 09 65 78 69 | 74 20 28 31 29 3b 0a 58 |;.X..exi|t (1);.X|
|00005e40| 09 7d 0a 58 09 73 74 72 | 63 70 79 20 28 6e 61 6d |.}.X.str|cpy (nam|
|00005e50| 65 2c 20 70 77 2d 3e 70 | 77 5f 6e 61 6d 65 29 3b |e, pw->p|w_name);|
|00005e60| 0a 58 23 69 66 64 65 66 | 09 53 48 41 44 4f 57 50 |.X#ifdef|.SHADOWP|
|00005e70| 57 44 0a 58 09 69 66 20 | 28 73 70 20 3d 20 67 65 |WD.X.if |(sp = ge|
|00005e80| 74 73 70 6e 61 6d 20 28 | 6e 61 6d 65 29 29 20 7b |tspnam (|name)) {|
|00005e90| 0a 58 09 09 73 70 77 64 | 20 3d 20 2a 73 70 3b 0a |.X..spwd| = *sp;.|
|00005ea0| 58 09 09 73 70 77 64 2e | 73 70 5f 6e 61 6d 70 20 |X..spwd.|sp_namp |
|00005eb0| 3d 20 73 74 72 64 75 70 | 20 28 73 70 2d 3e 73 70 |= strdup| (sp->sp|
|00005ec0| 5f 6e 61 6d 70 29 3b 0a | 58 09 09 73 70 77 64 2e |_namp);.|X..spwd.|
|00005ed0| 73 70 5f 70 77 64 70 20 | 3d 20 73 74 72 64 75 70 |sp_pwdp |= strdup|
|00005ee0| 20 28 73 70 2d 3e 73 70 | 5f 70 77 64 70 29 3b 0a | (sp->sp|_pwdp);.|
|00005ef0| 58 09 7d 0a 58 23 65 6e | 64 69 66 0a 58 09 70 77 |X.}.X#en|dif.X.pw|
|00005f00| 65 6e 74 20 3d 20 2a 70 | 77 3b 0a 58 09 70 77 65 |ent = *p|w;.X.pwe|
|00005f10| 6e 74 2e 70 77 5f 6e 61 | 6d 65 20 3d 20 73 74 72 |nt.pw_na|me = str|
|00005f20| 64 75 70 20 28 70 77 2d | 3e 70 77 5f 6e 61 6d 65 |dup (pw-|>pw_name|
|00005f30| 29 3b 0a 58 09 70 77 65 | 6e 74 2e 70 77 5f 70 61 |);.X.pwe|nt.pw_pa|
|00005f40| 73 73 77 64 20 3d 20 73 | 74 72 64 75 70 20 28 70 |sswd = s|trdup (p|
|00005f50| 77 2d 3e 70 77 5f 70 61 | 73 73 77 64 29 3b 0a 58 |w->pw_pa|sswd);.X|
|00005f60| 09 70 77 65 6e 74 2e 70 | 77 5f 61 67 65 20 3d 20 |.pwent.p|w_age = |
|00005f70| 73 74 72 64 75 70 20 28 | 70 77 2d 3e 70 77 5f 61 |strdup (|pw->pw_a|
|00005f80| 67 65 29 3b 0a 58 09 70 | 77 65 6e 74 2e 70 77 5f |ge);.X.p|went.pw_|
|00005f90| 67 65 63 6f 73 20 3d 20 | 73 74 72 64 75 70 20 28 |gecos = |strdup (|
|00005fa0| 70 77 2d 3e 70 77 5f 67 | 65 63 6f 73 29 3b 0a 58 |pw->pw_g|ecos);.X|
|00005fb0| 09 70 77 65 6e 74 2e 70 | 77 5f 64 69 72 20 3d 20 |.pwent.p|w_dir = |
|00005fc0| 73 74 72 64 75 70 20 28 | 70 77 2d 3e 70 77 5f 64 |strdup (|pw->pw_d|
|00005fd0| 69 72 29 3b 0a 58 09 70 | 77 65 6e 74 2e 70 77 5f |ir);.X.p|went.pw_|
|00005fe0| 73 68 65 6c 6c 20 3d 20 | 73 74 72 64 75 70 20 28 |shell = |strdup (|
|00005ff0| 70 77 2d 3e 70 77 5f 73 | 68 65 6c 6c 29 3b 0a 58 |pw->pw_s|hell);.X|
|00006000| 0a 58 09 2f 2a 0a 58 09 | 20 2a 20 53 65 74 20 74 |.X./*.X.| * Set t|
|00006010| 68 65 20 66 69 65 6c 64 | 73 20 74 68 61 74 20 61 |he field|s that a|
|00006020| 72 65 6e 27 74 20 62 65 | 69 6e 67 20 73 65 74 20 |ren't be|ing set |
|00006030| 66 72 6f 6d 20 74 68 65 | 20 63 6f 6d 6d 61 6e 64 |from the| command|
|00006040| 20 6c 69 6e 65 0a 58 09 | 20 2a 20 66 72 6f 6d 20 | line.X.| * from |
|00006050| 74 68 65 20 70 61 73 73 | 77 6f 72 64 20 66 69 6c |the pass|word fil|
|00006060| 65 2e 0a 58 09 20 2a 2f | 0a 58 0a 58 23 69 66 64 |e..X. */|.X.X#ifd|
|00006070| 65 66 09 53 48 41 44 4f | 57 50 57 44 0a 58 09 69 |ef.SHADO|WPWD.X.i|
|00006080| 66 20 28 73 70 29 20 7b | 0a 58 09 09 69 66 20 28 |f (sp) {|.X..if (|
|00006090| 21 20 4d 66 6c 67 29 0a | 58 09 09 09 6d 61 78 64 |! Mflg).|X...maxd|
|000060a0| 61 79 73 20 3d 20 73 70 | 77 64 2e 73 70 5f 6d 61 |ays = sp|wd.sp_ma|
|000060b0| 78 3b 0a 58 09 09 69 66 | 20 28 21 20 6d 66 6c 67 |x;.X..if| (! mflg|
|000060c0| 29 0a 58 09 09 09 6d 69 | 6e 64 61 79 73 20 3d 20 |).X...mi|ndays = |
|000060d0| 73 70 77 64 2e 73 70 5f | 6d 69 6e 3b 0a 58 09 09 |spwd.sp_|min;.X..|
|000060e0| 69 66 20 28 21 20 64 66 | 6c 67 29 0a 58 09 09 09 |if (! df|lg).X...|
|000060f0| 6c 61 73 74 64 61 79 20 | 3d 20 73 70 77 64 2e 73 |lastday |= spwd.s|
|00006100| 70 5f 6c 73 74 63 68 67 | 3b 0a 58 09 7d 20 65 6c |p_lstchg|;.X.} el|
|00006110| 73 65 0a 58 23 65 6e 64 | 69 66 0a 58 09 69 66 20 |se.X#end|if.X.if |
|00006120| 28 70 77 65 6e 74 2e 70 | 77 5f 61 67 65 20 26 26 |(pwent.p|w_age &&|
|00006130| 20 73 74 72 6c 65 6e 20 | 28 70 77 65 6e 74 2e 70 | strlen |(pwent.p|
|00006140| 77 5f 61 67 65 29 20 3e | 3d 20 32 29 20 7b 0a 58 |w_age) >|= 2) {.X|
|00006150| 09 09 69 66 20 28 21 20 | 4d 66 6c 67 29 0a 58 09 |..if (! |Mflg).X.|
|00006160| 09 09 6d 61 78 64 61 79 | 73 20 3d 20 63 36 34 69 |..maxday|s = c64i|
|00006170| 20 28 70 77 65 6e 74 2e | 70 77 5f 61 67 65 5b 30 | (pwent.|pw_age[0|
|00006180| 5d 29 20 2a 20 37 3b 0a | 58 09 09 69 66 20 28 21 |]) * 7;.|X..if (!|
|00006190| 20 6d 66 6c 67 29 0a 58 | 09 09 09 6d 69 6e 64 61 | mflg).X|...minda|
|000061a0| 79 73 20 3d 20 63 36 34 | 69 20 28 70 77 65 6e 74 |ys = c64|i (pwent|
|000061b0| 2e 70 77 5f 61 67 65 5b | 31 5d 29 20 2a 20 37 3b |.pw_age[|1]) * 7;|
|000061c0| 0a 58 09 09 69 66 20 28 | 21 20 64 66 6c 67 20 26 |.X..if (|! dflg &|
|000061d0| 26 20 73 74 72 6c 65 6e | 20 28 70 77 65 6e 74 2e |& strlen| (pwent.|
|000061e0| 70 77 5f 61 67 65 29 20 | 3d 3d 20 34 29 0a 58 09 |pw_age) |== 4).X.|
|000061f0| 09 09 6c 61 73 74 64 61 | 79 20 3d 20 61 36 34 6c |..lastda|y = a64l|
|00006200| 20 28 26 70 77 65 6e 74 | 2e 70 77 5f 61 67 65 5b | (&pwent|.pw_age[|
|00006210| 32 5d 29 20 2a 20 37 3b | 0a 58 09 7d 0a 58 0a 58 |2]) * 7;|.X.}.X.X|
|00006220| 09 2f 2a 0a 58 09 20 2a | 20 49 66 20 6e 6f 6e 65 |./*.X. *| If none|
|00006230| 20 6f 66 20 74 68 65 20 | 66 69 65 6c 64 73 20 77 | of the |fields w|
|00006240| 65 72 65 20 63 68 61 6e | 67 65 64 20 66 72 6f 6d |ere chan|ged from|
|00006250| 20 74 68 65 20 63 6f 6d | 6d 61 6e 64 20 6c 69 6e | the com|mand lin|
|00006260| 65 2c 0a 58 09 20 2a 20 | 6c 65 74 20 74 68 65 20 |e,.X. * |let the |
|00006270| 75 73 65 72 20 69 6e 74 | 65 72 61 63 74 69 76 65 |user int|eractive|
|00006280| 6c 79 20 63 68 61 6e 67 | 65 20 74 68 65 6d 2e 0a |ly chang|e them..|
|00006290| 58 09 20 2a 2f 0a 58 0a | 58 09 69 66 20 28 21 20 |X. */.X.|X.if (! |
|000062a0| 6d 66 6c 67 20 26 26 20 | 21 20 4d 66 6c 67 20 26 |mflg && |! Mflg &|
|000062b0| 26 20 21 20 64 66 6c 67 | 29 20 7b 0a 58 09 09 70 |& ! dflg|) {.X..p|
|000062c0| 72 69 6e 74 66 20 28 22 | 43 68 61 6e 67 69 6e 67 |rintf ("|Changing|
|000062d0| 20 74 68 65 20 61 67 69 | 6e 67 20 69 6e 66 6f 72 | the agi|ng infor|
|000062e0| 6d 61 74 69 6f 6e 20 66 | 6f 72 20 25 73 5c 6e 22 |mation f|or %s\n"|
|000062f0| 2c 20 6e 61 6d 65 29 3b | 0a 58 09 09 6e 65 77 5f |, name);|.X..new_|
|00006300| 66 69 65 6c 64 73 20 28 | 29 3b 0a 58 09 7d 0a 58 |fields (|);.X.}.X|
|00006310| 0a 58 09 2f 2a 0a 58 09 | 20 2a 20 4f 75 74 70 75 |.X./*.X.| * Outpu|
|00006320| 74 20 74 68 65 20 6e 65 | 77 20 70 61 73 73 77 6f |t the ne|w passwo|
|00006330| 72 64 20 66 69 6c 65 73 | 2e 0a 58 09 20 2a 2f 0a |rd files|..X. */.|
|00006340| 58 0a 58 09 73 69 67 6e | 61 6c 20 28 53 49 47 48 |X.X.sign|al (SIGH|
|00006350| 55 50 2c 20 53 49 47 5f | 49 47 4e 29 3b 0a 58 09 |UP, SIG_|IGN);.X.|
|00006360| 73 69 67 6e 61 6c 20 28 | 53 49 47 49 4e 54 2c 20 |signal (|SIGINT, |
|00006370| 53 49 47 5f 49 47 4e 29 | 3b 0a 58 09 73 69 67 6e |SIG_IGN)|;.X.sign|
|00006380| 61 6c 20 28 53 49 47 51 | 55 49 54 2c 20 53 49 47 |al (SIGQ|UIT, SIG|
|00006390| 5f 49 47 4e 29 3b 0a 58 | 09 73 69 67 6e 61 6c 20 |_IGN);.X|.signal |
|000063a0| 28 53 49 47 54 45 52 4d | 2c 20 53 49 47 5f 49 47 |(SIGTERM|, SIG_IG|
|000063b0| 4e 29 3b 0a 58 0a 58 09 | 75 6c 69 6d 69 74 20 28 |N);.X.X.|ulimit (|
|000063c0| 33 30 30 30 30 29 3b 09 | 09 09 2f 2a 20 70 72 65 |30000);.|../* pre|
|000063d0| 76 65 6e 74 20 61 6e 79 | 20 66 75 6e 6e 79 20 62 |vent any| funny b|
|000063e0| 75 73 69 6e 65 73 73 20 | 2a 2f 0a 58 09 75 6d 61 |usiness |*/.X.uma|
|000063f0| 73 6b 20 28 30 29 3b 09 | 09 09 2f 2a 20 67 65 74 |sk (0);.|../* get|
+--------+-------------------------+-------------------------+--------+--------+
Only 25.0 KB of data is shown above.