<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook V4.5//EN" "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [ <!ENTITY GID_MAX SYSTEM "login.defs.d/GID_MAX.xml"> <!ENTITY MAIL_DIR SYSTEM "login.defs.d/MAIL_DIR.xml"> <!ENTITY MAX_MEMBERS_PER_GROUP SYSTEM "login.defs.d/MAX_MEMBERS_PER_GROUP.xml"> <!ENTITY PASS_MAX_DAYS SYSTEM "login.defs.d/PASS_MAX_DAYS.xml"> <!ENTITY PASS_MIN_DAYS SYSTEM "login.defs.d/PASS_MIN_DAYS.xml"> <!ENTITY PASS_WARN_AGE SYSTEM "login.defs.d/PASS_WARN_AGE.xml"> <!ENTITY UID_MAX SYSTEM "login.defs.d/UID_MAX.xml"> <!ENTITY UMASK SYSTEM "login.defs.d/UMASK.xml"> ]> <refentry id='useradd.8'> <!-- $Id$ --> <refmeta> <refentrytitle>useradd</refentrytitle> <manvolnum>8</manvolnum> <refmiscinfo class="sectdesc">System Management Commands</refmiscinfo> </refmeta> <refnamediv id='name'> <refname>useradd</refname> <refpurpose>create a new user or update default new user information</refpurpose> </refnamediv> <refsynopsisdiv id='synopsis'> <cmdsynopsis> <command>useradd</command> <arg choice='opt'> <replaceable>options</replaceable> </arg> <arg choice='plain'><replaceable>LOGIN</replaceable></arg> </cmdsynopsis> <cmdsynopsis> <command>useradd</command> <arg choice='plain'>-D </arg> </cmdsynopsis> <cmdsynopsis> <command>useradd</command> <arg choice='plain'>-D </arg> <arg choice='opt'> <replaceable>options</replaceable> </arg> </cmdsynopsis> </refsynopsisdiv> <refsect1 id='description'> <title>DESCRIPTION</title> <para> When invoked without the <option>-D</option> option, the <command>useradd</command> command creates a new user account using the values specified on the command line plus the default values from the system. Depending on command line options, the <command>useradd</command> command will update system files and may also create the new user's home directory and copy initial files. </para> </refsect1> <refsect1 id='options'> <title>OPTIONS</title> <para>The options which apply to the <command>useradd</command> command are: </para> <variablelist remap='IP'> <varlistentry> <term> <option>-c</option>, <option>--comment</option> <replaceable>COMMENT</replaceable> </term> <listitem> <para> Any text string. It is generally a short description of the login, and is currently used as the field for the user's full name. </para> </listitem> </varlistentry> <varlistentry> <term> <option>-b</option>, <option>--base-dir</option> <replaceable>BASE_DIR</replaceable> </term> <listitem> <para> The default base directory for the system if <option>-d</option> <replaceable>HOME_DIR</replaceable> is not specified. <replaceable>BASE_DIR</replaceable> is concatenated with the account name to define the home directory. If the <option>-m</option> option is not used, <replaceable>BASE_DIR</replaceable> must exist. </para> </listitem> </varlistentry> <varlistentry> <term> <option>-D</option>, <option>--defaults</option> </term> <listitem> <para> See below, the subsection "Changing the default values". </para> </listitem> </varlistentry> <varlistentry> <term> <option>-d</option>, <option>--home</option> <replaceable>HOME_DIR</replaceable> </term> <listitem> <para> The new user will be created using <replaceable>HOME_DIR</replaceable> as the value for the user's login directory. The default is to append the <replaceable>LOGIN</replaceable> name to <replaceable>BASE_DIR</replaceable> and use that as the login directory name. The directory <replaceable>HOME_DIR</replaceable> does not have to exist but will not be created if it is missing. </para> </listitem> </varlistentry> <varlistentry> <term> <option>-e</option>, <option>--expiredate</option> <replaceable>EXPIRE_DATE</replaceable> </term> <listitem> <para> The date on which the user account will be disabled. The date is specified in the format <emphasis remap='I'>YYYY-MM-DD</emphasis>. </para> </listitem> </varlistentry> <varlistentry> <term> <option>-f</option>, <option>--inactive</option> <replaceable>INACTIVE</replaceable> </term> <listitem> <para> The number of days after a password expires until the account is permanently disabled. A value of 0 disables the account as soon as the password has expired, and a value of -1 disables the feature. The default value is -1. </para> </listitem> </varlistentry> <varlistentry> <term> <option>-g</option>, <option>--gid</option> <replaceable>GROUP</replaceable> </term> <listitem> <para> The group name or number of the user's initial login group. The group name must exist. A group number must refer to an already existing group. The default group number is 1 or whatever is specified in <filename>/etc/default/useradd</filename>. </para> </listitem> </varlistentry> <varlistentry> <term> <option>-G</option>, <option>--groups</option> <replaceable>GROUP1</replaceable>[<emphasis remap='I'>,GROUP2,...</emphasis>[<emphasis remap='I'>,GROUPN</emphasis>]]] </term> <listitem> <para> A list of supplementary groups which the user is also a member of. Each group is separated from the next by a comma, with no intervening whitespace. The groups are subject to the same restrictions as the group given with the <option>-g</option> option. The default is for the user to belong only to the initial group. </para> </listitem> </varlistentry> <varlistentry> <term><option>-h</option>, <option>--help</option></term> <listitem> <para>Display help message and exit.</para> </listitem> </varlistentry> <varlistentry> <term> <option>-m</option>, <option>--create-home</option> </term> <listitem> <para> The user's home directory will be created if it does not exist. The files contained in <replaceable>SKEL_DIR</replaceable> will be copied to the home directory if the <option>-k</option> option is used, otherwise the files contained in <filename>/etc/skel</filename> will be used instead. Any directories contained in <replaceable>SKEL_DIR</replaceable> or <filename>/etc/skel</filename> will be created in the user's home directory as well. The <option>-k</option> option is only valid in conjunction with the <option>-m</option> option. The default is to not create the directory and to not copy any files. </para> </listitem> </varlistentry> <varlistentry> <term> <option>-K</option>, <option>--key</option> <replaceable>KEY</replaceable>=<replaceable>VALUE</replaceable> </term> <listitem> <para> Overrides /etc/login.defs defaults (UID_MIN, UID_MAX, UMASK, PASS_MAX_DAYS and others). <para> </para> Example: <option>-K </option><replaceable>PASS_MAX_DAYS</replaceable>=<replaceable>-1</replaceable> can be used when creating system account to turn off password ageing, even though system account has no password at all. Multiple <option>-K</option> options can be specified, e.g.: <option>-K </option> <replaceable>UID_MIN</replaceable>=<replaceable>100</replaceable> <option> -K </option> <replaceable>UID_MAX</replaceable>=<replaceable>499</replaceable> </para> <para> Note: <option>-K </option> <replaceable>UID_MIN</replaceable>=<replaceable>10</replaceable>,<replaceable>UID_MAX</replaceable>=<replaceable>499</replaceable> doesn't work yet. </para> </listitem> </varlistentry> <varlistentry> <term><option>-l</option></term> <listitem> <para> Do not add the user to the lastlog and faillog databases. </para> <para> By default, the user's entries in the lastlog and faillog databases are resetted to avoid reusing the entry from a previously deleted user. </para> </listitem> </varlistentry> <varlistentry> <term> <option>-o</option>, <option>--non-unique</option> </term> <listitem> <para>Allow the creation of a user account with a duplicate (non-unique) UID.</para> </listitem> </varlistentry> <varlistentry> <term> <option>-p</option>, <option>--password</option> <replaceable>PASSWORD</replaceable> </term> <listitem> <para> The encrypted password, as returned by <citerefentry> <refentrytitle>crypt</refentrytitle><manvolnum>3</manvolnum> </citerefentry>. The default is to disable the account. </para> </listitem> </varlistentry> <varlistentry> <term> <option>-s</option>, <option>--shell</option> <replaceable>SHELL</replaceable> </term> <listitem> <para> The name of the user's login shell. The default is to leave this field blank, which causes the system to select the default login shell. </para> </listitem> </varlistentry> <varlistentry> <term> <option>-u</option>, <option>--uid</option> <replaceable>UID</replaceable> </term> <listitem> <para> The numerical value of the user's ID. This value must be unique, unless the <option>-o</option> option is used. The value must be non-negative. The default is to use the smallest ID value greater than 999 and greater than every other user. Values between 0 and 999 are typically reserved for system accounts. </para> </listitem> </varlistentry> </variablelist> <refsect2 id='changing_the_default_values'> <title>Changing the default values</title> <para> When invoked with only the <option>-D</option> option, <command>useradd</command> will display the current default values. When invoked with <option>-D</option> plus other options, <command>useradd</command> will update the default values for the specified options. Valid default-changing options are: </para> <variablelist remap='IP'> <varlistentry> <term> <option>-b</option>, <option>--base-dir</option> <replaceable>BASE_DIR</replaceable> </term> <listitem> <para> The path prefix for a new user's home directory. The user's name will be affixed to the end of <replaceable>BASE_DIR</replaceable> to form the new user's home directory name, if the <option>-d</option> option is not used when creating a new account. </para> </listitem> </varlistentry> <varlistentry> <term> <option>-e</option>, <option>--expiredate</option> <replaceable>EXPIRE_DATE</replaceable> </term> <listitem> <para>The date on which the user account is disabled.</para> </listitem> </varlistentry> <varlistentry> <term> <option>-f</option>, <option>--inactive</option> <replaceable>INACTIVE</replaceable> </term> <listitem> <para> The number of days after a password has expired before the account will be disabled. </para> </listitem> </varlistentry> <varlistentry> <term> <option>-g</option>, <option>--gid</option> <replaceable>GROUP</replaceable> </term> <listitem> <para> The group name or ID for a new user's initial group. The named group must exist, and a numerical group ID must have an existing entry. </para> </listitem> </varlistentry> <varlistentry> <term> <option>-s</option>, <option>--shell</option> <replaceable>SHELL</replaceable> </term> <listitem> <para> The name of a new user's login shell. </para> </listitem> </varlistentry> </variablelist> </refsect2> </refsect1> <refsect1 id='notes'> <title>NOTES</title> <para>The system administrator is responsible for placing the default user files in the <filename>/etc/skel/</filename> directory. </para> </refsect1> <refsect1 id='caveats'> <title>CAVEATS</title> <para> You may not add a user to a NIS or LDAP group. This must be performed on the corresponding server. </para> <para> Similarly, if the username already exists in an external user database such as NIS or LDAP, <command>useradd</command> will deny the user account creation request. </para> <para> Usernames must begin with a lower case letter or an underscore, and only lower case letters, underscores, dashes, and dollar signs may follow. In regular expression terms: [a-z_][a-z0-9_-]*[$] </para> </refsect1> <refsect1 id='configuration'> <title>CONFIGURATION</title> <para> The following configuration variables in <filename>/etc/login.defs</filename> change the behavior of this tool: </para> <variablelist> &GID_MAX; <!-- documents also GID_MIN --> &MAIL_DIR; &MAX_MEMBERS_PER_GROUP; &PASS_MAX_DAYS; &PASS_MIN_DAYS; &PASS_WARN_AGE; &UID_MAX; <!-- documents also UID_MIN --> &UMASK; </variablelist> </refsect1> <refsect1 id='files'> <title>FILES</title> <variablelist> <varlistentry> <term><filename>/etc/passwd</filename></term> <listitem> <para>User account information.</para> </listitem> </varlistentry> <varlistentry> <term><filename>/etc/shadow</filename></term> <listitem> <para>Secure user account information.</para> </listitem> </varlistentry> <varlistentry> <term><filename>/etc/group</filename></term> <listitem> <para>Group account information.</para> </listitem> </varlistentry> <varlistentry> <term><filename>/etc/default/useradd</filename></term> <listitem> <para>Default values for account creation.</para> </listitem> </varlistentry> <varlistentry> <term><filename>/etc/skel/</filename></term> <listitem> <para>Directory containing default files.</para> </listitem> </varlistentry> <varlistentry> <term><filename>/etc/login.defs</filename></term> <listitem> <para>Shadow password suite configuration.</para> </listitem> </varlistentry> </variablelist> </refsect1> <refsect1 id='exit_values'> <title>EXIT VALUES</title> <para> The <command>useradd</command> command exits with the following values: <variablelist> <varlistentry> <term><replaceable>0</replaceable></term> <listitem> <para>success</para> </listitem> </varlistentry> <varlistentry> <term><replaceable>1</replaceable></term> <listitem> <para>can't update password file</para> </listitem> </varlistentry> <varlistentry> <term><replaceable>2</replaceable></term> <listitem> <para>invalid command syntax</para> </listitem> </varlistentry> <varlistentry> <term><replaceable>3</replaceable></term> <listitem> <para>invalid argument to option</para> </listitem> </varlistentry> <varlistentry> <term><replaceable>4</replaceable></term> <listitem> <para>UID already in use (and no <option>-o</option>)</para> </listitem> </varlistentry> <varlistentry> <term><replaceable>6</replaceable></term> <listitem> <para>specified group doesn't exist</para> </listitem> </varlistentry> <varlistentry> <term><replaceable>9</replaceable></term> <listitem> <para>username already in use</para> </listitem> </varlistentry> <varlistentry> <term><replaceable>10</replaceable></term> <listitem> <para>can't update group file</para> </listitem> </varlistentry> <varlistentry> <term><replaceable>12</replaceable></term> <listitem> <para>can't create home directory</para> </listitem> </varlistentry> <varlistentry> <term><replaceable>13</replaceable></term> <listitem> <para>can't create mail spool</para> </listitem> </varlistentry> </variablelist> </para> </refsect1> <refsect1 id='see_also'> <title>SEE ALSO</title> <para> <citerefentry> <refentrytitle>chfn</refentrytitle><manvolnum>1</manvolnum> </citerefentry>, <citerefentry> <refentrytitle>chsh</refentrytitle><manvolnum>1</manvolnum> </citerefentry>, <citerefentry> <refentrytitle>passwd</refentrytitle><manvolnum>1</manvolnum> </citerefentry>, <citerefentry> <refentrytitle>crypt</refentrytitle><manvolnum>3</manvolnum> </citerefentry>, <citerefentry> <refentrytitle>groupadd</refentrytitle><manvolnum>8</manvolnum> </citerefentry>, <citerefentry> <refentrytitle>groupdel</refentrytitle><manvolnum>8</manvolnum> </citerefentry>, <citerefentry> <refentrytitle>groupmod</refentrytitle><manvolnum>8</manvolnum> </citerefentry>, <citerefentry> <refentrytitle>login.defs</refentrytitle><manvolnum>5</manvolnum> </citerefentry>, <citerefentry> <refentrytitle>newusers</refentrytitle><manvolnum>8</manvolnum> </citerefentry>, <citerefentry> <refentrytitle>userdel</refentrytitle><manvolnum>8</manvolnum> </citerefentry>, <citerefentry> <refentrytitle>usermod</refentrytitle><manvolnum>8</manvolnum> </citerefentry>. </para> </refsect1> </refentry>