01. User and Group Management

Linux is a multi-user system. This means that the platform can handle multiple user logins. As a system adminstrator, it's important to know how to manage all the users, assign them to groups and manage their permission levels.

In this series, we'll learn how to first create and manage users and groups, then look at all the important files that manage these settings in the background.

Three Types of Accounts

There are three types of accounts on any Unix platform, all of may be within a group account:

  • Root account - unrestricted to running any command.
  • System account - accounts that are used to maintain the operation of daemons, mail accounts and other system-related programs.
  • User accounts - used by ordinary users or groups or users.

Creating a user

Creating a user is simple. Simply use useradd with any of the below options to create a user. Make sure you are root when you perform these actions.

$ useradd -c "Sarah Jones" -d /home/sarah -G intro-unix-course sarah
-c
Command field (store the user's full name).
-d
Specify user's home directory.
-e
Set a date when the account expires (YYYY-MM-DD).
-s
Set the default shell.
-p
Specify that you already have an encrypted password.
-M
Don't specify a home directory.
-G
Define all secondary groups that the user will belong to.
-g
Set the user's primary group.
-f
Define the number of days after a password expires that the account is permanently disabled.
0 for right after the password expires, -1 for don't use this feature at all.
-m
Create a home directory for the user.
-k
Specify a skeleton directory.
-l
Change the login name of the user.
-L
Lock the user's account.
-U
Unlock the user's account.
-x
Force the change of password after this many days have passed.

The Skeleton Directory

The skeleton directory holds all the default files to be included when a user is created. The system default skeleton folder is in /etc/skel.

$ mkdir skel
$ touch skel/example.txt
$ touch skel/example2.txt
$ useradd -c "Sarah Goodwill" -m -k /home/skel sarah 
$ ls /home/
sarah   ubuntu   user
$ ls /home sarah/
example.txt   example2.txt

If we forgot to include the -k option, we can easily create the directory and chown it to the user.

$ cd /home
$ mkdir sarah 
$ chown sarah:sarah 

Or we can use usermod with the -d option to assign sarah's new home directory. Note that the user can't be logged in.

$ usermod -d /home/sarah 

Modying existing users

To modify any existing users, use the usermod command with any of the above options.

# Set the user account to expire on the last day of 2016
$ usermod -e 2016-12-31 sarah 

Setting user password

To set a user's password, simply use the passwd command.

$ passwd sarah

Deleting users

To delete a user, use the userdel command. If Sarah spawned any processes, you can send the processes a kill signal to close them.

$ userdel sarah
userdel: user sarah is currently used by process 2381
$ kill 2381
$ userdel -r sarah

The -r options removes the user's home directory as well. The safe option is to not use this option, unless you are 100% sure.

Managing expiration time limits

The chage command is used to manage password expiration time limits. It sets the number of days between required password changes. First, make sure it's installed on your distro:

$ sudo apt-get install chage
$ sudo yum install chage
-E
Set the account expiration date (YYYY-MM-DD).
-I
Number of inactive days before locking the account.
-m
Minimum number of days between password changes.
-M
Maximum number of days that a password is valid.

Want to avoid becoming a code monkey?

The Productive Programmer

Want to avoid becoming a code monkey? Try Good Practice

The Productive Programmer offers critical timesaving and productivity tools that you can adopt right away. The book offers advice on the mechanics of productivity - how to work smarter, spurn interruptions, get the most out your computer, and avoid repetition - along with valuable practices that will help you elude common traps, improve your code, and become more valuable to your team.

$ Check price
39.9939.99Amazon 4 logo(41+ reviews)

More Good Practice resources

Take your Linux skills to the next level!

How Linux Works

Take your Linux skills to the next level! Try Linux & UNIX

In this completely revised second edition of the perennial best seller How Linux Works, author Brian Ward makes the concepts behind Linux internals accessible to anyone curious about the inner workings of the operating system. Inside, you'll find the kind of knowledge that normally comes from years of experience doing things the hard way.

$ Check price
39.9539.95Amazon 5 logo(114+ reviews)

More Linux & UNIX resources

Ad