System Management Commands USERADD(8) linux

useradd - create a new user or update default new user information

useradd -D

useradd [options] loginName

Creates a new user account using the values specified on the command line and the default values from the system. May create the new user's home directory and copy initial files there.
Some versions will create a group for each user added to the system by default.

Suggested usage:
sudo adduser --comment "firstname lastname" --create-home flastname
sudo passwd flastname

--uid uid
Numerical uid, unsigned, and unique, (unless the -o is used).
Default uses the next higher number than currently exists.
0 - 999 are typically reserved for system accounts.
Allow the creation of a user with a non-unique uid, a synonum.
--gid group
group name or number for the user's initial group, refering to an existing group.
-groups g1[,g2,…[,gn]]]
list of supplementary groups of which the user is also a member, separated by commas, with no intervening whitespace. The groups are subject to the same restrictions as the group given with the -g.
No default.
-n This option turns off the Red Hat Linux specific behavior to create group having the same name as the user being added . When this option is used, users by default will be placed in whatever group is specified in /etc/default/useradd.
If no default group is defined, group 1 will be used.
--comment comment
generally a short description of the login, and is used as the field for the user's full name.

--skel skel_dir

Create home directory.
Files contained in /etc/skel will be copied there.
-k overrides /etc/skel.
Directories in /etc/skel or skel_dir will be created in the user's home directory .
(The -k is only valid in conjunction with -m . )
Default does not create the directory and does not copy files.
--base-dir base_dir
default base directory for the system if -d dir is not specified. base_dir is concatenated with the account name to define the home directory.
If -m is not used, base_dir must exist.
--home home_dir
New user's login directory, will not be created.
Default concatonates base_dir and login
-M The user's home directory will not be created.
--password password
The encrypted password, as returned by crypt.
The default is to have the account disabled. Since it is nearly impossible to correctly enter the crypted password, my advise is to leave the account disabled, then enter the password using sudo passwd loginName
--expiredate yyyy-mm-dd
date the account will be disabled,
--inactive days
grace period, in days, after a password expires, after which the account is disabled.
0 disables the account as soon as the password has expired, and
-1 disables password ageing.
The default value is -1.
Overrides /etc/login.defs defaults (UID_MIN, UID_MAX, UMASK, PASS_MAX_DAYS and others).
Example: -K PASS_MAX_DAYS=-1 can be used when creating system account to turn off password ageing, even though system account has no password at all.
Multiple -K entries can be specified, e.g.: -K UID_MIN=100 -K UID_MAX=499
-r This flag is used to create a system account. That is, a user with a UID lower than the value of UID_MIN defined in /etc/login.defs and whose password does not expire no a home directory is created unless -m is present. This is an option added by Red Hat
--shell SHELL
login shell. The default leaves this field blank, which causes the system to select the default login shell.
-l lower case L Do not add the user to the last login log file.
--selinux-user SEUSER
The SELinux user for the user's login. The default is to leave this field blank, which causes the system to select the default SELinux user.
Display help message and exit.

When invoked with -D either display the current default values, or update the default values from the command line.
-b home_dir initial path prefix for a new user's home directory. The user's name will be affixed to the end of home_dir to create the new directory name if the -d is not used when creating a new account.
-e expire_date date on which the user account is disabled.
-f days number of days after a password has expired before the account will be disabled.
--gid group
group name or ID for a new user's initial group, must exist, and a numerical group ID must have an existing entry.
--shell shell
name of the new user's login shell to be used for all future new user accounts.

If no options are specified, useradd displays the current default values.

The system administrator is responsible for placing the default user files in /etc/skel .

Adding a user to a NIS group must be performed on the NIS server.

if the username already exists in an external user database such as NIS, useradd will deny the user account creation request.


/etc/passwd User account information.
/etc/shadow Secure user account information.
/etc/group Group account information.
/etc/gshadow Secure group account information.
/etc/default/useradd Default values for account creation.
/etc/skel/ Directory containing default files.
/etc/login.defs Shadow password suite configuration.


0 success
1 can't update password file
2 invalid command syntax
3 invalid argument to option
4 UID already in use (and no -o)
6 specified group doesn't exist
9 username already in use
10 can't update group file
12 can't create home directory
13 can't create mail spool

See userdel, usermod, chfn, chsh, passwd, crypt, groupadd, groupdel, groupmod, login.defs,

System Management Commands 06/24/2006 USERADD(8)