What we’ll cover in this article is adding and deleting users, as well as modifying exiting users. We’ll then focus on groups and how to add/delete them. I will also point out key files that are associated with this process for those of you that are new to Linux or are looking to pass some type of certification.
What is passwd/groups?
I know you didn’t ask, but before we get into the main course of this article I want to introduce two files that we will be using as examples. In the /etcdirectory, the passwd & the group files hold all of the users and group information. These files are essential when logging on to the system. Anytime you add a user, that user is added to the passwd file. Let’s take a look at/etc/passwd first.
When you add a user to the system, that user is placed into the passwd file.
Issue command: less /etc/passwd
Use the arrows keys to go up and down and “q” to exit.
You can edit the file directly or use the commands we will go over shortly. I recommend using the commands especially if you are a beginner. You do not want to corrupt the passwd file.
Let’s take a look at the group file:
The /etc/group file holds all of the group information as well as the users belonging to each group. The structure is very similar to that of/etc/password.
Again, these files are vital to the system and you will need to know them if you are taking any Linux exams.
Adding/Deleting Users
Adding a user is easy. The command used is: useradd “name of the user”
Note – You must be logged-in as root to add, delete, and modify users. It is not recommended to stay logged-in as root other than when necessary and only certain members should have root access.
Example:
useradd roman
You can then use “su” plus the name of the user you just added to logon. “exit” will take you out.
The command for deleting a user is “userdel”.
userdel roman
These commands are very basic, but there are other options we have as well. Options:
- -d sets home directory for the user (if other than the default which is: /home/”user’s name”)
- -m creates the home directory
Using the –d option on its own will only set the home directory for the user, but does not create it.
You can see I confirm this by “echo $HOME” which tells me my home directory and I use “ls” to confirm.
Adding the –m option will create the directory.
If you just add the user, default directory is /home/”users name” and you can just use the –m to create.
Lastly, using the “-r” option along with userdel will delete the user as well as the home directory.
Changing Passwords
If you are logged in as root, the command is “username” password.
Example: passwd roman
If you are logged on as the user, the command is “passwd”.
Adding Users to Groups
Let’s say we want to add roman to the group accounting. “-g” is used to change the user’s primary group.
Command is: useradd –gaccounting roman
I then ran the grep command to confirm.
However, say I want to add roman to the group accounting and make his primary group sales. We can add the “-G” option (other groups).
“-G” basically says add this user to a new group, but keep them in the old one (append).
Then issue command “id roman” – to confirm.
We can use “-G” on its own to add a user to another group.
Note: The groups must exit before we can add users to them.
Modifying Users
If a user is created and you just want to add that user to a group, or change the home directory, etc:
Example: usermod -Gmanagement roman
Or you can change the home directory for the user:
Example: usermod –d/home/newfolder roman
Creating Groups
The command for adding groups is “groupadd” or “groupdel”.
You can confirm by checking the /group/etc file.
Example: grep software /etc/group or cat /etc/group
The “groupdel” command will remove the group entirely.
There are a number of options you have when creating users and groups. Again, you could just go into /etc/passwd directly and add a user there, but unless you are familiar with file editors and putting a lock on, you should work with the commands. We will go over alternate methods in the Vi section.
Summary
- Commands: useradd, userdel, usermod, groupadd, groupdel
- Options
-d change user’s home directory
-m create directory
-s used to change the default shell
-r remove home directory when deleting user - “Passwd” will change the user’s password
How to Add a User and Grant Root Privileges on Ubuntu 14.04
- These instructions are intended specifically for adding a user on Ubuntu 14.04 LTS.
- I’ll be working from a Liquid Web Core Managed Ubuntu 14.04 LTS server, and I’ll be logged in as root.
It’s just one simple command to add a user. In this case, we’re adding a user called mynewuser :
adduser mynewuser
First you will be prompted to enter the user’s password (twice); do this step. Next you’ll be prompted to enter in the user’s information. This step is not required, and pressing enter fills the field with the default information:
Adding user `mynewuser’ …
Adding new group `mynewuser’ (1001) …
Adding new user `mynewuser’ (1001) with group `mynewuser’ …
Creating home directory `/home/mynewuser’ …
Copying files from `/etc/skel’ …
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for mynewuser
Enter the new value, or press ENTER for the default
Full Name []: User
Room Number []:
Work Phone []:
Home Phone []:
Other []:
When prompted with the following question, enter Y then hit enter to continue.
Is the information correct? [Y/n] Y
visudo
Find the following code:
# User privilege specification
root ALL=(ALL:ALL) ALL
In this case, we’re granting root privileges to the user mynewuser . Add the following below that code:
mynewuser ALL=(ALL:ALL) ALL
Then exit and save the file with the key commands Ctrl-x, Y, enter.
If you’ve followed the instruction above correctly, then you should now have a user setup by the name ofmynewuser which can use sudo to run commands as root!
what is difference between /etc/shadow and /etc/passwd
passwd
is the file where the user information (like username, user ID, group ID, location of home directory, login shell, …) is stored when a new user is created.
shadow
is the file where important information (like an encrypted form of the password of a user, the day the password expires, whether or not the passwd has to be changed, the minimum and maximum time between password changes, …) is stored when a new user is created.