YouTube Icon

Code Playground.

How to Create Users in Linux (useradd Command)


How to Create Users in Linux (useradd Command)

Linux is a multi-client framework, which implies that beyond what one individual can associate with a similar framework simultaneously. As a framework chairman, you have the obligation to deal with the framework's clients and gatherings by making and eliminating clients and allot them to various gatherings . 

In this article, we will discuss how to make new client accounts utilizing the useradd order. 

useradd Command

The overall linguistic structure for the useradd order is as per the following: 


Just root or clients with sudo advantages can utilize the useradd order to make new client accounts. 

When summoned, useradd makes another client account as per the alternatives indicated on the order line and the default esteems set in the/and so on/default/useradd document. 

The factors characterized in this document vary from circulation to dispersion, which causes the useradd order to create various outcomes on various frameworks. 

useradd likewise peruses the substance of the/and so forth/login.defs record. This record contains arrangement for the shadow secret word suite, for example, secret phrase lapse strategy, scopes of client IDs utilized while making framework and ordinary clients, and the sky is the limit from there. 

How to Create a New User in Linux

To make another client account, conjure the useradd order followed by the name of the client. 

For instance to make another client named username you would run: 

sudo useradd username

At the point when executed with no alternative, useradd makes another client account utilizing the default settings indicated in the/and so on/default/useradd record. 

The order adds a section to the/and so forth/passwd,/and so on/shadow,/and so on/gathering and/and so on/gshadow documents. 

To have the option to sign in as the recently made client, you need to set the client secret word. To do that run the passwd order followed by the username: 

sudo passwd username

You will be incited to enter and affirm the secret key. Ensure you utilize a solid secret key. 

Changing password for user username.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.

How to Add a New User and Create Home Directory

On most Linux circulations, while making another client account with useradd, the client's home catalog isn't made. 

Utilize the - m (- - make home) alternative to make the client home index as/home/username: 

sudo useradd -m username

The order above makes the new client's home index and duplicates documents from/and so on/skel catalog to the client's home registry. In the event that you list the records in the/home/username catalog, you will see the introduction documents: 

ls -la /home/username/
drwxr-xr-x 2 username username 4096 Dec 11 11:23 .
drwxr-xr-x 4 root     root     4096 Dec 11 11:23 ..
-rw-r--r-- 1 username username  220 Apr  4  2018 .bash_logout
-rw-r--r-- 1 username username 3771 Apr  4  2018 .bashrc
-rw-r--r-- 1 username username  807 Apr  4  2018 .profile

 Inside the home catalog, the client can compose, alter and erase records and indexes. 

Creating a User with Specific Home Directory

As a matter of course useradd makes the client's home registry in/home. In the event that you need to make the client's home index in other area, utilize the d (- - home) choice. 

Here is a model telling the best way to make another client named username with a home index of/select/username: 

sudo useradd -m -d /opt/username username

Creating a User with Specific User ID

In Linux and Unix-like working frameworks, clients are recognized by special UID and username. 

Client identifier (UID) is an extraordinary positive whole number appointed by the Linux framework to every client. The UID and different access control strategies are utilized to decide the kinds of activities a client can perform on framework assets. 

Naturally, when another client is made, the framework allocates the following accessible UID from the scope of client IDs determined in the login.defs record. 

Summon useradd with the - u (- - uid) alternative to make a client with a particular UID. For instance to make another client named username with UID of 1500 you would type: 

sudo useradd -u 1500 username

You can confirm the client's UID, utilizing the id order: 

id -u username

Creating a User with Specific Group ID

Linux bunches are association units that are utilized to sort out and oversee client accounts in Linux. The main role of gatherings is to characterize a bunch of advantages, for example, perusing, composing, or executing consent for a given asset that can be shared among the clients inside the gathering. 

While making another client, the default conduct of the useradd order is to make a gathering with a similar name as the username, and same GID as UID. 

The - g (- - gid) alternative permits you to make a client with a particular introductory login gathering. You can indicate either the gathering name or the GID number. The gathering name or GID should as of now exist. 

The accompanying model tells the best way to make another client named username and set the login gathering to clients type: 

sudo useradd -g users username

To confirm the client's GID, utilize the id order: 

id -gn username

Creating a User and Assign Multiple Groups

There are two kinds of gatherings in Linux working frameworks Primary gathering and Secondary (or beneficial) gathering. Every client can have a place with precisely one essential gathering and at least zero auxiliary gatherings. 

You to determine a rundown of valuable gatherings which the client will be an individual from with the - G (- - gatherings) alternative. 

The accompanying order makes another client named username with essential gathering clients and optional gatherings haggle. 

sudo useradd -g users -G wheel,developers username

You can check the client bunches by composing 

id username
uid=1002(username) gid=100(users) groups=100(users),10(wheel),993(docker)

Creating a User with Specific Login Shell

Naturally, the new client's login shell is set to the one indicated in the/and so forth/default/useradd record. In certain disseminations the default shell is set to/canister/sh while in others it is set to/container/slam. 

The - s (- - shell) alternative permits you to indicate the new client's login shell. 

For instance, to make another client named username with/usr/container/zsh as a login shell type: 

sudo useradd -s /usr/bin/zsh username

Check the client section in the/and so forth/passwd record to confirm the client's login shell: 

grep username /etc/passwd
username:x :1001:1001::/home/username:/usr/bin/zsh

Creating a User with Custom Comment

The - c (- - remark) alternative permits you to add a short depiction for the new client. Ordinarily the client's complete name or the contact data are added as a remark. 

In the accompanying model, we are making another client named username with text string Test User Account as a remark: 

sudo useradd -c "Test User Account" username

The remark is spared in/and so forth/passwd document: 

grep username /etc/passwd
username:x :1001:1001:Test User Account:/home/username:/bin/sh

The remark field is otherwise called GECOS. 

Creating a User with an Expiry Date

To characterize a period at which the new client records will lapse, utilize the - e (- - expiredate) alternative. This is valuable for making brief records. 

The date must be indicated utilizing the YYYY-MM-DD design. 

For instance to make another client account named username with an expiry time set to January 22 2019 you would run: 

sudo useradd -e 2019-01-22 username

Utilize the chage order to confirm the client account expiry date: 

sudo chage -l username

The yield will look something like this: 

Last password change					: Dec 11, 2018
Password expires					: never
Password inactive					: never
Account expires						: Jan 22, 2019
Minimum number of days between password change		: 0
Maximum number of days between password change		: 99999
Number of days of warning before password expires	: 7

Creating a System User

There is no genuine specialized distinction between the framework and customary (typical) clients. Ordinarily framework clients are made when introducing the OS and new bundles. 

Utilize the - r (- - framework) choice to make a framework client account. For instance, to make another framework client named username you would run: 

sudo useradd -r username

Framework clients are made with no expiry date. Their UIDs are browsed the scope of framework client IDs determined in the login.defs record, which is not quite the same as the reach utilized for typical clients. 

Changing the Default useradd Values

The default useradd alternatives can be seen and changed utilizing the - D, - defaults choice, or by physically altering the qualities in the/and so forth/default/useradd record. 

To see the current default alternatives type: 

useradd -D

The yield will look something like this: 


Suppose you need to change the default login shell from/canister/sh to/receptacle/slam. To do that, indicate the new shell as demonstrated as follows: 

sudo useradd -D -s /bin/bash

You can confirm that the default shell esteem is changed by running the accompanying order: 

sudo useradd -D | grep -i shell


We have told you the best way to make new client accounts utilizing the useradd order. Similar guidelines apply for any Linux appropriation, including Ubuntu, CentOS, RHEL, Debian, Fedora, and Arch Linux. 

useradd is a low-level utility, Debian and Ubuntu clients can utilize the more amicable adduser order all things being equal. 

Don't hesitate to leave a remark in the event that you have any inquiries.