QUOTA.USER(5) FreeBSD File Formats Manual QUOTA.USER(5)


quota.user, quota.groupper file system quota database


Each file system with active quotas should contain a quota.user and quota.group file in the file system root. These files are created by quotacheck(8), and should be edited with edquota(8). It is possible to specify a different location and file name with the “ userquota” and “ groupquota” options in the fstab(5) file.

The data files contain the following information:

  • Current block usage
  • Current number of files
  • Soft block limit
  • Soft file limit
  • Hard block limit
  • Hard file limit
  • Block grace time remaining if over the soft limit
  • File grace time remaining if over the soft limit

See edquota(8) for an explanation on the various limits and grace periods.

During normal quota operations the quotactl(2) interface is used to query or set quota information and the kernel will maintain the data files as needed. If quotas are disabled on a file system, but marked as having quotas enabled in fstab(5), then the quota data files will be used directly.

The data files are stored as an array of “ struct dqblk” structures, as defined in < ufs/ufs/quota.h>, and indexed by UID or GID. The data files will be written as a sparse file if possible. Data is only maintained for ids that have either non-zero usage or non-zero quota limits. If an attempt is made to access data for an id that would exist past the end of the current data file, a quota structure with all values set to zero will be created, and the data file extended as needed. The quotacheck(8) utility will truncate the data files to the minimum size needed to store the highest id with either non-zero file usage or non-zero quota limits.

The data record for id 0 has special meaning. If the “ dqb_btime” or “ dbq_itime” fields are non-zero, they are used to indicate the grace period on that file system for users who have exceeded their soft limit. These times can be set by edquota(8) with the -t flag. If no explicit grace period has been set with edquota(8), then the default value of 7 days will be used. The default values are defined by MAX_DQ_TIME and MAX_IQ_TIME in < ufs/ufs/quota.h>.

October 30, 2007 FreeBSD