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@massey.ac.nz> 33 ** user name caching for b-i-g password files 34 ** Paul Emerson <paul@sdgsun.uucp> 35 ** cleaning up Interactive 386/ix handling, fixing the lp 36 ** interface, and generally tidying up the sources 37 ** Keith Ericson <keithe@sail.labs.tek.com> 38 ** more 386/ix fixes 39 ** Jeff Stearns <jeff@tc.fluke.com> 40 ** setuid/setgid for lpr 41 ** Peter Van Campen <petervc@sci.kun.nl> 42 ** fixing setuid/gid stuff, syslog 43 ** Ted Nolan <ted@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@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