How to Add, Modify and Remove User in Linux?


User control in any running components is likely one of the fundamental regimen duties of a components administrator.

For a Linux-based OS, it in most cases comes to growing person accounts, editing current accounts like converting their domestic listing, default shell, locking/unlocking a number of accounts, and putting off person accounts.

Before we examine the instructions and processes to perform those duties, let’s delve in brief into how person accounts will also be categorized in Linux. Also, word that except explicitly specified, given instructions will paintings in lots of the not unusual Linux distributions.

User Types

Root User

The root person is the administrator of OS with all permissions to carry out operations. Usually, best root can set up/uninstall or replace fundamental components techniques and libraries. It is the one person account with system-wide privileges.

So, the basis person is essentially the most robust person of the components.

Special User

These are the customers with out logins. They don’t have all of the privileges of the root person. Depending at the account, they suppose other specialised roles.

These are created robotically on the time of any utility set up. bin, sync, lp, mail, operator, squid are one of the examples of particular customers.

Common Users

Common customers have complete privileges best in their operating listing, in most cases their domestic listing. They don’t have privileges to arrange the components or set up the instrument. They can’t carry out those duties with no need particular privileges by the use of sudo.

Adding User

Debian/Ubuntu

On a Debian or Ubuntu-based components, there are a few choices to upload customers from CLI. The first command is adduser, which is a Perl script and makes use of useradd command in the backend whose utilization we’ll see later.

Since including a person is a privileged job, you might want to use sudo as prefix and username as argument. Other main points will also be specified as induced. Except for username and password, the remainder of the main points are not obligatory. We can test that the person has been created by means of the use of identity command.

$ sudo adduser johndoe
Adding person `johndoe' ...
Adding new team `johndoe' (1003) ...
Adding new person `johndoe' (1003) with team `johndoe' ...
Creating domestic listing `/domestic/johndoe' ...
Copying information from `/and many others/skel' ...
New password:
Retype new password:
passwd: password up to date effectively
Changing the person data for johndoe
Enter the brand new price, or press ENTER for the default
        Full Name []: John Doe
        Room Number []:
        Work Phone []:
        Home Phone []:
        Other []:
Is the guidelines proper? [Y/n] Y
$
$ identity johndoe
uid=1003(johndoe) gid=1003(johndoe) teams=1003(johndoe)
$

CentOS/RHEL/Fedora (Including Debian/Ubuntu)

The subsequent command, useradd will paintings throughout RHEL founded OS distributions in addition to works similarly neatly on Ubuntu/Debian hosts. The most simple syntax (with none further choices) to create a brand new person is:

$ sudo useradd <username>

Example:

$ sudo useradd janedoe

The useradd command helps more than one choices that may be specified whilst growing the person, maximum not unusual being person ID (UID), team ID (GID), default shell and domestic listing, and many others. One such instance is given underneath:

$ sudo useradd -s /bin/sh -d /knowledge/newhome -c "Jane Doe" -u 1005 janedoe

You can test the newly created person the use of identity command:

$ identity janedoe
uid=1005(janedoe) gid=1005(janedoe) teams=1005(janedoe)
$

Modifying User

One frequently wishes to alter some assets of current customers in keeping with group necessities, person requests, or components migrations. Most of those homes are simple to alter regardless that we’d like to be sure the way it’ll have an effect on the person surroundings and get right of entry to to information owned or accessed by means of the person.

Default Shell

The default shell is the CLI shell created when a person launches a brand new CLI consultation both in the community or by the use of SSH. Most trendy techniques have a default person Bash regardless that it could actually range in keeping with Linux distribution or the person’s surroundings. To alter the default shell of a person, use:

$ sudo usermod -s <shell> <username>

Example:

$ getent passwd janedoe
janedoe:x:1005:1005::/knowledge/newhome:/bin/sh
$ sudo usermod -s /bin/bash janedoe
$ getent passwd janedoe
janedoe:x:1005:1005::/knowledge/newhome:/bin/bash
$

As you’ll be able to see in the above output, the shell has been modified from /bin/sh to /bin/bash for person janedoe.

Home Directory

Like default shell, a person’s domestic listing will also be changed to a special location the use of:

$ sudo usermod -d <new_directory_path> <username>

In the instance underneath, the person domestic listing of the person janedoe has been modified to /knowledge/janedoe:

$ getent passwd janedoe
janedoe:x:1005:1005::/knowledge/newhome:/bin/bash
$ sudo usermod -d /knowledge/janedoe janedoe
$ getent passwd janedoe
janedoe:x:1005:1005::/knowledge/janedoe:/bin/bash
$

Before making the transfer, make sure that the brand new listing has the precise possession and permissions. Otherwise, the person might face problems right through login or operating in the brand new domestic listing.

User ID

You can alternate the person ID of an current person the use of:

$ sudo usermod -u <new_uid> <username>

Example:

$ getent passwd janedoe
janedoe:x:1005:1005::/knowledge/janedoe:/bin/bash
$ sudo usermod -u 1010 janedoe
$ getent passwd janedoe
janedoe:x:1010:1005::/knowledge/janedoe:/bin/bash
$

Again, converting UID adjustments how Linux filesystem maps possession and permission to a record or listing. Ensure that the person’s domestic listing and its contents and all different information anyplace in the components, firstly owned by means of the person (with previous UID), is modified to UID mapped. Not doing so could cause issues in the CLI consultation and record get right of entry to by means of the person.

Default Group

The default team is in most cases the person’s default team ID, which will get created right through person advent except every other GID is specified. Linux permits you to alter the default team of a person the use of usermod command as neatly. Here’s the syntax to use:

$ sudo usermod -g <new_gid or group_name> <username>

Here’s one instance:

$ getent passwd janedoe
janedoe:x:1010:1005::/knowledge/janedoe:/bin/bash
$ sudo usermod -g 1001 janedoe
$ getent passwd janedoe
janedoe:x:1010:1001::/knowledge/janedoe:/bin/bash
$

Again, be sure the brand new team ID is about at the person’s domestic listing, contents, and all different information or directories appropriate to correctly migrate their possession permissions.

Adding/Removing Groups

Besides the default team, a person in Linux will also be a part of secondary teams. We can at all times upload or eliminate further teams a person belongs to the use of usermod command.

$ sudo usermod -a -G <group_id or group_name> <username>

Example:

$ identity janedoe
uid=1005(janedoe) gid=1005(janedoe) teams=1005(janedoe)
$ sudo usermod -a -G docker janedoe
$ identity janedoe
uid=1005(janedoe) gid=1005(janedoe) teams=1005(janedoe),1001(docker)
$

Similarly, to eliminate a person from one of the most secondary teams, use gpasswd command as proven underneath:

$ sudo gpasswd -d <username> <groupname>

Example:

$ identity janedoe
uid=1005(janedoe) gid=1005(janedoe) teams=1005(janedoe),1001(docker)
$ sudo gpasswd -d janedoe docker
Removing person janedoe from team docker
$ identity janedoe
uid=1005(janedoe) gid=1005(janedoe) teams=1005(janedoe)
$

GECOS Comment

GECOS box in /and many others/passwd incorporates person data or remark. We can alter this knowledge for an current person as:

$ sudo usermod -c <remark> <username>

Example:

$ getent passwd janedoe
janedoe:x:1005:1005::/knowledge/janedoe:/bin/bash
$ sudo usermod -c "Jane Doe - System Admin" janedoe
$ getent passwd janedoe
janedoe:x:1005:1005:Jane Doe - System Admin:/knowledge/janedoe:/bin/bash
$

Please word that in case your remark or person main points include areas, enclose that box in quotes as finished in the above instance.

Login Name

The person’s login title will also be modified the use of usermod command by means of the use of -l flag:

$ sudo usermod -l <new_username> <old_username>

Example:

$ identity janedoe
uid=1005(janedoe) gid=1005(janedoe) teams=1005(janedoe)
$ sudo usermod -l jane_doe janedoe
$ identity jane_doe
uid=1005(jane_doe) gid=1005(janedoe) teams=1005(janedoe)
$

Remember to replace person references as in keeping with new title anyplace used. Even in instructions like identity, the brand new username must be specified.

Removing User

A person will also be got rid of from Linux the use of userdel command.

$ sudo userdel <username>

Example:

$ identity janedoe
uid=1005(janedoe) gid=1005(janedoe) teams=1005(janedoe)
$ sudo userdel janedoe
$ identity janedoe
identity: ‘janedoe’: no such person
$

To eliminate a person at the side of its domestic listing and mail spool, upload -r flag as neatly.

$ sudo userdel -r <username>

Specifically for Ubuntu-based techniques, you’ll be able to additionally person deluser command to eliminate a person:

$ sudo deluser <username>

Similarly, to eliminate the house listing and mail spool as neatly, use:

$ sudo deluser --remove-home <username>

For detailed data and different supported choices, refer to the principle web page of more than a few instructions the use of:

$ guy adduser
$ guy useradd
$ guy usermod
$ guy deluser
$ guy userdel

Conclusion

This article confirmed more than a few sides of person control in a Linux components. This contains a proof of more than a few classes of customers and how to upload and eliminate them. It additionally covers more than a few choices that assist to alter the parameters of an current person. Though it doesn’t duvet all probabilities supported by means of more than a few instructions, it covers a large number of not unusual management duties {that a} components administrator will come upon in day-to-day paintings.

You can be in reading: How to eliminate information and directories in Linux?

Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button