104.4 Manage disk quotas

Weight: 1

Candidates should be able to manage disk quotas for users.


  • Set up a disk quota for a filesystem.
  • Edit, check and generate user quota reports.
  • quota
  • edquota
  • repquota
  • quotaon

Enabling quotas

Quotas will let the system admin to control how much a user or a group consumes disk. The version 2 quota discussed in LPIC, needs kernel 2.4 and above. The package is called quota.

The option should be added to required /etc/fstab file. The most famous ones are:

option meaning
usrquota user quotas
uqouta same as usrquota
quota same as usrquota
grpquota group quotas
gquota same as grpquota

So for example is we want to enable quotas on sda2 we have to change the line in /etc/fstab like this:

/dev/sda2  /home  ext4    defaults,usrquota,grpquota          1 2

Next we need to specify the quotas of each user and each group. Two files called aquota.user and aquota.group in the root file system will do this. Now it is enough to run the quotacheck command.

the quotacheck command will create the aquota.user and aquota.group if they do not exist

# quotacheck -u -a -m -c -v
quotacheck: Your kernel probably supports journaled quota but you are not using it. Consider switching to journaled quota to avoid running quotacheck after an unclean shutdown.
quotacheck: Scanning /dev/sda1 [/boot] done
quotacheck: Old group file name could not been determined. Usage will not be subtracted.
quotacheck: Checked 13 directories and 389 files
# ls /boot/

Creates quota files for users on all file systems and will work on mounted file systems; being verbose.

Then you need to turn the quota checking on:

# quotaon -auv ##all in /etc/fstab, for user quotas and be verbose
/dev/sda1 [/boot]: user quotas turned on

Setting limits

The main command for editing quota is *edquota. It will check the users quota from all file systems and presents them in a file editor to you.

#edquota -u jadi
Disk quotas for user jadi (uid 1000):
  Filesystem                   blocks       soft       hard     inodes     soft     hard
  /dev/sda1                         0          0          0          0        0        0

As you can see, the system shows the current blocks of 1k data, number of inodes (number of files and directories) and soft and hard limits for each of them. If a user goes over its soft-limits, there will be emails. Hard limits are real limits and user can not go over them. If you need to save soft or hard limits, just change the file and save it.

You have to run quotacheck to update these data

For copying one users limits to another user, use the -p switch:

# edquota -p jadi newuser neweruser lastuser

quota reports

If you need to check the quota of only one user use the quota command.

# quota  jadi
Disk quotas for user jadi (uid 1000):
     Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
      /dev/sda1       5    5000       0               2       0       0

This is not easy if you have many users so you can use repquota as follow:

# repquota -u -a
*** Report for user quotas on device /dev/sda1
Block grace time: 7days; Inode grace time: 7days
                        Block limits                File limits
User            used    soft    hard  grace    used  soft  hard  grace
root      --  120288       0       0            401     0     0       
jadi      --       5    5000       0              2     0     0

Warning users

There is a command for checking quotas and warning users called warnquota. It will be good to run it time to time using a crontab (will see this crontabs later).












← 104.3 Control mounting and unmounting of filesystems
Chapter List
104.5 Manage file permissions and ownership →