xref: /netbsd/usr.sbin/rpc.pcnfsd/common.h (revision 5d1796b1)
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