3 *
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License, Version 1.0 only
6 * (the "License"). You may not use this file except in compliance
7 * with the License.
8 *
9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10 * or http://www.opensolaris.org/os/licensing.
11 * See the License for the specific language governing permissions
12 * and limitations under the License.
13 *
14 * When distributing Covered Code, include this CDDL HEADER in each
15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16 * If applicable, add the following below this CDDL HEADER, with the
17 * fields enclosed by brackets "[]" replaced with your own identifying
18 * information: Portions Copyright [yyyy] [name of copyright owner]
19 *
20 * CDDL HEADER END
21 */
22 /*
23 * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
24 * Use is subject to license terms.
25 */
26
27 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
28 /* All Rights Reserved */
29
30
31 #ifndef _USERDEFS_H
32 #define _USERDEFS_H
33
34 #pragma ident "%Z%%M% %I% %E% SMI" /* SVr4.0 1.7.1.1 */
35
36 #include <project.h>
37
38 #ifdef __cplusplus
39 extern "C" {
40 #endif
41
42 /*
43 * The definitions in this file are local to the OA&M subsystem. General
44 * use is not encouraged.
45 */
46
47 /* User/group default values */
48 #define DEFGID 99 /* max reserved group id */
49 #define DEFRID 99
50 #define DEFPROJ 3
51 #define DEFPROJNAME "default"
52 #define DEFGROUP 1
53 #define DEFGNAME "other"
54 #define DEFPARENT "/home"
55 #define DEFSKL "/etc/skel"
56 #define DEFSHL "/bin/sh"
57 #define DEFROLESHL "/bin/pfsh"
58 #define DEFINACT 0
59 #define DEFEXPIRE ""
60 #define DEFAUTH ""
61 #define DEFPROF ""
62 #define DEFROLEPROF "All"
63 #define DEFROLE ""
64 #define DEFLIMPRIV ""
65 #define DEFDFLTPRIV ""
66 #define DEFLOCK_AFTER_RETRIES ""
67
68 /* Defaults file keywords */
69 #define RIDSTR "defrid="
70 #define GIDSTR "defgroup="
71 #define GNAMSTR "defgname="
72 #define PARSTR "defparent="
73 #define SKLSTR "defskel="
74 #define SHELLSTR "defshell="
75 #define INACTSTR "definact="
76 #define EXPIRESTR "defexpire="
77 #define AUTHSTR "defauthorization="
78 #define PROFSTR "defprofile="
79 #define ROLESTR "defrole="
80 #define PROJSTR "defproj="
81 #define PROJNMSTR "defprojname="
82 #define LIMPRSTR "deflimitpriv="
83 #define DFLTPRSTR "defdefaultpriv="
84 #define FHEADER "# Default values for useradd. Changed "
85 #define FHEADER_ROLE "# Default values for roleadd. Changed "
86 #define LOCK_AFTER_RETRIESSTR "deflock_after_retries="
87
88 /* Defaults file */
89 #define DEFFILE "/usr/sadm/defadduser"
90 #define DEFROLEFILE "/usr/sadm/defaddrole"
91 #define GROUP "/etc/group"
92
93 /* various limits */
94 #define MAXGLEN 9 /* max length of group name */
95 #define MAXDLEN 80 /* max length of a date string */
96
97 /* defaults structure */
98 struct userdefs {
99 int defrid; /* highest reserved uid */
100 int defgroup; /* default group id */
101 char *defgname; /* default group name */
102 char *defparent; /* default base directory for new logins */
103 char *defskel; /* default skel directory */
104 char *defshell; /* default shell */
105 int definact; /* default inactive */
106 char *defexpire; /* default expire date */
107 char *defauth; /* default authorization */
108 char *defprof; /* default profile */
109 char *defrole; /* default role */
110 projid_t defproj; /* default project id */
111 char *defprojname; /* default project name */
112 char *deflimpriv; /* default limitpriv */
113 char *defdfltpriv; /* default defaultpriv */
114 char *deflock_after_retries; /* default lock_after_retries */
115
116 };
117
118 /* exit() values for user/group commands */
119
120 /* Everything succeeded */
121 #define EX_SUCCESS 0
122
123 /* No permission */
124 #define EX_NO_PERM 1
125
126 /* Command syntax error */
127 #define EX_SYNTAX 2
128
129 /* Invalid argument given */
130 #define EX_BADARG 3
131
132 /* A gid or uid already exists */
133 #define EX_ID_EXISTS 4
134
135 /* PASSWD and SHADOW are inconsistent with each other */
136 #define EX_INCONSISTENT 5
137
|
3 *
4 * The contents of this file are subject to the terms of the
5 * Common Development and Distribution License, Version 1.0 only
6 * (the "License"). You may not use this file except in compliance
7 * with the License.
8 *
9 * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
10 * or http://www.opensolaris.org/os/licensing.
11 * See the License for the specific language governing permissions
12 * and limitations under the License.
13 *
14 * When distributing Covered Code, include this CDDL HEADER in each
15 * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
16 * If applicable, add the following below this CDDL HEADER, with the
17 * fields enclosed by brackets "[]" replaced with your own identifying
18 * information: Portions Copyright [yyyy] [name of copyright owner]
19 *
20 * CDDL HEADER END
21 */
22 /*
23 * Copyright 2016 Gordon W. Ross
24 *
25 * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
26 * Use is subject to license terms.
27 */
28
29 /* Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T */
30 /* All Rights Reserved */
31
32
33 #ifndef _USERDEFS_H
34 #define _USERDEFS_H
35
36 #include <project.h>
37 #include <stdio_tag.h>
38
39 #ifdef __cplusplus
40 extern "C" {
41 #endif
42
43 /*
44 * The definitions in this file are local to the OA&M subsystem. General
45 * use is not encouraged.
46 *
47 * Default values are taken from (in precedence order)
48 * /etc/default/add{user,role}
49 * /usr/sadm/defadd{user,role}
50 * (compiled-in values)
51 *
52 * Note that the "old" default locations may be used as a
53 * "vendor" (or distro.) override of the compiled-in defaults.
54 * If an administrator runs "useradd -D ...", those values are
55 * stored in /etc/default/add*, which overrides all others.
56 */
57
58 /* Defaults files */
59 #define DEFFILE "/etc/default/adduser"
60 #define DEFROLEFILE "/etc/default/addrole"
61
62 /* Old defaults files */
63 #define ODEFFILE "/usr/sadm/defadduser"
64 #define ODEFROLEFILE "/usr/sadm/defaddrole"
65
66 #define GROUP "/etc/group"
67
68 /* various limits */
69 #define MAXGLEN 9 /* max length of group name */
70 #define MAXDLEN 80 /* max length of a date string */
71
72 /* Defaults file keywords */
73 #define RIDSTR "defrid="
74 #define GIDSTR "defgroup="
75 #define GNAMSTR "defgname="
76 #define PARSTR "defparent="
77 #define SKLSTR "defskel="
78 #define SHELLSTR "defshell="
79 #define INACTSTR "definact="
80 #define EXPIRESTR "defexpire="
81 #define AUTHSTR "defauthorization="
82 #define PROFSTR "defprofile="
83 #define ROLESTR "defrole="
84 #define PROJSTR "defproj="
85 #define PROJNMSTR "defprojname="
86 #define LIMPRSTR "deflimitpriv="
87 #define DFLTPRSTR "defdefaultpriv="
88 #define FHEADER "# Default values for useradd. Changed "
89 #define FHEADER_ROLE "# Default values for roleadd. Changed "
90 #define LOCK_AFTER_RETRIESSTR "deflock_after_retries="
91
92 /* defaults structure */
93 struct userdefs {
94 int defrid; /* highest reserved uid */
95 int defgroup; /* default group id */
96 char *defgname; /* default group name */
97 char *defparent; /* default base directory for new logins */
98 char *defskel; /* default skel directory */
99 char *defshell; /* default shell */
100 int definact; /* default inactive */
101 char *defexpire; /* default expire date */
102 char *defauth; /* default authorization */
103 char *defprof; /* default profile */
104 char *defrole; /* default role */
105 projid_t defproj; /* default project id */
106 char *defprojname; /* default project name */
107 char *deflimpriv; /* default limitpriv */
108 char *defdfltpriv; /* default defaultpriv */
109 char *deflock_after_retries; /* default lock_after_retries */
110 };
111
112 extern struct userdefs *_get_userdefs(void);
113 extern struct userdefs *_get_roledefs(void);
114
115 extern void fread_defs(FILE *fp, struct userdefs *, boolean_t);
116 extern int fwrite_roledefs(struct __FILE *, struct userdefs *);
117 extern int fwrite_userdefs(struct __FILE *, struct userdefs *);
118
119 extern char *userdef_get_by_uakey(struct userdefs *, const char *);
120 void userdef_set_by_uakey(struct userdefs *, const char *, char *);
121
122 /*
123 * User/group default values
124 * These are constants _only_ when compiling libuserdefs
125 */
126 #ifdef _USERDEFS_INTERNAL
127 #define DEFRID 99 /* max reserved group id */
128 #define DEFGROUP 1
129 #define DEFGNAME "other"
130 #define DEFPARENT "/home"
131 #define DEFSKL "/etc/skel"
132 #define DEFSHL "/bin/sh"
133 #define DEFROLESHL "/bin/pfsh"
134 #define DEFINACT 0
135 #define DEFEXPIRE ""
136 #define DEFAUTH ""
137 #define DEFPROF ""
138 #define DEFROLEPROF "All"
139 #define DEFROLE ""
140 #define DEFPROJ 3
141 #define DEFPROJNAME "default"
142 #define DEFLIMPRIV ""
143 #define DEFDFLTPRIV ""
144 #define DEFLOCK_AFTER_RETRIES ""
145 #else /* _USERDEFS_INTERNAL */
146 /* Get these from libuserdefs */
147 #define DEFRID (_get_userdefs()->defrid)
148 #define DEFGROUP (_get_userdefs()->defgroup)
149 #define DEFGNAME (_get_userdefs()->defgname)
150 #define DEFPARENT (_get_userdefs()->defparent)
151 #define DEFSKL (_get_userdefs()->defskel)
152 #define DEFSHL (_get_userdefs()->defshell)
153 #define DEFROLESHL (_get_roledefs()->defshell) /* ROLE */
154 #define DEFINACT (_get_userdefs()->definact)
155 #define DEFEXPIRE (_get_userdefs()->defexpire)
156 #define DEFAUTH (_get_userdefs()->defauth)
157 #define DEFPROF (_get_userdefs()->defprof
158 #define DEFROLEPROF (_get_roledefs()->defprof) /* ROLE */
159 #define DEFROLE (_get_userdefs()->defrole)
160 #define DEFPROJ (_get_userdefs()->defproj)
161 #define DEFPROJNAME (_get_userdefs()->defprogname)
162 #define DEFLIMPRIV (_get_userdefs()->deflimpriv)
163 #define DEFDFLTPRIV (_get_userdefs()->defdfltpriv)
164 #define DEFLOCK_AFTER_RETRIES (_get_userdefs()->deflock_after_retries)
165 #endif /* _USERDEFS_INTERNAL */
166
167 /* DEFGID is an alias for DEFRID. Misleading... (!= DEFGROUP) */
168 #define DEFGID DEFRID /* XXX delete this? */
169
170 /* exit() values for user/group commands */
171
172 /* Everything succeeded */
173 #define EX_SUCCESS 0
174
175 /* No permission */
176 #define EX_NO_PERM 1
177
178 /* Command syntax error */
179 #define EX_SYNTAX 2
180
181 /* Invalid argument given */
182 #define EX_BADARG 3
183
184 /* A gid or uid already exists */
185 #define EX_ID_EXISTS 4
186
187 /* PASSWD and SHADOW are inconsistent with each other */
188 #define EX_INCONSISTENT 5
189
|