edquota Command in Linux

Introduction

In this lab, we'll delve into the Linux edquota command and its role in disk quota management on a Linux file system. We'll start by defining disk quotas, a mechanism for system administrators to control disk space usage by individual users or groups. We'll then explore how to enable disk quotas on a Linux file system and leverage the edquota command to configure and administer user disk quotas. This lab offers practical examples and step-by-step guides to help you effectively manage disk space allocation within your Linux environment.

Understanding Disk Quota Concept

This section focuses on the core concept of disk quotas in Linux. Disk quotas are a vital systemadmin tool that enables administrators to set limits on the amount of disk space a user or group can utilize on a particular file system.

Disk quotas are particularly useful in shared hosting environments, such as web hosting or cloud computing platforms, where numerous users or applications share the same storage resources. By implementing disk quotas, system admins can prevent resource monopolization by any single user or application, ensuring equitable resource distribution.

To illustrate the disk quota concept, consider the following scenario:

Imagine a file system with a total capacity of 100 GB. This file system is shared among three users: Alice, Bob, and Charlie. Without disk quotas, each user could potentially consume the entire 100 GB, leaving insufficient space for the others.

However, with disk quotas in place, you can impose storage limits on each user. For instance, you could assign a 30 GB quota to Alice, 30 GB to Bob, and 40 GB to Charlie. This approach guarantees that each user has a fair allocation of storage resources and prevents any single user from dominating the available space.

Disk quotas can be applied at the user level, the group level, or both. System administrators also have the flexibility to define soft and hard limits for each user or group. A soft limit serves as a warning threshold; users receive notifications when they approach their quota. A hard limit, on the other hand, is a firm boundary that users cannot exceed, regardless of their attempts.

In the subsequent step, we'll learn how to activate disk quotas on a Linux file system and use the edquota command to manage disk usage for individual users.

Enabling Disk Quota on a Linux Filesystem

This section details the process of enabling disk quotas on a Linux file system.

First, let's create a dedicated directory for our file system and mount it:

sudo mkdir /quota_fs
sudo mount -t ext4 -o usrquota,grpquota /dev/vdb1 /quota_fs

The usrquota and grpquota options are crucial; they enable user and group quotas, respectively, on the specified file system.

Next, we need to generate the required quota files:

sudo quotacheck -cum /quota_fs

This command generates the aquota.user and aquota.group files within the file system's root directory. These files serve as the repository for quota-related information.

Now, it's time to activate the quota system:

sudo quotaon -a

This command activates the quota system for all file systems where quota support is enabled.

To confirm that the quota system is active, we can use the repquota command:

sudo repquota /quota_fs

Example output:

*** Report for user quotas on device /quota_fs
-----------------------------------------------------------------------------
User            used    soft    hard  grace
-----------------------------------------------------------------------------
root      --      0       0       0
labex     --      0       0       0

The output confirms that the quota system is enabled, and currently, no quotas are defined for the root and labex users.

In the next section, we will explore how to use the edquota command to manage user disk quotas effectively.

Managing User Disk Quota with edquota Command

In this section, we'll examine how to manage user disk quotas using the edquota command.

First, let's create a new user account named alice and integrate her into the file system created in the previous step:

sudo useradd -m alice
sudo usermod -a -G labex alice
sudo chown -R alice:labex /quota_fs

Now, we can employ the edquota command to configure disk quotas for the alice user:

sudo edquota -u alice

This command will open the quota editor in the default text editor (typically nano). You should see a display similar to this:

Disk quotas for user alice (uid 1001):
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /quota_fs                        0       50000      60000          0       500       600

Here, you can configure the following quota limits for the alice user:

  • Soft block limit: 50,000 blocks
  • Hard block limit: 60,000 blocks
  • Soft inode limit: 500 inodes
  • Hard inode limit: 600 inodes

After making the changes, save the changes and exit the editor.

To verify the quota settings, we can use the repquota command:

sudo repquota /quota_fs

Example output:

*** Report for user quotas on device /quota_fs
-----------------------------------------------------------------------------
User            used    soft    hard  grace
-----------------------------------------------------------------------------
root      --      0       0       0
alice     --      0   50000   60000
labex     --      0       0       0

The output confirms that the alice user now has a soft limit of 50,000 blocks and a hard limit of 60,000 blocks configured.

In the upcoming step, we'll solidify your understanding of the concepts covered in this lab through practical verification exercises.

Summary

In this lab, we explored the fundamental concept of disk quotas in Linux. We learned that disk quotas empower system administrators to enforce limits on the amount of disk space that individual users or groups can consume within a file system. We then explored the procedure for enabling disk quotas on a Linux file system, which involves mounting the file system with specific options. Finally, we gained hands-on experience in managing user disk quotas using the edquota command, a crucial tool for any systemadmin working with Linux.

400+ Linux Commands