xref: /illumos-gate/usr/src/head/userdefs.h (revision 45ede40b2394db7967e59f19288fae9b62efd4aa)
1 /*
2  * CDDL HEADER START
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  * Copyright 2020 OmniOS Community Edition (OmniOSce) Association.
32  */
33 
34 #ifndef	_USERDEFS_H
35 #define	_USERDEFS_H
36 
37 #include <project.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 
48 /* User/group default values */
49 #define	DEFGID		99	/* max reserved group id */
50 #define	DEFRID		99
51 #define	DEFPROJ		3
52 #define	DEFPROJNAME	"default"
53 #define	DEFGROUP	1
54 #define	DEFGNAME	"other"
55 #define	DEFPARENT	"/home"
56 #define	DEFSKL		"/etc/skel"
57 #define	DEFSHL		"/bin/sh"
58 #define	DEFROLESHL	"/bin/pfsh"
59 #define	DEFINACT	0
60 #define	DEFEXPIRE	""
61 #define	DEFAUTH		""
62 #define	DEFPROF		""
63 #define	DEFROLEPROF	"All"
64 #define	DEFROLE		""
65 #define	DEFLIMPRIV	""
66 #define	DEFDFLTPRIV	""
67 #define	DEFLOCK_AFTER_RETRIES	""
68 #define	DEFROLEAUTH	""
69 #define	DEFROLEROLEAUTH	"role"
70 
71 /* Defaults file keywords */
72 #define	RIDSTR		"defrid="
73 #define	GIDSTR		"defgroup="
74 #define	GNAMSTR		"defgname="
75 #define	PARSTR		"defparent="
76 #define	SKLSTR		"defskel="
77 #define	SHELLSTR	"defshell="
78 #define	INACTSTR	"definact="
79 #define	EXPIRESTR	"defexpire="
80 #define	AUTHSTR		"defauthorization="
81 #define	PROFSTR		"defprofile="
82 #define	ROLESTR		"defrole="
83 #define	PROJSTR		"defproj="
84 #define	PROJNMSTR	"defprojname="
85 #define	LIMPRSTR	"deflimitpriv="
86 #define	DFLTPRSTR	"defdefaultpriv="
87 #define	FHEADER		"#	Default values for useradd.  Changed "
88 #define	FHEADER_ROLE	"#	Default values for roleadd.  Changed "
89 #define	LOCK_AFTER_RETRIESSTR	"deflock_after_retries="
90 #define	ROLEAUTHSTR	"defroleauth="
91 
92 /* Defaults file */
93 #define	DEFFILE		"/usr/sadm/defadduser"
94 #define	DEFROLEFILE	"/usr/sadm/defaddrole"
95 #define	GROUP		"/etc/group"
96 
97 /* various limits */
98 #define	MAXGLEN		9	/* max length of group name */
99 #define	MAXDLEN		80	/* max length of a date string */
100 
101 /* defaults structure */
102 struct userdefs {
103 	int defrid;		/* highest reserved uid */
104 	int defgroup;		/* default group id */
105 	char *defgname;		/* default group name */
106 	char *defparent;	/* default base directory for new logins */
107 	char *defskel;		/* default skel directory */
108 	char *defshell;		/* default shell */
109 	int definact;		/* default inactive */
110 	char *defexpire;		/* default expire date */
111 	char *defauth;		/* default authorization */
112 	char *defprof;		/* default profile */
113 	char *defrole;		/* default role */
114 	projid_t defproj;	/* default project id */
115 	char *defprojname;	/* default project name */
116 	char *deflimpriv;	/* default limitpriv */
117 	char *defdfltpriv;	/* default defaultpriv */
118 	char *deflock_after_retries;	/* default lock_after_retries */
119 	char *defroleauth;		/* default roleauth */
120 
121 };
122 
123 /* exit() values for user/group commands */
124 
125 /* Everything succeeded */
126 #define	EX_SUCCESS	0
127 
128 /* No permission */
129 #define	EX_NO_PERM	1
130 
131 /* Command syntax error */
132 #define	EX_SYNTAX	2
133 
134 /* Invalid argument given */
135 #define	EX_BADARG	3
136 
137 /* A gid or uid already exists */
138 #define	EX_ID_EXISTS	4
139 
140 /* PASSWD and SHADOW are inconsistent with each other */
141 #define	EX_INCONSISTENT	5
142 
143 /* A group or user name  doesn't exist */
144 #define	EX_NAME_NOT_EXIST	6
145 
146 /* GROUP, PASSWD, or SHADOW file missing */
147 #define	EX_MISSING	7
148 
149 /* GROUP, PASSWD, or SHAWOW file is busy */
150 #define	EX_BUSY	8
151 
152 /* A group or user name already exists */
153 #define	EX_NAME_EXISTS	9
154 
155 /* Unable to update GROUP, PASSWD, or SHADOW file */
156 #define	EX_UPDATE	10
157 
158 /* Not enough space */
159 #define	EX_NOSPACE	11
160 
161 /* Unable to create/remove/move home directory */
162 #define	EX_HOMEDIR	12
163 
164 /* new login already in use */
165 #define	EX_NL_USED	13
166 
167 /* Unexpected failure */
168 #define	EX_FAILURE	14
169 
170 /* A user name is in a non-local name service */
171 #define	EX_NOT_LOCAL	15
172 
173 #ifdef	__cplusplus
174 }
175 #endif
176 
177 #endif	/* _USERDEFS_H */
178