Getting Started with User Management for Linux Administration
When getting started with user management for Linux Administration, we will examine sudo usermod examples including syntax, shells, locks, and more.
Jul 30, 2018 • 5 Minute Read
Set Up
For additonal context to set up your workspace, please view the previous guide in this series: User and Group Management in Linux.
Getting Started with User Management
While we're logged as pluralsight, let's add another user account called student with a password of our choice. You can skip the second command if the first one prompts you to enter the password for student:
sudo adduser student
sudo passwd student
If everything went as expected, a new user and a primary group called student were created with a unique user and group id, respectively. Additionally, the new user is assigned a personal directory (/home/student in this case) and a login shell (/bin/bash by default).
Using usermod we can change the home directory to another existing one, edit the login shell, and an add an optional comment on the user (such as full name or employee information) as explained next.
To change the home directory to /Users/student (this directory must exist), use the --home (or its short equivalent -d) option:
sudo usermod --home /Users/student student
If the user prefers to use /bin/sh as login shell (or company policies require employees to use it), the --shell (or -s) flag will do the trick:
sudo usermod --shell /bin/sh student
To add a descriptive comment to the user account, use --comment (or -c), followed by the comment enclosed between double quotes. For example, you can do
sudo usermod --comment "Account used for Pluralsight guide" student
The above commands can be grouped into one as follows:
sudo usermod --home /Users/student --shell /bin/sh --comment "Account used for Pluralsight guide" student
In Fig. 1 we see the contents of /etc/passwd before and after modifying the user information:
As you can see in these examples, the syntax of usermod consists in invoking the command followed by one or more options (with their corresponding values) and the user account they should be applied to.
In addition to changing the user's home directory, login shell, and descriptive comment, usermod also allows you to lock (and unlock) an account and set its expiration date. To do so, use --lock (or -L), --unlock (or -U), and --expiredate (or -e), respectively. The expiration date must be specified using the YYYY-MM-DD format.
For example, to lock student, do:
sudo usermod --lock student
If we now try to login as student, we will get an Authentication failure error, as shown in Fig. 2. After unlocking the account with
sudo usermod --unlock student
we will be able to use the account again, as also observed in Fig. 2:
When an user is locked, an exclamation sign ! is placed before the encrypted password in /etc/shadow, thus disabling the account.
To set the expiration date of student to October 31, 2017, do
sudo usermod --expire-date 2017-10-31 student
The changes can then be viewed with
sudo chage -l student
By the way, you can use chage to enforce a password change policy. As a safety measure, it is important to have users change their passwords after a given period of time. For example, to force student to change his password every 60 days, do:
sudo chage --maxdays 60 student
Fig. 3 shows student's password information after performing the above changes:
In man chage you can find more information about other useful password expiration tasks.
If an account needs to be deleted for good, use
sudo userdel -r
followed by the corresponding username. In this example, the use of -r will ensure that all the user's files are removed as well. If you want to keep such files for some reason, omit that option.
Groups
In Linux, groups can be defined as a way to organize users that need the same type of access to a directory or file.
To create a new group named finances, do
addgroup finances
To remove it from the system, use
delgroup finances
The information for the new group is stored in /etc/group, where each line shows the name of the group and the user accounts that are associated with it.
It is important that you practice the commands and examples outlined in this section until you feel confident using them. Then proceed to the next Guide where we will be adding and removing users to and from groups, and granting or preventing access to files and directories.
Next Steps
Please continue on to the next guide in this Linux Permissions.