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:
useradd [OPTIONS] USERNAME
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
1500
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
users
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:
GROUP=100
HOME=/home
INACTIVE=-1
EXPIRE=
SHELL=/bin/sh
SKEL=/etc/skel
CREATE_MAIL_SPOOL=no
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
SHELL=/bin/bash
Conclusion
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.