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 #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 138 /* A group or user name doesn't exist */ 139 #define EX_NAME_NOT_EXIST 6 140 141 /* GROUP, PASSWD, or SHADOW file missing */ 142 #define EX_MISSING 7 143 144 /* GROUP, PASSWD, or SHAWOW file is busy */ 145 #define EX_BUSY 8 146 147 /* A group or user name already exists */ 148 #define EX_NAME_EXISTS 9 149 150 /* Unable to update GROUP, PASSWD, or SHADOW file */ 151 #define EX_UPDATE 10 152 153 /* Not enough space */ 154 #define EX_NOSPACE 11 155 156 /* Unable to create/remove/move home directory */ 157 #define EX_HOMEDIR 12 158 159 /* new login already in use */ 160 #define EX_NL_USED 13 161 162 /* Unexpected failure */ 163 #define EX_FAILURE 14 164 165 /* A user name is in a non-local name service */ 166 #define EX_NOT_LOCAL 15 167 168 #ifdef __cplusplus 169 } 170 #endif 171 172 #endif /* _USERDEFS_H */