[
section for more information on kernel configuration.
]Next you will need to enable disk quotas in /etc/sysconfig.
This is done by changing the line:
quotas=NO
to:
quotas=YES
Finally you will need to edit /etc/fstab to enable
disk quotas on a per-file system basis. This is where you can
either enable user or group quotas or both for all of your file
systems.
To enable per-user quotas on a file system, add the
userquota option to the options field in the
/etc/fstab entry for the file system you want to
to enable quotas on. For example:
/dev/sd1s2g /home ufs rw,userquota 1 2
Similarly, to enable group quotas, use the groupquota
option instead of the userquota keyword. To enable both
user and group quotas, change the entry as follows:
/dev/sd1s2g /home ufs rw,userquota,groupquota 1 2
By default the quota files are stored in the root directory of the file
system with the names quota.user and quota.group
for user and group quotas respectively. See man fstab for more
information. Even though that man page says that you can specify an
alternate location for the quota files, this is not recommended since
all of the various quota utilities do not seem to handle this
properly.
At this point you should reboot your system with your new kernel.
/etc/rc will automatically run the appropriate commands to
create the initial quota files for all of quotas you enabled
in /etc/fstab, so there is no need to manually create any
zero length quota files.
In the normal course of operations you should not be required
to run the quotacheck, quotaon, or quotaoff
commands manually. However, you may want to read their man pages
just to be familiar with their operation.
Setting quota limits
Once you have configured your system to enable quotas, verify that
they really are enabled. An easy way to do this is to run
quota -v. You should see a one line summary of disk
usage and current quota limits for each file system that
quotas are enabled on.
You are now ready to start assigning quota limits
with the edquota command.
You have several options on how to enforce limits on the amount of
disk space a user or group may allocate, and how many files they may create.
You may limit allocations based on disk space (block quotas) or
number of files (inode quotas) or a combination of both.
Each of these limits are further broken down into two categories: hard and
soft limits.
A hard limit may not be exceeded. Once a user reaches their hard
limit they may not make any further allocations on the file system
in question. For example, if the user has a hard limit of 500 blocks
on a file system and is currently using 490 blocks, the user can only allocate
an additional 10 blocks. Attempting to allocate an additional 11 blocks
will fail.
Soft limits on the other hand can be exceeded for a limited amount
of time. This period of time is known as the grace period, which is
one week by default. If a user stays over his or her soft limit longer
than their grace period, the soft limit will turn into a hard limit
and no further allocations will be allowed. When the user drops
back below the soft limit, the grace period will be reset.
The following is an example of what you might see when
you run then edquota command. When the edquota
command is invoked, you are placed into the editor specified by the
EDITOR environment variable, or in the vi editor
if the EDITOR variable is not set, to
allow you to edit the quota limits.
# edquota -u test
Quotas for user test:
/usr: blocks in use: 65, limits (soft = 50, hard = 75)
inodes in use: 7, limits (soft = 50, hard = 60)
/usr/var: blocks in use: 0, limits (soft = 50, hard = 75)
inodes in use: 0, limits (soft = 50, hard = 60)
You will normally see two lines for each file system that has
quotas enabled. One line for the block limits, and one line
for inode limits. Simply change the value you want updated
to modify the quota limit. For example, to raise this users
block limit from a soft limit of 50 and a hard limit of 75
to a soft limit of 500 and a hard limit of 600, change:
/usr: blocks in use: 65, limits (soft = 50, hard = 75)
to:
/usr: blocks in use: 65, limits (soft = 500, hard = 600)
The new quota limits will be in place when you exit the editor.
Sometimes it is desirable to set quota limits on a range
of uids. This can be done by use of the -p option
on the edquota command. First, assign the desired
quota limit to a user, and then run
edquota -p protouser startuid-enduid.
For example, if user test has the desired quota
limits, the following command can be used to duplicate
those quota limits for uids 10,000 through 19,999:
edquota -p test 10000-19999
The ability to specify uid ranges was added to the system
after 2.1 was released. If you need this feature on a 2.1
system, you will need to obtain a newer copy of edquota.
See man edquota for more detailed information.
Checking quota limits and disk usage
You can use either the quota or the repquota
commands to check quota limits and disk usage. The quota
command can be used to check individual user and group quotas and
disk usage. Only the super-user may examine quotas and usage for
other users, or for groups that they are not a member of.
The repquota command can be used to get a summary of all
quotas and disk usage for file systems with quotas enabled.
The following is some sample output from the quota -v
command for a user that has quota limits on two file systems.
Disk quotas for user test (uid 1002):
Filesystem blocks quota limit grace files quota limit grace
/usr 65* 50 75 5days 7 50 60
/usr/var 0 50 75 0 50 60
On the /usr file system in the above example this user is
currently 15 blocks over their soft limit of 50 blocks and has 5 days of
their grace period left. Note the asterisk (*) which indicates that
the user is currently over their quota limit.
Normally file systems that the user is not using any disk space
on will not show up in the output from the quota command,
even if they have a quota limit assigned for that file system.
The -v option will display those file systems, such as
the /usr/var file system in the above example.
* Quotas over NFS
This section is still under development.