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 (the "License").
   6  * You may not use this file except in compliance with the License.
   7  *
   8  * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE
   9  * or http://www.opensolaris.org/os/licensing.
  10  * See the License for the specific language governing permissions
  11  * and limitations under the License.
  12  *
  13  * When distributing Covered Code, include this CDDL HEADER in each
  14  * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  15  * If applicable, add the following below this CDDL HEADER, with the
  16  * fields enclosed by brackets "[]" replaced with your own identifying
  17  * information: Portions Copyright [yyyy] [name of copyright owner]
  18  *
  19  * CDDL HEADER END
  20  */
  21 /*      Copyright (c) 1984, 1986, 1987, 1988, 1989 AT&T     */
  22 /*        All Rights Reserved   */
  23 
  24 
  25 /*
  26  * Copyright (c) 2013 Gary Mills
  27  *
  28  * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
  29  * Use is subject to license terms.
  30  */
  31 
  32 char *errmsgs[] = {
  33         "WARNING: uid %ld is reserved.\n",
  34         "WARNING: more than NGROUPS_MAX(%d) groups specified.\n",
  35         "ERROR: invalid syntax.\n"
  36             "usage:  useradd [-u uid [-o] | -g group | -G group[[,group]...] |"
  37             "-d dir | -b base_dir |\n"
  38             "\t\t-s shell | -c comment | -m [-k skel_dir] | -f inactive |\n"
  39             "\t\t-e expire | -A authorization [, authorization ...] |\n"
  40             "\t\t-P profile [, profile ...] | -R role [, role ...] |\n"
  41             "\t\t-K key=value | -p project [, project ...]] login\n"
  42             "\tuseradd -D [-g group | -b base_dir | -f inactive | -e expire\n"
  43             "\t\t-A authorization [, authorization ...] |\n"
  44             "\t\t-P profile [, profile ...] | -R role [, role ...] |\n"
  45             "\t\t-K key=value ... -p project] | [-s shell] | [-k skel_dir]\n",
  46         "ERROR: Invalid syntax.\nusage:  userdel [-r] login\n",
  47         "ERROR: Invalid syntax.\n"
  48             "usage:  usermod -u uid [-o] | -g group | -G group[[,group]...] |\n"
  49             "\t\t-d dir [-m] | -s shell | -c comment |\n"
  50             "\t\t-l new_logname | -f inactive | -e expire |\n"
  51             "\t\t-A authorization [, authorization ...] | -K key=value ... |\n"
  52             "\t\t-P profile [, profile ...] | -R role [, role ...] login\n",
  53         "ERROR: Unexpected failure.  Defaults unchanged.\n",
  54         "ERROR: Unable to remove files from home directory.\n",
  55         "ERROR: Unable to remove home directory.\n",
  56         "ERROR: Cannot update system files - login cannot be %s.\n",
  57         "ERROR: uid %ld is already in use.  Choose another.\n",
  58         "ERROR: %s is already in use.  Choose another.\n",
  59         "ERROR: %s does not exist.\n",
  60         "ERROR: %s is not a valid %s.  Choose another.\n",
  61         "ERROR: %s is in use.  Cannot %s it.\n",
  62         "WARNING: %s has no permissions to use %s.\n",
  63         "ERROR: There is not sufficient space to move %s home directory to %s"
  64             "\n",
  65         "ERROR: %s %ld is too big.  Choose another.\n",
  66         "ERROR: group %s does not exist.  Choose another.\n",
  67         "ERROR: Unable to %s: %s.\n",
  68         "ERROR: %s is not a full path name.  Choose another.\n",
  69         "ERROR: %s is the primary group name.  Choose another.\n",
  70         "ERROR: Inconsistent password files.  See pwconv(1M).\n",
  71         "ERROR: %s is not a local user.\n",
  72         "ERROR: Permission denied.\n",
  73         "WARNING: Group entry exceeds 2048 char: /etc/group entry truncated.\n",
  74         "ERROR: invalid syntax.\n"
  75             "usage:  roleadd [-u uid [-o] | -g group | -G group[[,group]...] |"
  76             "-d dir |\n"
  77             "\t\t-s shell | -c comment | -m [-k skel_dir] | -f inactive |\n"
  78             "\t\t-e expire | -A authorization [, authorization ...] |\n"
  79             "\t\t-P profile [, profile ...] | -K key=value ] login\n"
  80             "\troleadd -D [-g group | -b base_dir | -f inactive | -e expire\n"
  81             "\t\t-A authorization [, authorization ...] |\n"
  82             "\t\t-P profile [, profile ...]]\n",
  83         "ERROR: Invalid syntax.\nusage:  roledel [-r] login\n",
  84         "ERROR: Invalid syntax.\n"
  85             "usage:  rolemod -u uid [-o] | -g group | -G group[[,group]...] |\n"
  86             "\t\t-d dir [-m] | -s shell | -c comment |\n"
  87             "\t\t-l new_logname | -f inactive | -e expire |\n"
  88             "\t\t-A authorization [, authorization ...] | -K key=value |\n"
  89             "\t\t-P profile [, profile ...] login\n",
  90         "ERROR: project %s does not exist.  Choose another.\n",
  91         "WARNING: more than NPROJECTS_MAX(%d) projects specified.\n",
  92         "WARNING: Project entry exceeds %d char: /etc/project entry truncated."
  93             "\n",
  94         "ERROR: Invalid key.\n",
  95         "ERROR: Missing value specification.\n",
  96         "ERROR: Multiple definitions of key ``%s''.\n",
  97         "ERROR: Roles must be modified with ``rolemod''.\n",
  98         "ERROR: Users must be modified with ``usermod''.\n",
  99         "WARNING: gid %ld is reserved.\n",
 100         "ERROR: Failed to read /etc/group file due to invalid entry or"
 101             " read error.\n",
 102         "ERROR: %s is too long.  Choose another.\n",
 103 };
 104 
 105 int lasterrmsg = sizeof (errmsgs) / sizeof (char *);