Linux and Unix useradd command
Quick links
About useradd
Syntax
Examples
Related commands
Linux and Unix main page
Enables a super user or root to create a new user or updates default new user information.
useradd [-c comment] [-d home_dir] [-e expire_date] [-f inactive_time] [-g initial_group] [-G group[,...]] [-m [-k skeleton_dir]] [-p passwd] [-s shell] [-u uid [ -o]] login
useradd -D [-g default_group] [-b default_home] [-f default_inactive] [-e default_expire_date] [-s default_shell]
| -c comment | The new user's password file comment field. |
| -d home_dir | The new user will be created using home_dir as the value for the user's login directory. The default is to append the login name to default_home and use that as the login directory name. |
| -e expire_date | The date on which the user account will be disabled. The date is specified in the format YYYY-MM-DD. |
| -f inactive_time | 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. |
| -g initial_group | 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. |
| -G group,[,...] | 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 -g option. The default is for the user to belong only to the initial group. |
| -m | The user's home directory will be created if it does not exist. The files contained in skeleton_dir will be copied to the home directory if the -k option is used, otherwise the files contained in /etc/skel will be used instead. Any directories contained in skeleton_dir or /etc/skel will be created in the user's home directory as well. The -k option is only valid in conjunction with the -m option. The default is to not create the directory and to not copy any files. |
| -p passwd | The encrypted password, as returned by crypt. The default is to disable the account. |
| -s shell | 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. |
| -u uid | The numerical value of the user's ID. This value must be unique, unless the -o option is used. The value must be non-negative. The default is to use the smallest ID value greater than 99 and greater than every other user. Values between 0 and 99 are typically reserved for system accounts. |
| -b default_home | The initial path prefix for a new user's home directory. The user's name will be affixed to the end of default_home to create the new directory name if the -d option is not used when creating a new account. |
| -e default_expire_date | The date on which the user account is disabled. |
| -f default_inactive | The number of days after a password has expired before the account will be disabled. |
| -g default_group | 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. |
| -s default_shell | The name of the new user's login shell. The named program will be used for all future new user accounts. |
If no options are specified, useradd displays the current default values.
Tip: For these commands to work you must have super user rights or be logged in as root.
useradd -D
In the above example the useradd command would display the defaults. Below is an example of what could be displayed.
GROUP=100
HOME=/home
INACTIVE=1
EXPIRE=
SHELL=/bin/bash
SKEL=/etc/skel
useradd newperson
In the above example the useradd command would add "newperson" as a new user to the system. Once the new user has been added to the computer you would need to use the passwd command.
Note: Once a user has been created if you wish to modify any of the user settings such as the home directory setting use the usermod command.
