Home | History | Annotate | Line # | Download | only in rpc.pcnfsd
      1 /*	$NetBSD: common.h,v 1.3 2021/08/03 20:59:20 andvar Exp $	*/
      2 
      3 /* RE_SID: @(%)/usr/dosnfs/shades_SCCS/unix/pcnfsd/v2/src/SCCS/s.common.h 1.3 91/12/17 14:32:05 SMI */
      4 /*
      5 **=====================================================================
      6 ** Copyright (c) 1986,1987,1988,1989,1990,1991 by Sun Microsystems, Inc.
      7 **
      8 **         D I S C L A I M E R   S E C T I O N ,   E T C .
      9 **
     10 ** pcnfsd is copyrighted software, but is freely licensed. This
     11 ** means that you are free to redistribute it, modify it, ship it
     12 ** in binary with your system, whatever, provided:
     13 **
     14 ** - you leave the Sun copyright notice in the source code
     15 ** - you make clear what changes you have introduced and do
     16 **   not represent them as being supported by Sun.
     17 ** - you do not charge money for the source code (unlikely, given
     18 **   its free availability)
     19 **
     20 ** If you make changes to this software, we ask that you do so in
     21 ** a way which allows you to build either the "standard" version or
     22 ** your custom version from a single source file. Test it, lint
     23 ** it (it won't lint 100%, very little does, and there are bugs in
     24 ** some versions of lint :-), and send it back to Sun via email
     25 ** so that we can roll it into the source base and redistribute
     26 ** it. We'll try to make sure your contributions are acknowledged
     27 ** in the source, but after all these years it's getting hard to
     28 ** remember who did what.
     29 **
     30 ** The main contributors have been (in no special order):
     31 **
     32 ** Glen Eustace <G.Eustace (at) massey.ac.nz>
     33 **    user name caching for b-i-g password files
     34 ** Paul Emerson <paul (at) sdgsun.uucp>
     35 **    cleaning up Interactive 386/ix handling, fixing the lp
     36 **    interface, and generally tidying up the sources
     37 ** Keith Ericson <keithe (at) sail.labs.tek.com>
     38 **    more 386/ix fixes
     39 ** Jeff Stearns <jeff (at) tc.fluke.com>
     40 **    setuid/setgid for lpr
     41 ** Peter Van Campen <petervc (at) sci.kun.nl>
     42 **    fixing setuid/gid stuff, syslog
     43 ** Ted Nolan <ted (at) usasoc.soc.mil>
     44 **    /usr/adm/wtmp, other security suggestions
     45 **
     46 ** Thanks to everyone who has contributed.
     47 **
     48 **    Geoff Arnold, PC-NFS architect <geoff (at) East.Sun.COM>
     49 **=====================================================================
     50 */
     51 /*
     52 **=====================================================================
     53 **             C U S T O M I Z A T I O N   S E C T I O N              *
     54 **                                                                    *
     55 ** You should not uncomment these #defines in this version of pcnfsd  *
     56 ** Instead you should edit the makefile CDEFS variable.               *
     57 **                                                                    *
     58 **=====================================================================
     59 */
     60 
     61 /*
     62 **---------------------------------------------------------------------
     63 ** Define (via Makefile) the following symbol to enable the use of a
     64 ** shadow password file
     65 **---------------------------------------------------------------------
     66 **/
     67 
     68 /* #define SHADOW_SUPPORT */
     69 
     70 /*
     71 **---------------------------------------------------------------------
     72 ** Define (via Makefile) the following symbol to enable the logging
     73 ** of authentication requests to /usr/adm/wtmp
     74 **---------------------------------------------------------------------
     75 **/
     76 
     77 /* #define WTMP */
     78 
     79 /*
     80 **------------------------------------------------------------------------
     81 ** Define (via Makefile) the following symbol conform to Interactive
     82 ** System's 2.0
     83 **------------------------------------------------------------------------
     84 */
     85 
     86 /* #define ISC_2_0 */
     87 
     88 /*
     89 **---------------------------------------------------------------------
     90 ** Define (via Makefile) the following symbol to use a cache of recently-used
     91 ** user names. This has certain uses in university and other settings
     92 ** where (1) the password file is very large, and (2) a group of users
     93 ** frequently logs in together using the same account (for example,
     94 ** a class userid).
     95 **---------------------------------------------------------------------
     96 */
     97 
     98 /* #define USER_CACHE */
     99 
    100 /*
    101 **---------------------------------------------------------------------
    102 ** Define (via Makefile) the following symbol to build a System V version
    103 **---------------------------------------------------------------------
    104 */
    105 
    106 /* #define SYSV */
    107 
    108 /*
    109 **---------------------------------------------------------------------
    110 ** Define (via Makefile) the following symbol to build a version that uses
    111 ** System V style "lp" instead of BSD-style "lpr" to print
    112 **---------------------------------------------------------------------
    113 */
    114 
    115 /* #define USE_LP */
    116 
    117 /*
    118 **---------------------------------------------------------------------
    119 ** Define (via Makefile) the following symbol to build a typical
    120 ** "local feature": in this case recognizing the special printer
    121 ** names "rotated" and "2column" and using the Adobe "enscript"
    122 ** command to format the output appropriately.
    123 **---------------------------------------------------------------------
    124 */
    125 
    126 /* #define HACK_FOR_ROTATED_TRANSCRIPT */
    127 
    128 /*
    129 **---------------------------------------------------------------------
    130 ** Define (via Makefile) the following symbol to build a version that
    131 ** will use the setusershell()/getusershell()/endusershell() calls
    132 ** to determine if a password entry contains a legal shell (and therefore
    133 ** identifies a user who may log in). The default is to check that
    134 ** the last two characters of the shell field are "sh", which should
    135 ** cope with "sh", "csh", "ksh", "bash".... See the routine get_password()
    136 ** in pcnfsd_misc.c for more details.
    137 **
    138 ** Note: For some reason that I haven't yet figured out, getusershell()
    139 ** only seems to work when RPC_SVC_FG is defined (for debugging). It doesn't
    140 ** seem to matter whether /etc/shells exists or not. Tracing
    141 ** things doesn't throw any light on this....  Geoff Dec.17 '91
    142 */
    143 
    144 /*
    145 **---------------------------------------------------------------------
    146 ** Define (via Makefile) the following symbol to build a version that
    147 ** will consult the NIS (formerly Yellow Pages) "auto.home" map to
    148 ** locate the user's home directory (returned by the V2 authentication
    149 ** procedure).
    150 **---------------------------------------------------------------------
    151 */
    152 
    153 /* #define USE_YP */
    154 
    155 
    156 /* #define USE_GETUSERSHELL */
    157 
    158 
    159 /*
    160 **---------------------------------------------------------------------
    161 ** The following should force the right things for Interactive 2.0
    162 **---------------------------------------------------------------------
    163 */
    164 #ifdef ISC_2_0
    165 #define SYSV
    166 #define USE_LP
    167 #define SHADOW_SUPPORT
    168 #endif
    169 
    170 /*
    171 **---------------------------------------------------------------------
    172 ** Other #define's
    173 **---------------------------------------------------------------------
    174 */
    175 
    176 #define assert(ex) {if (!(ex)) \
    177     {char asstmp[256];(void)sprintf(asstmp,"rpc.pcnfsd: Assertion failed: line %d of %s: \"%s\"\n", \
    178     __LINE__, __FILE__, "ex"); (void)msg_out(asstmp); \
    179     sleep (10); exit(1);}}
    180 
    181 
    182