User Administration

User administration is the process of creating and managing different types of user accounts on a linux operating system and their respective permissions in an operating system.

In this tutorial we will learn about user administration on linux based operating system.

User Accounts

In Linux, there are three types of user accounts:

  • Root/Super User
  • System User
  • Normal User

Root/Super Account: This user account is also known as the root account. It has all the permissions and can run all the commands without any restrictions.When you install operating system the root account is created.

System Account: System users mostly run system services and processes in the background. System user does not own home directory. We user this account to run a daemon, service, or other system software, rather than an account for interactive use.

Normal Account: Normal user accounts are created by root user so that user can login and perform different tasks on a server. Root user can also assign or restrict their access to some file or directories.

How to login using user account?

Normally, when root user creates normal user account they have username and password. You need to know which server this account is created for.

To login you need server ip address, username and a password. You can use terminal or putty software to login to linux machine. Use following command to login:

# login to server using user account
ssh user@

It will ask you to enter password and then you would be able to see home directory once you are logged in.

Important user administration files

  • /etc/passwd - when root user creates a new user it will add entry for this newly created user in this file. This file holds user account related information.
  • /etc/shadow - this file holds encrypted password for the entry in /etc/passwd file for the user. Not all system supports this file.
  • /etc/group - this file keeps info regarding user group for each account.
  • /etc/gshadow - this file contains secure group account information

How to create normal user in linux?

To create a normal user in linux you first need to login as a root user to your linux server and then run following command to create new user.

# create a normal user
useradd john

# assign passwod to john user
passwd john

# check user entry in /etc/passwd file
cat /etc/passwd | grep -i john

What happens when user is created:

  • system will create unique user id for newly created user
  • it will also create a group name same as your username with unique group id
  • a new record related to user will be added to /etc/passwd and /etc/shadow files

Followings are some other ways of creating user accounts using diff options:

Command Description
useradd <user> creates a user with home directory /home/<username>
useradd -d <dir-location> <user> creates user with different home directory
useradd -u <id> <user> creates user with user id provided
useradd -u <id> -g <group-name> <user> creates user with user id and user group provided
id -gn <user> displays current users group name
usermod -a -G <groups seperated by comma> <user> adds existing user to multiple groups
id <user> shows current user group and user id
useradd -M <user> add user without home directory
useradd -e <YYYY-MM-DD> <user> creates user with expiry date of the account
chage -l <user> verify age of the user account
useradd -e <YYYY-MM-DD> -f <days> <user> creates user with expiry date and days to expire his password
useradd -c <comment> <user> adds user with some comments
useradd -s <shell-location> <user> creates user with login shell assigned
userdel <user> delete a user
useradd -g <primary-group> -G <secondary-group> <user> creates user with primary and secondary group
passwd -l <user> lock user's password
passwd -u <user> unlock the user password
usermod -l <new-name> <existing-name> change name of the user
usermod -d <dir-loc> <user> change user's home directory
usermod -L <user> lock user's account
usermod -U <user> unlock the user account

User groups

In linux groups are created in order to organize and administer user accounts. The primary purpose of the group is to define set of permissions such as read, write and execute for a given resource.

There are two types of groups:

  • The Primary Group - usually name of the group is same as the name of the user. When user is created group with same name as user is also created.
  • Secondary Group - this group is useful when you want to grant certain file or folder permissions to set of users.

Each user can belong to exactly one primary group and zero or more secondary groups.

How to create a group in linux?

There are different commands that you can use in order to create groups. Followings are some of thw ways you can create a new group or add user to group.

Command Summary
groupadd <group> creates a group with name provided
usermod -a -G <group> <user> adds an existing user to a secondary group
usermod -a -G <group1, group2> <user> add user to multiple groups
groupdel <group> delete a group
usermod -g <group> <user> changing users primary group
groups <user> shows user's seconday groups

In next tutorial we will learn about user permissions or access control.