To enable quotas under Linux (a RHEL based system), you will need the quota package.

$ yum install quota

The filesystem must be mounted with the usrquota option for user quotas, grpquota for group quotas, or both.

You may set this in /etc/fstab. In this example, /export will be made to have user quota support:

/dev/sdb1               /export                 ext4    defaults,usrquota 1 2

Remount the filesystem (or reboot) after editing /etc/fstab to apply:

# mount -o remount /export

With quotas enabled, you will need to create your quotas

# quotacheck -cug /export

## If you get the following error
## quotacheck: Cannot guess format from filename on /dev/sda. Please specify format on commandline.
## quotacheck: Cannot find filesystem to check or filesystem not mounted with quota option.
## ... specify the format like so:
# quotacheck -cugvF vfs0 /export


Flag Description
-c creates
-u quotas for users
-g quotas for groups
-v verbose
-F force format


Use edquota or setquota to modify the quota for a specific user.

Using edquota[edit]

When you run edquota leo you will see:

# edquota leo
 Disk quotas for user leo (uid 1061):
   Filesystem                   blocks       soft       hard     inodes     soft     hard
   /dev/sdb1                     91380          0          0       1127        0        0

By default, there will be no quotas set (represented as 0-values in the output). To specify the soft and hard limits for both blocks (actual space, in bytes) and inodes (number of inode records available that points to a file or directory), edit the values under each column. Quota values will be applied once you save and quit the text editor.

If you run edquota again, you should see the new values:

# edquota
 Disk quotas for user leo (uid 1061):
   Filesystem                   blocks       soft       hard     inodes     soft     hard
   /dev/sdb1                     91380     102400     153600       1127     8000     9000

In the above example, I gave leo 100MB soft and 150MB hard quota and a 8000 soft and 9000 hard inode limit. This means leo will be able to write up to 150MB or have 9000 files and directories before writes fail. Exceeding the soft quota for more than the grace period will also prevent leo from writing to the filesystem.

You may set the grace period by running

# edquota -t

Using setquota[edit]

# setquota -u -F vfsv1 username 460800 563200 22500 33000 /export/ug

See Also: