home *** CD-ROM | disk | FTP | other *** search
/ Source Code 1994 March / Source_Code_CD-ROM_Walnut_Creek_March_1994.iso / compsrcs / misc / volume29 / shadow / patch04b < prev    next >
Encoding:
Text File  |  1992-04-03  |  50.1 KB  |  1,851 lines

  1. Newsgroups: comp.sources.misc
  2. From: jfh@rpp386.cactus.org (John F Haugh II)
  3. Subject:  v29i048:  shadow - Shadow Login Suite, Patch04b/3
  4. Message-ID: <1992Apr3.202818.19950@sparky.imd.sterling.com>
  5. X-Md4-Signature: 9b3ad82403f4ea5620e69b7c9af541ee
  6. Date: Fri, 3 Apr 1992 20:28:18 GMT
  7. Approved: kent@sparky.imd.sterling.com
  8.  
  9. Submitted-by: jfh@rpp386.cactus.org (John F Haugh II)
  10. Posting-number: Volume 29, Issue 48
  11. Archive-name: shadow/patch04b
  12. Environment: UNIX
  13. Patch-To: shadow: Volume 26, Issue 54-64
  14.  
  15. This is the second part of the patch for 3.1.4.
  16. --
  17. Index: useradd.1
  18. *** rel3/useradd.1    Fri Mar 27 10:24:35 1992
  19. --- useradd.1    Fri Mar 27 10:26:39 1992
  20. ***************
  21. *** 1,4 ****
  22. ! .\" Copyright 1991, John F. Haugh II
  23.   .\" All rights reserved.
  24.   .\"
  25.   .\" Permission is granted to copy and create derivative works for any
  26. --- 1,4 ----
  27. ! .\" Copyright 1991, 1992, John F. Haugh II
  28.   .\" All rights reserved.
  29.   .\"
  30.   .\" Permission is granted to copy and create derivative works for any
  31. ***************
  32. *** 7,13 ****
  33.   .\" and conspicuously displayed on all copies of object code or
  34.   .\" distribution media.
  35.   .\"
  36. ! .\"    @(#)useradd.1    3.1    07:45:46    7/13/91
  37.   .\"
  38.   .TH USERADD 1M
  39.   .SH NAME
  40. --- 7,13 ----
  41.   .\" and conspicuously displayed on all copies of object code or
  42.   .\" distribution media.
  43.   .\"
  44. ! .\"    @(#)useradd.1    3.2    20:38:24    3/7/92
  45.   .\"
  46.   .TH USERADD 1M
  47.   .SH NAME
  48. ***************
  49. *** 70,76 ****
  50.   .IP \fB-m\fR
  51.   The user's home directory will be created if it does not exist.
  52.   The files contained in \fIskeleton_dir\fR will be copied to the
  53. ! home directory if the \fB-k\fR option is used.
  54.   The \fB-k\fR option is only valid in conjunction with the \fB-m\fR
  55.   option.
  56.   The default is to not create the directory and to not copy any
  57. --- 70,79 ----
  58.   .IP \fB-m\fR
  59.   The user's home directory will be created if it does not exist.
  60.   The files contained in \fIskeleton_dir\fR will be copied to the
  61. ! home directory if the \fB-k\fR option is used, otherwise the
  62. ! files contained in \fB/etc/skel\fR will be used instead.
  63. ! Any directories contained in \fIskeleton_dir\fR or \fB/etc/skel\fR
  64. ! will be created in the user's home directory as well.
  65.   The \fB-k\fR option is only valid in conjunction with the \fB-m\fR
  66.   option.
  67.   The default is to not create the directory and to not copy any
  68. ***************
  69. *** 109,114 ****
  70. --- 112,120 ----
  71.   .PP
  72.   If no options are specified, \fIuseradd\fR displays the current
  73.   default values.
  74. + .SH Notes
  75. + The system administrator is responsible for placing the default
  76. + user files in the \fB/etc/skel\fR directory.
  77.   .SH Files
  78.   /etc/passwd \- user account information
  79.   .br
  80. ***************
  81. *** 117,122 ****
  82. --- 123,130 ----
  83.   /etc/group \- group information
  84.   .br
  85.   /etc/defaults/useradd \- default information
  86. + .br
  87. + /etc/skel \- directory containing default files
  88.   .SH SEE ALSO
  89.   \fBchfn(1), chsh(1), groupadd(1M), groupdel(1M), groupmod(1M),
  90.   passwd(1), userdel(1M), usermod(1M)
  91. Index: newgrp.c
  92. *** rel3/newgrp.c    Fri Mar 27 10:25:46 1992
  93. --- newgrp.c    Fri Mar 27 10:26:41 1992
  94. ***************
  95. *** 1,5 ****
  96.   /*
  97. !  * Copyright 1990, 1991, John F. Haugh II
  98.    * All rights reserved.
  99.    *
  100.    * Permission is granted to copy and create derivative works for any
  101. --- 1,5 ----
  102.   /*
  103. !  * Copyright 1990, 1991, 1992, John F. Haugh II
  104.    * All rights reserved.
  105.    *
  106.    * Permission is granted to copy and create derivative works for any
  107. ***************
  108. *** 29,35 ****
  109.   #endif
  110.   
  111.   #ifndef    lint
  112. ! static    char    sccsid[] = "@(#)newgrp.c    3.8    11:59:02    12/28/91";
  113.   #endif
  114.   
  115.   #ifdef    NGROUPS
  116. --- 29,35 ----
  117.   #endif
  118.   
  119.   #ifndef    lint
  120. ! static    char    sccsid[] = "@(#)newgrp.c    3.9    20:37:26    3/7/92";
  121.   #endif
  122.   
  123.   #ifdef    NGROUPS
  124. ***************
  125. *** 191,196 ****
  126. --- 191,197 ----
  127.               fprintf (stderr, "unknown group: %s\n", group);
  128.               goto failure;
  129.           }
  130. +         argc--; argv++;
  131.   #ifdef    SHADOWGRP
  132.           sgrp = getsgnam (group);
  133.   #endif
  134. ***************
  135. *** 263,275 ****
  136.               needspasswd = sgrp->sg_passwd[0] != '\0';
  137.   #endif
  138.   #endif
  139. -         /*
  140. -          * Skip over the user name
  141. -          */
  142. -         argc--; argv++;
  143.       } else {
  144.   
  145.           /*
  146. --- 264,269 ----
  147. ***************
  148. *** 457,473 ****
  149.       }
  150.   
  151.       /*
  152. !      * exec the login shell and go away.  if there were additional
  153. !      * arguments, use those instead.
  154.        */
  155.   
  156. -     if (argc > 0) {
  157. -         argv--;
  158. -         argv[0] = prog;
  159. -         execve (argv[0], argv, newenvp);
  160. -         perror (argv[0]);
  161. -         _exit (127);
  162. -     }
  163.       shell (prog, base);
  164.       /*NOTREACHED*/
  165.   }
  166. --- 451,461 ----
  167.       }
  168.   
  169.       /*
  170. !      * exec the login shell and go away.  we are trying to get
  171. !      * back to the previous environment which should be the
  172. !      * user's login shell.
  173.        */
  174.   
  175.       shell (prog, base);
  176.       /*NOTREACHED*/
  177.   }
  178. Index: Makefile
  179. *** rel3/Makefile    Fri Mar 27 10:25:57 1992
  180. --- Makefile    Fri Mar 27 10:26:48 1992
  181. ***************
  182. *** 1,5 ****
  183.   #
  184. ! # Copyright 1988,1989,1990,1991, John F. Haugh II
  185.   # All rights reserved.
  186.   #
  187.   # Permission is granted to copy and create derivative works for any
  188. --- 1,5 ----
  189.   #
  190. ! # Copyright 1988,1989,1990,1991,1992 John F. Haugh II
  191.   # All rights reserved.
  192.   #
  193.   # Permission is granted to copy and create derivative works for any
  194. ***************
  195. *** 8,16 ****
  196.   # and conspicuously displayed on all copies of object code or
  197.   # distribution media.
  198.   #
  199. ! #    @(#)Makefile    3.25.1.4    10:13:51  - Shadow password system
  200.   #
  201. ! #    @(#)Makefile    3.25.1.4    10:13:51    1/20/92
  202.   #
  203.   SHELL = /bin/sh
  204.   
  205. --- 8,16 ----
  206.   # and conspicuously displayed on all copies of object code or
  207.   # distribution media.
  208.   #
  209. ! #    @(#)Makefile    3.25.1.9    10:18:08  - Shadow password system
  210.   #
  211. ! #    @(#)Makefile    3.25.1.9    10:18:08    3/27/92
  212.   #
  213.   SHELL = /bin/sh
  214.   
  215. ***************
  216. *** 41,52 ****
  217.   TAGS = ctags
  218.   
  219.   # OS.  Pick one of USG (AT&T, SYSV, SYS3), BSD, SUN (SunOS 2 and 3),
  220. ! # or SUN4 (SunOS 4.1.1.).
  221.   # OS = -DUSG -DSYS3
  222.   OS = -DUSG
  223.   # OS = -DBSD
  224.   # OS = -DSUN
  225.   # OS = -DSUN4
  226.   
  227.   # Do you have to do ranlib (probably SUN, BSD and XENIX)?
  228.   RANLIB = ranlib
  229. --- 41,53 ----
  230.   TAGS = ctags
  231.   
  232.   # OS.  Pick one of USG (AT&T, SYSV, SYS3), BSD, SUN (SunOS 2 and 3),
  233. ! # SUN4 (SunOS 4.1.1.), or UNIXPC (AT&T PC/7300, 3B1)
  234.   # OS = -DUSG -DSYS3
  235.   OS = -DUSG
  236.   # OS = -DBSD
  237.   # OS = -DSUN
  238.   # OS = -DSUN4
  239. + # OS = -DUSG -DUNIXPC
  240.   
  241.   # Do you have to do ranlib (probably SUN, BSD and XENIX)?
  242.   RANLIB = ranlib
  243. ***************
  244. *** 81,87 ****
  245.   # LDFLAGS = -g
  246.   
  247.   # Flags for SunOS 4.1.1
  248. ! # CFLAGS = -O2 $(OS)
  249.   # LIBS =
  250.   # LDFLAGS = 
  251.   
  252. --- 82,88 ----
  253.   # LDFLAGS = -g
  254.   
  255.   # Flags for SunOS 4.1.1
  256. ! # CFLAGS = -O2 $(OS) -I$(DEST_INCLUDE_DIR)
  257.   # LIBS =
  258.   # LDFLAGS = 
  259.   
  260. ***************
  261. *** 201,207 ****
  262.   FILES9 = groupadd.c groupdel.c groupmod.c tz.c console.c hushed.c getdef.c \
  263.       scologin.c logoutd.c sulog.c getpass.c userdel.c
  264.   
  265. ! FILES_SUN = Makefile.sun4 README.sun4 config.h.sun4
  266.   
  267.   MAN_1 = chage.1 chfn.1 chsh.1 id.1 login.1 newgrp.1 passwd.1 su.1 \
  268.       useradd.1 userdel.1 usermod.1 groupadd.1 groupdel.1 groupmod.1 \
  269. --- 202,209 ----
  270.   FILES9 = groupadd.c groupdel.c groupmod.c tz.c console.c hushed.c getdef.c \
  271.       scologin.c logoutd.c sulog.c getpass.c userdel.c
  272.   
  273. ! FILES_SUN4 = Makefile.sun4 README.sun4 config.h.sun4
  274. ! FILES_SVR4 = Makefile.svr4 config.h.svr4
  275.   
  276.   MAN_1 = chage.1 chfn.1 chsh.1 id.1 login.1 newgrp.1 passwd.1 su.1 \
  277.       useradd.1 userdel.1 usermod.1 groupadd.1 groupdel.1 groupmod.1 \
  278. ***************
  279. *** 276,290 ****
  280.       chgrp $(BGID) /bin/faillog /bin/id $(DEST_INCLUDE_DIR)/shadow.h \
  281.           $(DEST_INCLUDE_DIR)/dialup.h $(DEST_INCLUDE_DIR)/pwd.h
  282.       chmod 700 /etc/pwconv /etc/pwunconv /etc/sulogin /etc/mkpasswd \
  283. !         /etc/chpasswd /etc/newusers /bin/dpasswd /bin/chage \
  284.           /etc/useradd /etc/userdel /etc/usermod /etc/groupadd \
  285. !         /etc/groupdel /etc/groupmod /etc/logoutd
  286.       chmod 4711 $(LOGINDIR)/login /bin/su /bin/passwd /bin/gpasswd \
  287. !         /bin/newgrp /bin/chfn /bin/chsh
  288.       chmod 711 /bin/faillog /bin/id
  289.       chmod 444 $(DEST_INCLUDE_DIR)/shadow.h $(DEST_INCLUDE_DIR)/dialup.h \
  290.           $(DEST_INCLUDE_DIR)/pwd.h
  291. !     [ -f $(DEST_LOGIN_DEFS) ] || (cp $(DEST_LOGIN_DEFS) /etc ; \
  292.           chown $(RUID) $(DEST_LOGIN_DEFS) ; \
  293.           chgrp $(RGID) $(DEST_LOGIN_DEFS) ; \
  294.           chmod 600 $(DEST_LOGIN_DEFS) )
  295. --- 278,292 ----
  296.       chgrp $(BGID) /bin/faillog /bin/id $(DEST_INCLUDE_DIR)/shadow.h \
  297.           $(DEST_INCLUDE_DIR)/dialup.h $(DEST_INCLUDE_DIR)/pwd.h
  298.       chmod 700 /etc/pwconv /etc/pwunconv /etc/sulogin /etc/mkpasswd \
  299. !         /etc/chpasswd /etc/newusers /bin/dpasswd /etc/logoutd \
  300.           /etc/useradd /etc/userdel /etc/usermod /etc/groupadd \
  301. !         /etc/groupdel /etc/groupmod
  302.       chmod 4711 $(LOGINDIR)/login /bin/su /bin/passwd /bin/gpasswd \
  303. !         /bin/newgrp /bin/chfn /bin/chsh /bin/chage
  304.       chmod 711 /bin/faillog /bin/id
  305.       chmod 444 $(DEST_INCLUDE_DIR)/shadow.h $(DEST_INCLUDE_DIR)/dialup.h \
  306.           $(DEST_INCLUDE_DIR)/pwd.h
  307. !     [ -f $(DEST_LOGIN_DEFS) ] || (cp login.defs $(DEST_LOGIN_DEFS) ; \
  308.           chown $(RUID) $(DEST_LOGIN_DEFS) ; \
  309.           chgrp $(RGID) $(DEST_LOGIN_DEFS) ; \
  310.           chmod 600 $(DEST_LOGIN_DEFS) )
  311. ***************
  312. *** 314,319 ****
  313. --- 316,324 ----
  314.   Makefile.sun4:
  315.       [ -f s.Makefile.sun4 ] && get -t -r$(RELEASE) s.Makefile.sun4
  316.   
  317. + Makefile.svr4:
  318. +     [ -f s.Makefile.svr4 ] && get -t -r$(RELEASE) s.Makefile.svr4
  319.   README.sun4:
  320.       [ -f s.README.sun4 ] && get -t -r$(RELEASE) s.README.sun4
  321.   
  322. ***************
  323. *** 320,325 ****
  324. --- 325,333 ----
  325.   config.h.sun4:
  326.       [ -f s.config.h.sun4 ] && get -t -r$(RELEASE) s.config.h.sun4
  327.   
  328. + config.h.svr4:
  329. +     [ -f s.config.h.svr4 ] && get -t -r$(RELEASE) s.config.h.svr4
  330.   login:    $(LOBJS) libshadow.a
  331.       $(CC) -o login $(LDFLAGS) $(LOBJS) libshadow.a $(LIBS)
  332.   
  333. ***************
  334. *** 525,531 ****
  335.   groupadd.o: config.h shadow.h
  336.   groupdel.o: config.h shadow.h
  337.   groupmod.o: config.h shadow.h
  338. ! logoutd.o:
  339.   
  340.   libshadow.a(shadow.o): shadow.h config.h
  341.   libshadow.a(shadowio.o): shadow.h
  342. --- 533,540 ----
  343.   groupadd.o: config.h shadow.h
  344.   groupdel.o: config.h shadow.h
  345.   groupmod.o: config.h shadow.h
  346. ! logoutd.o: config.h
  347. ! sulogin.o: config.h
  348.   
  349.   libshadow.a(shadow.o): shadow.h config.h
  350.   libshadow.a(shadowio.o): shadow.h
  351. ***************
  352. *** 535,540 ****
  353. --- 544,552 ----
  354.   libshadow.a(dialchk.o): dialup.h config.h
  355.   libshadow.a(getdef.o): config.h
  356.   libshadow.a(pwdbm.o): config.h pwd.h
  357. + libshadow.a(spdbm.o): config.h shadow.h
  358. + libshadow.a(grdbm.o): config.h
  359. + libshadow.a(gsdbm.o): config.h shadow.h
  360.   libshadow.a(pwpack.o): config.h pwd.h
  361.   libshadow.a(pwent.o): config.h pwd.h
  362.   libshadow.a(pwio.o): pwd.h
  363. ***************
  364. *** 541,549 ****
  365.   libshadow.a(getpass.o): config.h
  366.   libshadow.a(encrypt.o): config.h
  367.   libshadow.a(port.o): port.h
  368.   
  369.   clean:
  370. !     -rm -f susetup.c *.o a.out core npasswd nshadow *.pag *.dir
  371.   
  372.   clobber: clean
  373.       -rm -f $(BINS) *.lint *.L libshadow.a
  374. --- 553,562 ----
  375.   libshadow.a(getpass.o): config.h
  376.   libshadow.a(encrypt.o): config.h
  377.   libshadow.a(port.o): port.h
  378. + libshadow.a(rad64.o): config.h
  379.   
  380.   clean:
  381. !     -rm -f susetup.c *.o a.out core npasswd nshadow *.pag *.dir pwd.h
  382.   
  383.   clobber: clean
  384.       -rm -f $(BINS) *.lint *.L libshadow.a
  385. ***************
  386. *** 592,596 ****
  387.   login.sh.11: $(DOCS2) Makefile
  388.       shar -a $(DOCS2) > login.sh.11
  389.   
  390. ! login.sh.12: $(FILES_SUN) Makefile
  391. !     shar -a $(FILES_SUN) > login.sh.12
  392. --- 605,609 ----
  393.   login.sh.11: $(DOCS2) Makefile
  394.       shar -a $(DOCS2) > login.sh.11
  395.   
  396. ! login.sh.12: $(FILES_SUN4) $(FILES_SVR4) Makefile
  397. !     shar -a $(FILES_SUN4) $(FILES_SVR4) > login.sh.12
  398. Index: README
  399. *** rel3/README    Fri Mar 27 10:25:54 1992
  400. --- README    Fri Mar 27 10:26:51 1992
  401. ***************
  402. *** 1,7 ****
  403. ! [    @(#)README    3.8    21:49:26    1/19/92    ]
  404.   
  405.   This is the explanatory document for John F. Haugh II's login replacement,
  406. ! release 3.  This document was last updated 1/19/92.
  407.   
  408.   This software is copyright 1988, 1989, 1990, 1991, 1992, John F. Haugh II.
  409.   All rights reserved.  Use, duplication and disclosure is permitted according
  410. --- 1,7 ----
  411. ! [    @(#)README    3.8.1.1    20:36:10    3/7/92    ]
  412.   
  413.   This is the explanatory document for John F. Haugh II's login replacement,
  414. ! release 3.  This document was last updated 3/7/92.
  415.   
  416.   This software is copyright 1988, 1989, 1990, 1991, 1992, John F. Haugh II.
  417.   All rights reserved.  Use, duplication and disclosure is permitted according
  418. ***************
  419. *** 75,81 ****
  420.   system version.  The pwd.h file that is produced by "make" must agree
  421.   exactly with the system supplied version.  You should re-arrange the
  422.   fields or #define's until they match.  The same is true for "shadow.h",
  423. ! if you system provides one.
  424.   
  425.   Login Defaults File -
  426.       This option selects the name of the file to read for the
  427. --- 75,83 ----
  428.   system version.  The pwd.h file that is produced by "make" must agree
  429.   exactly with the system supplied version.  You should re-arrange the
  430.   fields or #define's until they match.  The same is true for "shadow.h",
  431. ! if you system provides one.  You may want to replace large portions of
  432. ! that file (or the entire file) with your system version.  It is provided
  433. ! for those systems which do NOT provide /usr/include/shadow.h.
  434.   
  435.   Login Defaults File -
  436.       This option selects the name of the file to read for the
  437. Index: getdef.c
  438. *** rel3/getdef.c    Fri Mar 27 10:25:51 1992
  439. --- getdef.c    Fri Mar 27 10:26:53 1992
  440. ***************
  441. *** 1,5 ****
  442.   /*
  443. !  * Copyright 1991, John F. Haugh II and Chip Rosenthal
  444.    * All rights reserved.
  445.    *
  446.    * Permission is granted to copy and create derivative works for any
  447. --- 1,5 ----
  448.   /*
  449. !  * Copyright 1991, 1992, John F. Haugh II and Chip Rosenthal
  450.    * All rights reserved.
  451.    *
  452.    * Permission is granted to copy and create derivative works for any
  453. ***************
  454. *** 10,16 ****
  455.    */
  456.   
  457.   #ifndef lint
  458. ! static    char    sccsid[] = "@(#)getdef.c    3.3    19:51:46    12/28/91";
  459.   #endif
  460.   
  461.   #include <stdio.h>
  462. --- 10,16 ----
  463.    */
  464.   
  465.   #ifndef lint
  466. ! static    char    sccsid[] = "@(#)getdef.c    3.5    21:21:14    3/7/92";
  467.   #endif
  468.   
  469.   #include <stdio.h>
  470. ***************
  471. *** 73,79 ****
  472. --- 73,81 ----
  473.       { "PORTTIME_CHECKS_ENAB",    NULL },
  474.       { "QUOTAS_ENAB",        NULL },
  475.       { "SULOG_FILE",            NULL },
  476. +     { "SU_NAME",            NULL },
  477.       { "SYSLOG_SU_ENAB",        NULL },
  478. +     { "TTYGROUP",            NULL },
  479.       { "TTYPERM",            NULL },
  480.       { "TTYTYPE_FILE",        NULL },
  481.       { "ULIMIT",            NULL },
  482. Index: login.5
  483. *** rel3/login.5    Fri Mar 27 10:25:15 1992
  484. --- login.5    Fri Mar 27 10:26:55 1992
  485. ***************
  486. *** 1,4 ****
  487. ! .\" Copyright 1991, John F. Haugh II and Chip Rosenthal
  488.   .\" All rights reserved.
  489.   .\"
  490.   .\" Permission is granted to copy and create derivative works for any
  491. --- 1,4 ----
  492. ! .\" Copyright 1991, 1992, John F. Haugh II and Chip Rosenthal
  493.   .\" All rights reserved.
  494.   .\"
  495.   .\" Permission is granted to copy and create derivative works for any
  496. ***************
  497. *** 7,13 ****
  498.   .\" and conspicuously displayed on all copies of object code or
  499.   .\" distribution media.
  500.   .\"
  501. ! .\"    @(#)login.5    3.2    08:52:50    11/3/91
  502.   .\"
  503.   .TH LOGIN 5
  504.   .SH NAME
  505. --- 7,13 ----
  506.   .\" and conspicuously displayed on all copies of object code or
  507.   .\" distribution media.
  508.   .\"
  509. ! .\"    @(#)login.5    3.5    12:24:15    3/8/92
  510.   .\"
  511.   .TH LOGIN 5
  512.   .SH NAME
  513. ***************
  514. *** 299,304 ****
  515. --- 299,314 ----
  516.   file.
  517.   c.f. passwd(4).
  518.   .\"
  519. + .IP "SU_NAME (string)"
  520. + This parameter assigns a command name when ``su -'' is run.  For
  521. + example, if the parameter is defined as ``su'', then a
  522. + .I ps(1)
  523. + listing would show the command running as ``-su''.  If this parameter
  524. + is undefined, then a
  525. + .I ps(1)
  526. + listing would show the name of the actual shell being run, e.g.
  527. + something like ``-sh''.
  528. + .\"
  529.   .IP "SULOG_FILE (string)"
  530.   This parameter specifies a full pathname of a file in which
  531.   .I su
  532. ***************
  533. *** 327,337 ****
  534.   facility.
  535.   See SULOG_FILE for related information.
  536.   .\"
  537.   .IP "TTYPERM (number)"
  538.   The login terminal permissions are initialized to this value.  Typical
  539.   values will be \f(CW0622\fP to permit others write access to the line
  540.   or \f(CW0600\fP to secure the line from other users.  If not specified,
  541. ! the terminal permissions will be initialized to \f(CW0622\fP.
  542.   .\"
  543.   .IP "TTYTYPE_FILE (string)"
  544.   This parameter specifies the full pathname to a file which maps terminal
  545. --- 337,366 ----
  546.   facility.
  547.   See SULOG_FILE for related information.
  548.   .\"
  549. + .IP "TTYGROUP (string or number)"
  550. + The group ownership of the terminal is initialized to this group
  551. + name or number.  One well-known security attack involves forcing terminal
  552. + control sequences upon another user's terminal line.  This problem
  553. + can be averted by disabling permissions which allow other users to
  554. + access the terminal line, but this unfortunately prevents programs
  555. + such as
  556. + .I write
  557. + from operating.  Another solution is to use a version of the
  558. + .I write
  559. + program which filters out potentially dangerous character sequences,
  560. + make this program ``setgid'' to a special group, assign group ownership
  561. + of the terminal line to this special group, and assign permissions of
  562. + \f(CW0620\fP to the terminal line.  The TTYGROUP definition has been
  563. + provided for just this situation.  If this item is not defined, then
  564. + the group ownership of the terminal is initialized to the user's group
  565. + number.  See TTYPERMS for related information.
  566. + .\"
  567.   .IP "TTYPERM (number)"
  568.   The login terminal permissions are initialized to this value.  Typical
  569.   values will be \f(CW0622\fP to permit others write access to the line
  570.   or \f(CW0600\fP to secure the line from other users.  If not specified,
  571. ! the terminal permissions will be initialized to \f(CW0622\fP.  See
  572. ! TTYGROUP for related information.
  573.   .\"
  574.   .IP "TTYTYPE_FILE (string)"
  575.   This parameter specifies the full pathname to a file which maps terminal
  576. Index: login.defs
  577. *** rel3/login.defs    Fri Mar 27 10:25:52 1992
  578. --- login.defs    Fri Mar 27 10:26:57 1992
  579. ***************
  580. *** 1,7 ****
  581.   #
  582.   # /etc/login.defs - Configuration control definitions for the login package.
  583.   #
  584. ! #    @(#)login.defs    3.2    19:51:49    12/28/91
  585.   #
  586.   # Three items must be defined:  MAIL_DIR, ENV_SUPATH, and ENV_PATH.
  587.   # If unspecified, some arbitrary (and possibly incorrect) value will
  588. --- 1,7 ----
  589.   #
  590.   # /etc/login.defs - Configuration control definitions for the login package.
  591.   #
  592. ! #    @(#)login.defs    3.4    21:21:25    3/7/92
  593.   #
  594.   # Three items must be defined:  MAIL_DIR, ENV_SUPATH, and ENV_PATH.
  595.   # If unspecified, some arbitrary (and possibly incorrect) value will
  596. ***************
  597. *** 30,35 ****
  598. --- 30,36 ----
  599.   # Enable logging and display of /usr/adm/lastlog login time info.
  600.   #
  601.   LASTLOG_ENAB        yes
  602.   #
  603.   # Enable checking and display of mailbox status upon login.
  604.   #
  605. ***************
  606. *** 94,99 ****
  607. --- 95,108 ----
  608.   NOLOGINS_FILE    /etc/nologins
  609.   
  610.   #
  611. + # If defined, the command name to display when running "su -".  For
  612. + # example, if this is defined as "su" then a "ps" will display the
  613. + # command is "-su".  If not defined, then "ps" would display the
  614. + # name of the shell actually being run, e.g. something like "-sh".
  615. + #
  616. + SU_NAME        su
  617. + #
  618.   # *REQUIRED*
  619.   #   Directory where mailboxes reside, _or_ name of file, relative to the
  620.   #   home directory.  If you _do_ define both, MAIL_DIR takes precedence.
  621. ***************
  622. *** 127,132 ****
  623. --- 136,142 ----
  624.   # If defined, an HZ environment parameter spec.
  625.   #
  626.   ENV_HZ        HZ=50
  627.   #
  628.   # *REQUIRED*  The default PATH settings, for superuser and normal users.
  629.   #
  630. ***************
  631. *** 134,139 ****
  632. --- 144,164 ----
  633.   ENV_PATH    PATH=/local/bin:/usr/bin:/bin
  634.   
  635.   #
  636. + # Terminal permissions
  637. + #
  638. + #    TTYGROUP    Login tty will be assigned this group ownership.
  639. + #    TTYPERM        Login tty will be set to this permission.
  640. + #
  641. + # If you have a "write" program which is "setgid" to a special group
  642. + # which owns the terminals, define TTYGROUP to the group number and
  643. + # TTYPERM to 0620.  Otherwise leave TTYGROUP commented out and assign
  644. + # TTYPERM to either 622 or 600.
  645. + #
  646. + #TTYGROUP    7
  647. + #TTYPERM    0620
  648. + TTYPERM        0622
  649. + #
  650.   # Login configuration initializations:
  651.   #
  652.   #    ERASECHAR    Terminal ERASE character ('\010' = backspace).
  653. ***************
  654. *** 140,146 ****
  655.   #    KILLCHAR    Terminal KILL character ('\025' = CTRL/U).
  656.   #    UMASK        Default "umask" value.
  657.   #    ULIMIT        Default "ulimit" value.
  658. - #    TTYPERM        Login tty will be set to this permission.
  659.   #
  660.   # The ERASECHAR and KILLCHAR are used only on System V machines.
  661.   # The ULIMIT is used only if the system supports it.
  662. --- 165,170 ----
  663. ***************
  664. *** 151,157 ****
  665.   KILLCHAR    025
  666.   UMASK        022
  667.   ULIMIT        2097152
  668. ! TTYPERM        0622
  669.   #
  670.   # Password aging controls:
  671.   #
  672. --- 175,181 ----
  673.   KILLCHAR    025
  674.   UMASK        022
  675.   ULIMIT        2097152
  676.   #
  677.   # Password aging controls:
  678.   #
  679. ***************
  680. *** 164,166 ****
  681. --- 188,191 ----
  682.   PASS_MIN_DAYS    0
  683.   PASS_MIN_LEN    5
  684.   PASS_WARN_AGE    7
  685. Index: rad64.c
  686. *** rel3/rad64.c    Fri Mar 27 10:23:22 1992
  687. --- rad64.c    Fri Mar 27 10:26:59 1992
  688. ***************
  689. *** 1,5 ****
  690.   /*
  691. !  * Copyright 1989, 1990, John F. Haugh II
  692.    * All rights reserved.
  693.    *
  694.    * Permission is granted to copy and create derivative works for any
  695. --- 1,5 ----
  696.   /*
  697. !  * Copyright 1989, 1990, 1992, John F. Haugh II
  698.    * All rights reserved.
  699.    *
  700.    * Permission is granted to copy and create derivative works for any
  701. ***************
  702. *** 9,16 ****
  703.    * distribution media.
  704.    */
  705.   
  706.   #ifndef    lint
  707. ! static    char    sccsid[] = "@(#)rad64.c    3.2    19:44:25    12/10/90";
  708.   #endif
  709.   
  710.   /*
  711. --- 9,18 ----
  712.    * distribution media.
  713.    */
  714.   
  715. + #include "config.h"
  716.   #ifndef    lint
  717. ! static    char    sccsid[] = "@(#)rad64.c    3.3    20:38:01    3/7/92";
  718.   #endif
  719.   
  720.   /*
  721. ***************
  722. *** 68,73 ****
  723. --- 70,77 ----
  724.       return ('\0');
  725.   }
  726.   
  727. + #ifdef NEED_AL64
  728.   /*
  729.    * l64a - convert a long to a string of radix 64 characters
  730.    */
  731. ***************
  732. *** 106,108 ****
  733. --- 110,114 ----
  734.       }
  735.       return (value);
  736.   }
  737. + #endif /* NEED_A64L */
  738. Index: setup.c
  739. *** rel3/setup.c    Fri Mar 27 10:25:46 1992
  740. --- setup.c    Fri Mar 27 10:27:00 1992
  741. ***************
  742. *** 1,5 ****
  743.   /*
  744. !  * Copyright 1989, 1990, 1991, John F. Haugh II
  745.    * All rights reserved.
  746.    *
  747.    * Permission is granted to copy and create derivative works for any
  748. --- 1,5 ----
  749.   /*
  750. !  * Copyright 1989, 1990, 1991, 1992, John F. Haugh II
  751.    * All rights reserved.
  752.    *
  753.    * Permission is granted to copy and create derivative works for any
  754. ***************
  755. *** 12,17 ****
  756. --- 12,18 ----
  757.   #include <sys/types.h>
  758.   #include <stdio.h>
  759.   #include <utmp.h>
  760. + #include <grp.h>
  761.   
  762.   #ifdef    BSD
  763.   #include <strings.h>
  764. ***************
  765. *** 33,39 ****
  766.   #endif
  767.   
  768.   #ifndef    lint
  769. ! static    char    sccsid[] = "@(#)setup.c    3.9    11:58:33    12/28/91";
  770.   #endif
  771.   
  772.   #ifndef    SU
  773. --- 34,40 ----
  774.   #endif
  775.   
  776.   #ifndef    lint
  777. ! static    char    sccsid[] = "@(#)setup.c    3.11    12:21:39    3/8/92";
  778.   #endif
  779.   
  780.   #ifndef    SU
  781. ***************
  782. *** 74,81 ****
  783. --- 75,84 ----
  784.       char    tty[sizeof utent.ut_line + 8];
  785.   #endif
  786.       char    *cp;
  787. +     char    *group;        /* TTY group name or number */
  788.       char    *maildir;    /* the directory in which the mailbox resides */
  789.       char    *mailfile;    /* the name of the mailbox */
  790. +     struct    group    *grent;
  791.       int    i;
  792.       long    l;
  793.   
  794. ***************
  795. *** 82,88 ****
  796.   #ifndef    SU
  797.       (void) strcat (strcpy (tty, "/dev/"), utent.ut_line);
  798.   
  799. !     if (chown (tty, info->pw_uid, info->pw_gid) ||
  800.               chmod (tty, getdef_num("TTYPERM", 0622))) {
  801.           (void) sprintf (buf, "Unable to change tty %s", tty);
  802.   #ifdef    USE_SYSLOG
  803. --- 85,100 ----
  804.   #ifndef    SU
  805.       (void) strcat (strcpy (tty, "/dev/"), utent.ut_line);
  806.   
  807. !     if (! (group = getdef_str ("TTYGROUP")))
  808. !         i = info->pw_gid;
  809. !     else if (group[0] >= '0' && group[0] <= '9')
  810. !         i = atoi (group);
  811. !     else if (grent = getgrnam (group))
  812. !         i = grent->gr_gid;
  813. !     else
  814. !         i = info->pw_gid;
  815. !     if (chown (tty, info->pw_uid, i) ||
  816.               chmod (tty, getdef_num("TTYPERM", 0622))) {
  817.           (void) sprintf (buf, "Unable to change tty %s", tty);
  818.   #ifdef    USE_SYSLOG
  819. Index: shadow.c
  820. *** rel3/shadow.c    Fri Mar 27 10:23:00 1992
  821. --- shadow.c    Fri Mar 27 10:27:02 1992
  822. ***************
  823. *** 1,5 ****
  824.   /*
  825. !  * Copyright 1989, 1990, John F. Haugh II
  826.    * All rights reserved.
  827.    *
  828.    * Permission is granted to copy and create derivative works for any
  829. --- 1,5 ----
  830.   /*
  831. !  * Copyright 1989, 1990, 1991, 1992, John F. Haugh II
  832.    * All rights reserved.
  833.    *
  834.    * Permission is granted to copy and create derivative works for any
  835. ***************
  836. *** 13,18 ****
  837. --- 13,22 ----
  838.   #include "config.h"
  839.   #include <stdio.h>
  840.   
  841. + #ifdef    STDLIB_H
  842. + #include <stdlib.h>
  843. + #endif
  844.   #ifndef    BSD
  845.   #include <string.h>
  846.   #include <memory.h>
  847. ***************
  848. *** 31,39 ****
  849.   static    int    dbmerror;
  850.   #endif
  851.   
  852.   #ifndef    lint
  853. ! static    char    sccsid[] = "@(#)shadow.c    3.9    08:44:32    9/12/91";
  854.   #endif
  855.   
  856.   static    FILE    *shadow;
  857. --- 35,42 ----
  858.   static    int    dbmerror;
  859.   #endif
  860.   
  861.   #ifndef    lint
  862. ! static    char    sccsid[] = "@(#)shadow.c    3.10    20:38:10    3/7/92";
  863.   #endif
  864.   
  865.   static    FILE    *shadow;
  866. ***************
  867. *** 198,203 ****
  868. --- 201,209 ----
  869.   
  870.   struct spwd
  871.   *getspnam (name)
  872. + #if    __STDC__
  873. + const
  874. + #endif
  875.   char    *name;
  876.   {
  877.       struct    spwd    *sp;
  878. ***************
  879. *** 238,243 ****
  880. --- 244,252 ----
  881.   
  882.   int
  883.   putspent (sp, fp)
  884. + #if    __STDC__
  885. + const
  886. + #endif
  887.   struct    spwd    *sp;
  888.   FILE    *fp;
  889.   {
  890. Index: smain.c
  891. *** rel3/smain.c    Fri Mar 27 10:25:38 1992
  892. --- smain.c    Fri Mar 27 10:27:04 1992
  893. ***************
  894. *** 13,19 ****
  895.   #include <stdio.h>
  896.   
  897.   #ifndef    lint
  898. ! static    char    sccsid[] = "@(#)smain.c    3.10    12:04:52    12/28/91";
  899.   #endif
  900.   
  901.   /*
  902. --- 13,19 ----
  903.   #include <stdio.h>
  904.   
  905.   #ifndef    lint
  906. ! static    char    sccsid[] = "@(#)smain.c    3.11    21:21:19    3/7/92";
  907.   #endif
  908.   
  909.   /*
  910. ***************
  911. *** 171,176 ****
  912. --- 171,177 ----
  913.   {
  914.       SIGTYPE    (*oldsig)();
  915.       char    *cp;
  916. +     char    arg0[64];
  917.       char    *tty = 0;        /* Name of tty SU is run from        */
  918.       int    doshell = 0;
  919.       int    fakelogin = 0;
  920. ***************
  921. *** 445,455 ****
  922.               motd ();
  923.               mailcheck ();
  924.           }
  925. !         cp = "-su";
  926. !     } else if (cp = strrchr (pwent.pw_shell, '/'))
  927. !         cp++;
  928. !     else
  929. !         cp = pwent.pw_shell;
  930.   
  931.       shell (pwent.pw_shell, cp);
  932.   #ifdef    USE_SYSLOG
  933. --- 446,467 ----
  934.               motd ();
  935.               mailcheck ();
  936.           }
  937. !         if ((cp = getdef_str("SU_NAME")) == NULL) {
  938. !             if (cp = strrchr (pwent.pw_shell, '/'))
  939. !                 cp++;
  940. !             else
  941. !                     cp = pwent.pw_shell;
  942. !         }
  943. !         arg0[0] = '-';
  944. !         strncpy(arg0+1, cp, sizeof(arg0)-1);
  945. !         arg0[sizeof(arg0)-1] = '\0';
  946. !         cp = arg0;
  947. !     } else {
  948. !         if (cp = strrchr (pwent.pw_shell, '/'))
  949. !             cp++;
  950. !         else
  951. !                 cp = pwent.pw_shell;
  952. !     }
  953.   
  954.       shell (pwent.pw_shell, cp);
  955.   #ifdef    USE_SYSLOG
  956. Index: sulogin.c
  957. *** rel3/sulogin.c    Fri Mar 27 10:25:55 1992
  958. --- sulogin.c    Fri Mar 27 10:27:06 1992
  959. ***************
  960. *** 10,15 ****
  961. --- 10,16 ----
  962.    */
  963.   
  964.   #include <sys/types.h>
  965. + #include <signal.h>
  966.   #include <stdio.h>
  967.   #include "pwd.h"
  968.   #include <utmp.h>
  969. ***************
  970. *** 24,29 ****
  971. --- 25,44 ----
  972.   #endif
  973.   #include "config.h"
  974.   
  975. + #if defined(BSD) || defined(SUN)
  976. + #include <sgtty.h>
  977. + #define    USE_SGTTY    1
  978. + #endif
  979. + #if defined(USG) || defined(SUN4)
  980. + #ifdef    _POSIX_SOURCE
  981. + #include <termios.h>
  982. + #define    USE_TERMIOS    1
  983. + #else
  984. + #include <termio.h>
  985. + #define    USE_TERMIO    1
  986. + #endif
  987. + #endif
  988.   #ifdef    USE_SYSLOG
  989.   #include <syslog.h>
  990.   
  991. ***************
  992. *** 33,39 ****
  993.   #endif
  994.   
  995.   #ifndef    lint
  996. ! static    char    sccsid[] = "@(#)sulogin.c    3.8    09:42:53    1/20/92";
  997.   #endif
  998.   
  999.   char    name[BUFSIZ];
  1000. --- 48,54 ----
  1001.   #endif
  1002.   
  1003.   #ifndef    lint
  1004. ! static    char    sccsid[] = "@(#)sulogin.c    3.10    23:56:58    3/7/92";
  1005.   #endif
  1006.   
  1007.   char    name[BUFSIZ];
  1008. ***************
  1009. *** 45,50 ****
  1010. --- 60,75 ----
  1011.   struct    passwd    pwent;
  1012.   struct    utmp    utent;
  1013.   
  1014. + #ifdef    USE_SGTTY
  1015. + struct    sgttyb    termio;
  1016. + #endif
  1017. + #ifdef    USE_TERMIO
  1018. + struct    termio    termio;
  1019. + #endif
  1020. + #ifdef    USE_TERMIOS
  1021. + struct    termios    termio;
  1022. + #endif
  1023.   #ifndef    MAXENV
  1024.   #define    MAXENV    64
  1025.   #endif
  1026. ***************
  1027. *** 65,72 ****
  1028.   #define    RETRIES    3
  1029.   #endif
  1030.   
  1031.   /*ARGSUSED*/
  1032. ! int    main (argc, argv, envp)
  1033.   int    argc;
  1034.   char    **argv;
  1035.   char    **envp;
  1036. --- 90,104 ----
  1037.   #define    RETRIES    3
  1038.   #endif
  1039.   
  1040. + catch (sig)
  1041. + int    sig;
  1042. + {
  1043. +     exit (1);
  1044. + }
  1045.   /*ARGSUSED*/
  1046. ! int
  1047. ! main (argc, argv, envp)
  1048.   int    argc;
  1049.   char    **argv;
  1050.   char    **envp;
  1051. ***************
  1052. *** 77,82 ****
  1053. --- 109,135 ----
  1054.       char    *tz ();
  1055.       char    *cp;
  1056.   
  1057. + #ifdef    USE_SGTTY
  1058. +     ioctl (0, TIOCGETP, &termio);
  1059. +     termio.sg_flags |= (ECHO|CRMOD);
  1060. +     termio.sg_flags &= ~(RAW|CBREAK);
  1061. +     ioctl (0, TIOCSETN, &termio);
  1062. + #endif
  1063. + #ifdef    USE_TERMIO
  1064. +     ioctl (0, TCSETA, &termio);
  1065. +     termio.c_iflag |= (ICRNL|IXON);
  1066. +     termio.c_oflag |= (OPOST|ONLCR);
  1067. +     termio.c_cflag |= (CREAD);
  1068. +     termio.c_lflag |= (ISIG|ICANON|ECHO|ECHOE|ECHOK);
  1069. +     ioctl (0, TCSETAF, &termio);
  1070. + #endif
  1071. + #ifdef    USE_TERMIOS
  1072. +     tcgetattr (0, &termio);
  1073. +     termio.c_iflag |= (ICRNL|IXON);
  1074. +     termio.c_oflag |= (CREAD);
  1075. +     termio.c_lflag |= (ECHO|ECHOE|ECHOK|ICANON|ISIG);
  1076. +     tcsetattr (0, TCSANOW, &termio);
  1077. + #endif
  1078.   #ifdef    USE_SYSLOG
  1079.       openlog ("sulogin", LOG_PID|LOG_CONS|LOG_NOWAIT, LOG_AUTH);
  1080.   #endif
  1081. ***************
  1082. *** 122,128 ****
  1083.           addenv (cp);        /* set the default $HZ, if one */
  1084.       (void) strcpy (name, "root");    /* KLUDGE!!! */
  1085.   
  1086. !     alarm (ALARM);        /* only wait so long ... */
  1087.       while (1) {        /* repeatedly get login/password pairs */
  1088.           entry (name, &pwent);    /* get entry from password file */
  1089.           if (pwent.pw_name == (char *) 0) {
  1090. --- 175,183 ----
  1091.           addenv (cp);        /* set the default $HZ, if one */
  1092.       (void) strcpy (name, "root");    /* KLUDGE!!! */
  1093.   
  1094. !     signal (SIGALRM, catch);    /* exit if the timer expires */
  1095. !     alarm (ALARM);            /* only wait so long ... */
  1096.       while (1) {        /* repeatedly get login/password pairs */
  1097.           entry (name, &pwent);    /* get entry from password file */
  1098.           if (pwent.pw_name == (char *) 0) {
  1099. ***************
  1100. *** 160,165 ****
  1101. --- 215,221 ----
  1102.   #endif
  1103.       }
  1104.       alarm (0);
  1105. +     signal (SIGALRM, SIG_DFL);
  1106.       environ = newenvp;        /* make new environment active */
  1107.   
  1108.       puts ("Entering System Maintenance Mode");
  1109. Index: Makefile.svr4
  1110. *** /dev/null    Fri Mar 27 10:17:32 1992
  1111. --- Makefile.svr4    Fri Mar 27 10:27:08 1992
  1112. ***************
  1113. *** 0 ****
  1114. --- 1,577 ----
  1115. + #
  1116. + # Copyright 1988,1989,1990,1991,1992 John F. Haugh II
  1117. + # All rights reserved.
  1118. + #
  1119. + # Permission is granted to copy and create derivative works for any
  1120. + # non-commercial purpose, provided this copyright notice is preserved
  1121. + # in all copies of source code, or included in human readable form
  1122. + # and conspicuously displayed on all copies of object code or
  1123. + # distribution media.
  1124. + #
  1125. + #    @(#)Makefile.svr4    3.3    11:27:39  - Shadow password system (SVR4)
  1126. + #
  1127. + #    @(#)Makefile.svr4    3.3    11:27:39    3/19/92
  1128. + #
  1129. + SHELL = /sbin/sh
  1130. + #
  1131. + # Set this flag to decide what level of code "get" returns.
  1132. + # The base USENET release was release 1.  It is no longer supported.
  1133. + # The version with the utilities added was release 2.
  1134. + # The version with database-like file access is release 3.
  1135. + RELEASE = 3
  1136. + GFLAGS = -t -r$(RELEASE)
  1137. + # Define the directory login is copied to.  SVr4 uses /usr/bin.
  1138. + LOGINDIR = /usr/bin
  1139. + SBIN=/usr/sbin
  1140. + # system (admin) commands
  1141. + UBIN=/usr/bin
  1142. + # user commands
  1143. + # SVr4 doesn't need extra libraries
  1144. + NDIR =
  1145. + # Pick your favorite C compiler and tags command
  1146. + CC = cc
  1147. + TAGS = ctags
  1148. + # OS.  This is SVr4
  1149. + OS = -DUSG -DSVR4
  1150. + # SVr4 doesn't use ranlib
  1151. + RANLIB = echo
  1152. + # Configuration Flags
  1153. + #
  1154. + #    DEST_INCLUDE_DIR - local include files
  1155. + #    LIBS - system libraries
  1156. + #        -lsocket - needed for TCP/IP and possibly SYSLOG
  1157. + #        -ldbm or -lndbm - needed for DBM support
  1158. + #        -lcrypt - needed for SCO crypt() functions
  1159. + #    CFLAGS - C compiler flags
  1160. + #        -DLAI_TCP - needed for SCO Xenix Lachman TCP/IP
  1161. + DEST_INCLUDE_DIR = /usr/include
  1162. + # Flags for SVr4
  1163. + CFLAGS = -O -g $(OS) -I$(DEST_INCLUDE_DIR)
  1164. + LIBS = 
  1165. + LDFLAGS = -g
  1166. + # Library is libsec.a
  1167. + LIBSEC = libsec.a
  1168. + # Names for root user and group, and bin user and group.
  1169. + RUID = root
  1170. + RGID = root
  1171. + BUID = bin
  1172. + BGID = bin
  1173. + # Where the login.defs file will be copied.  Must agree with config.h
  1174. + DEST_LOGIN_DEFS = /etc/login.defs
  1175. + # Rules for .L (lint) files.
  1176. + .SUFFIXES: .L
  1177. + LINT = lint
  1178. + LINTFLAGS = $(OS) -Dlint
  1179. + .c.L:
  1180. +     $(LINT) -pxu $(LINTFLAGS) $*.c > $*.L
  1181. + LOBJS = lmain.o login.o env.o valid.o setup.o shell.o age.o \
  1182. +     utmp.o sub.o mail.o motd.o log.o ttytype.o failure.o \
  1183. +     tz.o console.o hushed.o
  1184. + LSRCS = lmain.c login.c env.c valid.c setup.c shell.c age.c \
  1185. +     utmp.c sub.c mail.c motd.c log.c ttytype.c failure.c \
  1186. +     tz.c console.c hushed.c
  1187. + SOBJS = smain.o env.o entry.o susetup.o shell.o \
  1188. +     sub.o mail.o motd.o sulog.o age.o tz.o hushed.o
  1189. + SSRCS = smain.c env.c entry.c setup.c shell.c \
  1190. +     pwent.c sub.c mail.c motd.c sulog.c shadow.c age.c pwpack.c rad64.c \
  1191. +     tz.c hushed.c
  1192. + POBJS = passwd.o obscure.o
  1193. + PSRCS = passwd.c obscure.c
  1194. + GPSRCS = gpmain.c
  1195. + GPOBJS = gpmain.o
  1196. + PWOBJS = pwconv.o
  1197. + PWSRCS = pwconv.c pwent.c shadow.c pwpack.c rad64.c
  1198. + PWUNOBJS = pwunconv.o
  1199. + PWUNSRCS = pwunconv.c pwent.c shadow.c pwpack.c rad64.c
  1200. + SULOGOBJS = sulogin.o entry.o env.o age.o setup.o \
  1201. +     valid.o shell.o tz.o
  1202. + SULOGSRCS = sulogin.c entry.c env.c age.c pwent.c setup.c \
  1203. +     shadow.c shell.c valid.c pwpack.c tz.c
  1204. + MKPWDOBJS = mkpasswd.o
  1205. + MKPWDSRCS = mkpasswd.c
  1206. + NGSRCS = newgrp.c env.c shell.c
  1207. + NGOBJS = newgrp.o env.o shell.o
  1208. + CHFNSRCS = chfn.c fields.c
  1209. + CHFNOBJS = chfn.o fields.o
  1210. + CHSHSRCS = chsh.c fields.c
  1211. + CHSHOBJS = chsh.o fields.o
  1212. + CHAGEOBJS = chage.o fields.o
  1213. + CHAGESRCS = chage.c fields.c
  1214. + CHPASSOBJS = chpasswd.o
  1215. + CHPASSSRCS = chpasswd.c
  1216. + DPSRCS = dpmain.c
  1217. + DPOBJS = dpmain.o
  1218. + ALLSRCS = age.c dialchk.c dialup.c entry.c env.c lmain.c log.c login.c mail.c \
  1219. +     motd.c obscure.c passwd.c pwconv.c pwent.c pwunconv.c getpass.c \
  1220. +     setup.c shadow.c shell.c smain.c sub.c sulog.c sulogin.c ttytype.c \
  1221. +     utmp.c valid.c port.c newgrp.c gpmain.c grent.c mkpasswd.c pwpack.c \
  1222. +     chfn.c chsh.c chage.c rad64.c encrypt.c chpasswd.c shadowio.c pwio.c \
  1223. +     newusers.c groupio.c fields.c pwdbm.c grpack.c grdbm.c sppack.c \
  1224. +     spdbm.c dpmain.c gshadow.c gsdbm.c gspack.c sgroupio.c useradd.c \
  1225. +     userdel.c patchlevel.h usermod.c copydir.c mkrmdir.c groupadd.c \
  1226. +     groupdel.c groupmod.c tz.c console.c hushed.c getdef.c scologin.c \
  1227. +     logoutd.c groups.c
  1228. + FILES1 = README patchlevel.h newgrp.c Makefile config.h pwunconv.c obscure.c \
  1229. +     age.c id.c
  1230. + FILES2 = passwd.c port.c lmain.c sulogin.c pwpack.c dialup.c
  1231. + FILES3 = chfn.c chsh.c smain.c faillog.c pwconv.c shadow.c
  1232. + FILES4 = gpmain.c chage.c pwent.c valid.c setup.c entry.c ttytype.c port.h
  1233. + FILES5 = pwio.c encrypt.c chpasswd.c newusers.c rad64.c dialchk.c faillog.h \
  1234. +     pwdbm.c grdbm.c gshadow.c sppack.c
  1235. + FILES6 = gspack.c spdbm.c lastlog.h shell.c login.c sub.c dpmain.c mail.c \
  1236. +     env.c pwd.h.m4 grpack.c shadow.h log.c grent.c motd.c dialup.h \
  1237. +     fields.c gsdbm.c utmp.c failure.c
  1238. + FILES7 = groupio.c shadowio.c sgroupio.c groups.c copydir.c mkrmdir.c \
  1239. +     mkpasswd.c
  1240. + FILES8 = useradd.c usermod.c login.defs
  1241. + FILES9 = groupadd.c groupdel.c groupmod.c tz.c console.c hushed.c getdef.c \
  1242. +     scologin.c logoutd.c sulog.c getpass.c userdel.c
  1243. + FILES_SUN4 = Makefile.sun4 README.sun4 config.h.sun4
  1244. + FILES_SVR4 = Makefile.svr4 config.h.svr4
  1245. + MAN_1 = chage.1 chfn.1 chsh.1 id.1 login.1 newgrp.1 passwd.1 su.1 \
  1246. +     useradd.1 userdel.1 usermod.1 groupadd.1 groupdel.1 groupmod.1 \
  1247. +     groups.1
  1248. + MAN_3 = shadow.3
  1249. + MAN_4 = faillog.4 passwd.4 porttime.4 shadow.4
  1250. + MAN_5 = login.5
  1251. + MAN_8 = chpasswd.8 dpasswd.8 faillog.8 newusers.8 pwconv.8 pwunconv.8 \
  1252. +     sulogin.8 mkpasswd.8 logoutd.8
  1253. + DOCS1 = $(MAN_1) $(MAN_3) $(MAN_4)
  1254. + DOCS2 = $(MAN_5) $(MAN_8)
  1255. + DOCS = $(DOCS1) $(DOCS2)
  1256. + BINS = su login pwconv pwunconv passwd sulogin faillog newgrp gpasswd \
  1257. +     mkpasswd chfn chsh chage chpasswd newusers dpasswd id useradd \
  1258. +     userdel usermod groupadd groupdel groupmod $(SCOLOGIN) logoutd \
  1259. +     groups
  1260. + all:    $(BINS) $(DOCS)
  1261. + .PRECIOUS: libshadow.a
  1262. + libshadow.a: \
  1263. +     libshadow.a(dialchk.o) \
  1264. +     libshadow.a(dialup.o) \
  1265. +     libshadow.a(encrypt.o) \
  1266. +     libshadow.a(getdef.o) \
  1267. +     libshadow.a(getpass.o) \
  1268. +     libshadow.a(grdbm.o) \
  1269. +     libshadow.a(grent.o) \
  1270. +     libshadow.a(groupio.o) \
  1271. +     libshadow.a(grpack.o) \
  1272. +     libshadow.a(gshadow.o) \
  1273. +     libshadow.a(gsdbm.o) \
  1274. +     libshadow.a(gspack.o) \
  1275. +     libshadow.a(sgroupio.o) \
  1276. +     libshadow.a(port.o) \
  1277. +     libshadow.a(pwdbm.o) \
  1278. +     libshadow.a(pwent.o) \
  1279. +     libshadow.a(pwio.o) \
  1280. +     libshadow.a(pwpack.o) \
  1281. +     libshadow.a(rad64.o) \
  1282. +     libshadow.a(spdbm.o) \
  1283. +     libshadow.a(shadow.o) \
  1284. +     libshadow.a(shadowio.o) \
  1285. +     libshadow.a(sppack.o)
  1286. +     $(RANLIB) libshadow.a
  1287. + libsec: $(LIBSEC)(shadow.o)
  1288. +     $(RANLIB) $(LIBSEC)
  1289. + install: all
  1290. +     strip $(BINS)
  1291. +     mcs -da '@(#)shadow 3.1.1' $(BINS)
  1292. +     cp login $(LOGINDIR)/login
  1293. +     cp mkpasswd pwconv pwunconv sulogin chpasswd newusers \
  1294. +         useradd userdel usermod groupadd groupdel groupmod logoutd $(SBIN)
  1295. +     cp su passwd gpasswd dpasswd faillog newgrp chfn chsh chage id $(UBIN)
  1296. +     cp dialup.h shadow.h pwd.h /usr/include
  1297. +     chown $(RUID) $(LOGINDIR)/login $(SBIN)/pwconv $(SBIN)/pwunconv $(SBIN)/sulogin \
  1298. +         $(UBIN)/su $(UBIN)/passwd $(UBIN)/gpasswd $(UBIN)/newgrp $(SBIN)/mkpasswd \
  1299. +         $(UBIN)/dpasswd $(UBIN)/chsh $(UBIN)/chfn $(UBIN)/chage $(SBIN)/useradd \
  1300. +         $(SBIN)/userdel $(SBIN)/usermod $(SBIN)/groupadd $(SBIN)/groupdel \
  1301. +         $(SBIN)/groupmod $(SBIN)/logoutd
  1302. +     chgrp $(RGID) $(LOGINDIR)/login $(SBIN)/pwconv $(SBIN)/pwunconv $(SBIN)/sulogin \
  1303. +         $(UBIN)/su $(UBIN)/passwd $(UBIN)/gpasswd $(UBIN)/newgrp $(SBIN)/mkpasswd \
  1304. +         $(UBIN)/dpasswd $(UBIN)/chsh $(UBIN)/chfn $(UBIN)/chage $(SBIN)/useradd \
  1305. +         $(SBIN)/userdel $(SBIN)/usermod $(SBIN)/groupadd $(SBIN)/groupdel \
  1306. +         $(SBIN)/groupmod $(SBIN)/logoutd
  1307. +     chown $(BUID) $(UBIN)/faillog $(UBIN)/id /usr/include/shadow.h \
  1308. +         /usr/include/dialup.h /usr/include/pwd.h
  1309. +     chgrp $(BGID) $(UBIN)/faillog $(UBIN)/id /usr/include/shadow.h \
  1310. +         /usr/include/dialup.h /usr/include/pwd.h
  1311. +     chmod 700 $(SBIN)/pwconv $(SBIN)/pwunconv $(SBIN)/sulogin $(SBIN)/mkpasswd \
  1312. +         $(SBIN)/chpasswd $(SBIN)/newusers $(UBIN)/dpasswd $(UBIN)/chage \
  1313. +         $(SBIN)/useradd $(SBIN)/userdel $(SBIN)/usermod $(SBIN)/groupadd \
  1314. +         $(SBIN)/groupdel $(SBIN)/groupmod $(SBIN)/logoutd
  1315. +     chmod 4711 $(LOGINDIR)/login $(UBIN)/su $(UBIN)/passwd $(UBIN)/gpasswd \
  1316. +         $(UBIN)/newgrp $(UBIN)/chfn $(UBIN)/chsh
  1317. +     chmod 711 $(UBIN)/faillog $(UBIN)/id
  1318. +     chmod 444 /usr/include/shadow.h /usr/include/dialup.h \
  1319. +         /usr/include/pwd.h
  1320. +     [ -f /etc/login.defs ] || (cp login.defs /etc ; \
  1321. +         chown $(RUID) /etc/login.defs ; \
  1322. +         chgrp $(RGID) /etc/login.defs ; \
  1323. +         chmod 600 /etc/login.defs )
  1324. +     [ -z "$(SCOLOGIN)" ] || (cp scologin $(UBIN)/login ; \
  1325. +         chown $(RUID) $(UBIN)/login ; \
  1326. +         chgrp $(RGID) $(UBIN)/login ; \
  1327. +         chmod 755 $(UBIN)/login )
  1328. + lint:    su.lint login.lint pwconv.lint pwunconv.lint passwd.lint sulogin.lint \
  1329. +     faillog.lint newgrp.lint gpasswd.lint mkpasswd.lint chfn.lint \
  1330. +     chsh.lint chage.lint dpasswd.lint id.lint useradd.lint userdel.lint \
  1331. +     usermod.lint groupadd.lint groupdel.lint groupmod.lint logoutd.lint \
  1332. +     $(ALLSRCS:.c=.L)
  1333. + tags:    $(ALLSRCS)
  1334. +     $(TAGS) $(ALLSRCS)
  1335. + README:
  1336. +     [ -f s.README ] && get -t -r$(RELEASE) s.README
  1337. +     
  1338. + $(DOCS):
  1339. +     [ -f s.$@ ] && get -t -r$(RELEASE) s.$@
  1340. + login.defs:
  1341. +     [ -f s.login.defs ] && get -t -r$(RELEASE) s.login.defs
  1342. + Makefile.sun4:
  1343. +     [ -f s.Makefile.sun4 ] && get -t -r$(RELEASE) s.Makefile.sun4
  1344. + Makefile.svr4:
  1345. +     [ -f s.Makefile.svr4 ] && get -t -r$(RELEASE) s.Makefile.svr4
  1346. + README.sun4:
  1347. +     [ -f s.README.sun4 ] && get -t -r$(RELEASE) s.README.sun4
  1348. + config.h.sun4:
  1349. +     [ -f s.config.h.sun4 ] && get -t -r$(RELEASE) s.config.h.sun4
  1350. + config.h.svr4:
  1351. +     [ -f s.config.h.svr4 ] && get -t -r$(RELEASE) s.config.h.svr4
  1352. + login:    $(LOBJS) libshadow.a
  1353. +     $(CC) -o login $(LDFLAGS) $(LOBJS) libshadow.a $(LIBS)
  1354. + login.lint: $(LSRCS)
  1355. +     $(LINT) $(LINTFLAGS) $(LSRCS) > login.lint
  1356. + su:    $(SOBJS) libshadow.a
  1357. +     $(CC) -o su $(LDFLAGS) $(SOBJS) libshadow.a $(LIBS)
  1358. + su.lint:    $(SSRCS)
  1359. +     $(LINT) $(LINTFLAGS) -DSU $(SSRCS) > su.lint
  1360. + passwd:    $(POBJS) libshadow.a
  1361. +     $(CC) -o passwd $(LDFLAGS) $(POBJS) libshadow.a $(LIBS)
  1362. + passwd.lint: $(PSRCS)
  1363. +     $(LINT) $(LINTFLAGS) -DPASSWD $(PSRCS) > passwd.lint
  1364. + gpasswd: $(GPOBJS) libshadow.a
  1365. +     $(CC) -o gpasswd $(LDFLAGS) $(GPOBJS) libshadow.a $(LIBS)
  1366. + gpasswd.lint: $(GPSRCS)
  1367. +     $(LINT) $(LINTFLAGS) $(GPSRCS) > gpasswd.lint
  1368. + dpasswd: $(DPOBJS) libshadow.a
  1369. +     $(CC) -o dpasswd $(LDFLAGS) $(DPOBJS) libshadow.a $(LIBS)
  1370. + dpasswd.lint: $(DPSRCS)
  1371. +     $(LINT) $(LINTFLAGS) $(DPSRCS) > dpasswd.lint
  1372. + pwconv:    $(PWOBJS) libshadow.a config.h
  1373. +     $(CC) -o pwconv $(LDFLAGS) $(PWOBJS) libshadow.a $(LIBS)
  1374. + pwconv.lint: $(PWSRCS) config.h
  1375. +     $(LINT) $(LINTFLAGS) -DPASSWD $(PWSRCS) > pwconv.lint
  1376. + pwunconv: $(PWUNOBJS) libshadow.a config.h
  1377. +     $(CC) -o pwunconv $(LDFLAGS) $(PWUNOBJS) libshadow.a $(LIBS)
  1378. + pwunconv.lint: $(PWUNSRCS)
  1379. +     $(LINT) $(LINTFLAGS) -DPASSWD $(PWUNSRCS) > pwunconv.lint
  1380. + sulogin: $(SULOGOBJS) libshadow.a
  1381. +     $(CC) -o sulogin $(LDFLAGS) $(SULOGOBJS) libshadow.a $(LIBS)
  1382. + sulogin.lint: $(SULOGSRCS)
  1383. +     $(LINT) $(LINTFLAGS) $(SULOGSRCS) > sulogin.lint
  1384. + faillog: faillog.o
  1385. +     $(CC) -o faillog $(LDFLAGS) faillog.o $(LIBS)
  1386. + faillog.lint: faillog.c faillog.h config.h
  1387. +     $(LINT) $(LINTFLAGS) faillog.c > faillog.lint
  1388. + mkpasswd: $(MKPWDOBJS) libshadow.a
  1389. +     $(CC) -o mkpasswd $(LDFLAGS) $(MKPWDOBJS) libshadow.a $(LIBS)
  1390. + mkpasswd.lint: $(MKPWDSRCS)
  1391. +     $(LINT) $(LINTFLAGS) $(MKPWDSRCS) > mkpasswd.lint
  1392. + newgrp: $(NGOBJS) libshadow.a
  1393. +     $(CC) -o newgrp $(LDFLAGS) $(NGOBJS) libshadow.a $(LIBS)
  1394. + newgrp.lint: $(NGSRCS)
  1395. +     $(LINT) $(LINTFLAGS) $(NGSRCS) > newgrp.lint
  1396. + chfn:    $(CHFNOBJS) libshadow.a
  1397. +     $(CC) -o chfn $(LDFLAGS) $(CHFNOBJS) libshadow.a $(LIBS)
  1398. + chfn.lint:    $(CHFNSRCS)
  1399. +     $(LINT) $(LINTFLAGS) $(CHFNSRCS) > chfn.lint
  1400. + chsh:    $(CHSHOBJS) libshadow.a
  1401. +     $(CC) -o chsh $(LDFLAGS) $(CHSHOBJS) libshadow.a $(LIBS)
  1402. + chsh.lint: $(CHSHSRCS)
  1403. +     $(LINT) $(LINTFLAGS) $(CHSHSRCS) > chsh.lint
  1404. + chage:    $(CHAGEOBJS) libshadow.a
  1405. +     $(CC) -o chage $(LDFLAGS) $(CHAGEOBJS) libshadow.a $(LIBS)
  1406. + chage.lint: $(CHAGESRCS)
  1407. +     $(LINT) $(LINTFLAGS) -DPASSWD $(CHAGESRCS) > chage.lint
  1408. + chpasswd: $(CHPASSOBJS) libshadow.a
  1409. +     $(CC) -o chpasswd $(LDFLAGS) $(CHPASSOBJS) libshadow.a $(LIBS)
  1410. + chpasswd.lint: $(CHPASSSRCS)
  1411. +     $(LINT) $(LINTFLAGS) $(CHPASSSRCS) > chpasswd.lint
  1412. + newusers: newusers.o libshadow.a
  1413. +     $(CC) -o newusers $(LDFLAGS) newusers.o libshadow.a $(LIBS)
  1414. + newusers.lint: newusers.c
  1415. +     $(LINT) $(LINTFLAGS) newusers.c > newusers.lint
  1416. +     
  1417. + id: id.o libshadow.a
  1418. +     $(CC) -o id $(LDFLAGS) id.o libshadow.a $(LIBS)
  1419. + id.lint: id.c
  1420. +     $(LINT) $(LINTFLAGS) id.c > id.lint
  1421. + groups: groups.o libshadow.a
  1422. +     $(CC) -o groups $(LDFLAGS) groups.o libshadow.a $(LIBS)
  1423. + groups.lint: groups.c
  1424. +     $(LINT) $(LINTFLAGS) groups.c > groups.lint
  1425. + useradd: useradd.o copydir.o mkrmdir.o libshadow.a
  1426. +     $(CC) -o useradd $(LDFLAGS) useradd.o copydir.o mkrmdir.o \
  1427. +         libshadow.a $(LIBS) $(NDIR)
  1428. + useradd.lint: useradd.c copydir.c mkrmdir.c
  1429. +     $(LINT) $(LINTFLAGS) useradd.c copydir.c mkrmdir.c > useradd.lint
  1430. + userdel: userdel.o copydir.o mkrmdir.o libshadow.a
  1431. +     $(CC) -o userdel $(LDFLAGS) userdel.o copydir.o mkrmdir.o \
  1432. +         libshadow.a $(LIBS) $(NDIR)
  1433. + userdel.lint: userdel.c copydir.c mkrmdir.c
  1434. +     $(LINT) $(LINTFLAGS) userdel.c copydir.c mkrmdir.c > userdel.lint
  1435. + usermod: usermod.o copydir.o mkrmdir.o libshadow.a
  1436. +     $(CC) -o usermod $(LDFLAGS) usermod.o copydir.o mkrmdir.o \
  1437. +         libshadow.a $(LIBS) $(NDIR)
  1438. + usermod.lint: usermod.c copydir.c mkrmdir.c
  1439. +     $(LINT) $(LINTFLAGS) usermod.c copydir.c mkrmdir.c > usermod.lint
  1440. + groupadd: groupadd.o libshadow.a
  1441. +     $(CC) -o groupadd $(LDFLAGS) groupadd.o libshadow.a $(LIBS)
  1442. + groupadd.lint: groupadd.c
  1443. +     $(LINT) $(LINTFLAGS) groupadd.c > groupadd.lint
  1444. + groupdel: groupdel.o libshadow.a
  1445. +     $(CC) -o groupdel $(LDFLAGS) groupdel.o libshadow.a $(LIBS)
  1446. + groupdel.lint: groupdel.c
  1447. +     $(LINT) $(LINTFLAGS) groupdel.c > groupdel.lint
  1448. + groupmod: groupmod.o libshadow.a
  1449. +     $(CC) -o groupmod $(LDFLAGS) groupmod.o libshadow.a $(LIBS)
  1450. + groupmod.lint: groupmod.c
  1451. +     $(LINT) $(LINTFLAGS) groupmod.c > groupmod.lint
  1452. + pwd.h.m4:
  1453. +     [ -f s.pwd.h.m4 ] && get -t -r$(RELEASE) s.pwd.h.m4
  1454. + pwd.h: pwd.h.m4
  1455. +     m4 $(OS) < pwd.h.m4 > pwd.h
  1456. + logoutd: logoutd.o libshadow.a
  1457. +     $(CC) -o logoutd $(LDFLAGS) logoutd.o libshadow.a
  1458. + logoutd.lint: logoutd.c
  1459. +     $(LINT) $(LINTFLAGS) logoutd.c > logoutd.lint
  1460. + sulog.o: config.h
  1461. + susetup.c: setup.c
  1462. +     cp setup.c susetup.c
  1463. + susetup.o: config.h susetup.c pwd.h
  1464. +     $(CC) -c $(CFLAGS) -DSU susetup.c
  1465. + scologin: scologin.o
  1466. +     $(CC) -o scologin $(LDFLAGS) scologin.o -lsocket
  1467. + passwd.o: config.h shadow.h pwd.h
  1468. + lmain.o: config.h lastlog.h faillog.h pwd.h
  1469. + smain.o: config.h lastlog.h pwd.h shadow.h
  1470. + sub.o: pwd.h
  1471. + setup.o: config.h pwd.h
  1472. + mkrmdir.o: config.h
  1473. + utmp.o: config.h
  1474. + mail.o: config.h
  1475. + motd.o: config.h
  1476. + age.o: config.h pwd.h
  1477. + log.o: config.h lastlog.h pwd.h
  1478. + shell.o: config.h
  1479. + entry.o: config.h shadow.h pwd.h
  1480. + hushed.o: config.h pwd.h
  1481. + valid.o: config.h pwd.h
  1482. + failure.o: faillog.h config.h
  1483. + faillog.o: faillog.h config.h pwd.h
  1484. + newgrp.o: config.h shadow.h pwd.h
  1485. + mkpasswd.o: config.h shadow.h pwd.h
  1486. + gpmain.o: config.h pwd.h
  1487. + chfn.o: config.h pwd.h
  1488. + chsh.o: config.h pwd.h
  1489. + chage.o: config.h shadow.h pwd.h
  1490. + pwconv.o: config.h shadow.h
  1491. + pwunconv.o: config.h shadow.h pwd.h
  1492. + chpasswd.o: config.h shadow.h pwd.h
  1493. + id.o: pwd.h
  1494. + newusers.o: config.h shadow.h pwd.h
  1495. + dpmain.o: dialup.h
  1496. + useradd.o: config.h shadow.h pwd.h
  1497. + userdel.o: config.h shadow.h pwd.h
  1498. + usermod.o: config.h shadow.h pwd.h
  1499. + groupadd.o: config.h shadow.h
  1500. + groupdel.o: config.h shadow.h
  1501. + groupmod.o: config.h shadow.h
  1502. + logoutd.o: config.h
  1503. + sulogin.o: config.h
  1504. + libshadow.a(shadow.o): shadow.h config.h
  1505. + libshadow.a(shadowio.o): shadow.h
  1506. + libshadow.a(grent.o): config.h shadow.h
  1507. + libshadow.a(sgroupio.o): shadow.h
  1508. + libshadow.a(dialup.o): dialup.h
  1509. + libshadow.a(dialchk.o): dialup.h config.h
  1510. + libshadow.a(getdef.o): config.h
  1511. + libshadow.a(pwdbm.o): config.h pwd.h
  1512. + libshadow.a(spdbm.o): config.h shadow.h
  1513. + libshadow.a(grdbm.o): config.h
  1514. + libshadow.a(gsdbm.o): config.h shadow.h
  1515. + libshadow.a(pwpack.o): config.h pwd.h
  1516. + libshadow.a(pwent.o): config.h pwd.h
  1517. + libshadow.a(pwio.o): pwd.h
  1518. + libshadow.a(getpass.o): config.h
  1519. + libshadow.a(encrypt.o): config.h
  1520. + libshadow.a(port.o): port.h
  1521. + libshadow.a(rad64.o): config.h
  1522. + clean:
  1523. +     -rm -f susetup.c *.o a.out core npasswd nshadow *.pag *.dir pwd.h
  1524. + clobber: clean
  1525. +     -rm -f $(BINS) *.lint *.L libshadow.a
  1526. + nuke:    clobber
  1527. +     -for file in * ; do \
  1528. +         if [ -f s.$$file -a ! -f p.$$file ] ; then \
  1529. +             rm -f $$file ;\
  1530. +         fi ;\
  1531. +     done
  1532. + shar:    login.sh.01 login.sh.02 login.sh.03 login.sh.04 login.sh.05 \
  1533. +     login.sh.06 login.sh.07 login.sh.08 login.sh.09 login.sh.10 \
  1534. +     login.sh.11 login.sh.12
  1535. + login.sh.01: $(FILES1) Makefile
  1536. +     shar -a $(FILES1) > login.sh.01
  1537. + login.sh.02: $(FILES2) Makefile
  1538. +     shar -a $(FILES2) > login.sh.02
  1539. + login.sh.03: $(FILES3) Makefile
  1540. +     shar -a $(FILES3) > login.sh.03
  1541. + login.sh.04: $(FILES4) Makefile
  1542. +     shar -a $(FILES4) > login.sh.04
  1543. + login.sh.05: $(FILES5) Makefile
  1544. +     shar -a $(FILES5) > login.sh.05
  1545. + login.sh.06: $(FILES6) Makefile
  1546. +     shar -a $(FILES6) > login.sh.06
  1547. + login.sh.07: $(FILES7) Makefile
  1548. +     shar -a $(FILES7) > login.sh.07
  1549. + login.sh.08: $(FILES8) Makefile
  1550. +     shar -a $(FILES8) > login.sh.08
  1551. + login.sh.09: $(FILES9) Makefile
  1552. +     shar -a $(FILES9) > login.sh.09
  1553. + login.sh.10: $(DOCS1) Makefile
  1554. +     shar -a $(DOCS1) > login.sh.10
  1555. + login.sh.11: $(DOCS2) Makefile
  1556. +     shar -a $(DOCS2) > login.sh.11
  1557. + login.sh.12: $(FILES_SUN4) $(FILES_SVR4) Makefile
  1558. +     shar -a $(FILES_SUN4) $(FILES_SVR4) > login.sh.12
  1559. Index: config.h.svr4
  1560. *** /dev/null    Fri Mar 27 10:17:32 1992
  1561. --- config.h.svr4    Fri Mar 27 10:27:10 1992
  1562. ***************
  1563. *** 0 ****
  1564. --- 1,125 ----
  1565. + /*
  1566. +  * Copyright 1989, 1990, 1991, John F. Haugh II
  1567. +  * All rights reserved.
  1568. +  *
  1569. +  * Permission is granted to copy and create derivative works for any
  1570. +  * non-commercial purpose, provided this copyright notice is preserved
  1571. +  * in all copies of source code, or included in human readable form
  1572. +  * and conspicuously displayed on all copies of object code or
  1573. +  * distribution media.
  1574. +  */
  1575. + /*
  1576. +  * Configuration file for login.
  1577. +  *
  1578. +  *    @(#)config.h.svr4    3.1    22:17:11    3/7/92    (SVR4)
  1579. +  */
  1580. + /*
  1581. +  * Pathname to the run-time configuration definitions file.
  1582. +  */
  1583. + #define LOGINDEFS "/etc/login.defs"
  1584. + /*
  1585. +  * Define SHADOWPWD to use shadow [ unreadable ] password file.
  1586. +  * Release 3 has a requirement that SHADOWPWD always be defined.
  1587. +  */
  1588. + #define    SHADOWPWD
  1589. + /*
  1590. +  * Define AUTOSHADOW to have root always copy sp_pwdp to pw_passwd
  1591. +  * for getpwuid() and getpwnam().  This provides compatibility for
  1592. +  * privileged applications which are shadow-ignorant.  YOU ARE
  1593. +  * ENCOURAGED TO NOT USE THIS OPTION UNLESS ABSOLUTELY NECESSARY.
  1594. +  */
  1595. + #define    AUTOSHADOW
  1596. + /*
  1597. +  * Define SHADOWGRP to user shadowed group files.  This feature adds
  1598. +  * the concept of a group administrator.
  1599. +  */
  1600. + /* #define    SHADOWGRP    /**/
  1601. + /*
  1602. +  * Define DOUBLESIZE to use 16 character passwords
  1603. +  */
  1604. + #define DOUBLESIZE
  1605. + /*
  1606. +  * Define AGING if you want the password aging checks made.
  1607. +  * Release 3 has a requirement that AGING always be defined.
  1608. +  */
  1609. + #define    AGING
  1610. + /*
  1611. +  * Pick your version of DBM.  If you define either DBM or NDBM, you must
  1612. +  * define GETPWENT.  If you define NDBM you must define GETGRENT as well.
  1613. +  */
  1614. + /* #define    DBM    /**/
  1615. + /* #define    NDBM    /**/
  1616. + /*
  1617. +  * Define USE_SYSLOG if you want to have SYSLOG functions included in your code.
  1618. +  */
  1619. + #undef    USE_SYSLOG
  1620. + /*
  1621. +  * Enable RLOGIN to support the "-r" and "-h" options.
  1622. +  * Also enable UT_HOST if your /etc/utmp provides for a host name.
  1623. +  */
  1624. + #undef RLOGIN
  1625. + #undef UT_HOST
  1626. + /*
  1627. +  * Select one of the following
  1628. +  */
  1629. + /* #define DIR_XENIX    /* include <sys/ndir.h>, use (struct direct)    */
  1630. + /* #define DIR_BSD    /* include <ndir.h>, use (struct direct)    */
  1631. + #define DIR_SYSV    /* include <dirent.h>, use (struct dirent)    */
  1632. + /*
  1633. +  * Various system environment definitions.
  1634. +  */
  1635. + #define    HAVE_ULIMIT    /* Define if your UNIX supports ulimit()    */
  1636. + #undef    GETPWENT    /* Define if you want my GETPWENT(3) routines    */
  1637. + #undef    GETGRENT    /* Define if you want my GETGRENT(3) routines    */
  1638. + #undef    NEED_AL64    /* Define if library does not include a64l()    */
  1639. + #undef    NEED_MKDIR    /* Define if system does not have mkdir()    */
  1640. + #undef    NEED_RMDIR    /* Define if system does not have rmdir()    */
  1641. + #undef    NEED_RENAME    /* Define if system does not have rename()    */
  1642. + #undef    NEED_STRSTR    /* Define if library does not include strstr()    */
  1643. + #define    SIGTYPE    void    /* Type returned by signal()                    */
  1644. + /*
  1645. +  * These definitions MUST agree with the values defined in <pwd.h>.
  1646. +  */
  1647. + #undef    BSD_QUOTA    /* the pw_quota field exists */
  1648. + #define    ATT_AGE        /* the pw_age field exists */
  1649. + #define    ATT_COMMENT    /* the pw_comment field exists */
  1650. + /*
  1651. +  * Define NDEBUG for production versions
  1652. +  */
  1653. + #define    NDEBUG
  1654. + /*
  1655. +  * Define PWDFILE and GRPFILE to the names of the password and
  1656. +  * group files.
  1657. +  */
  1658. + #define    PWDFILE    "/etc/passwd"
  1659. + #define    GRPFILE    "/etc/group"
  1660. -- 
  1661. John F. Haugh II        | Every 56 days.   | UUCP: ...!cs.utexas.edu!rpp386!jfh
  1662. Ma Bell: (512) 251-2151 | Give Blood, often.    | Domain: jfh@rpp386.cactus.org
  1663. "A countryman between two lawyers is like a fish between two cats."
  1664.         -- Benjamin Franklin
  1665.  
  1666. exit 0 # Just in case...
  1667.