home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
BURKS 2
/
BURKS_AUG97.ISO
/
BURKS
/
LINUX
/
HOWTO
/
mini
/
quota.txt
< prev
next >
Wrap
Text File
|
1997-07-07
|
8KB
|
219 lines
How To Enable Quota on Linux
Last updated: Sat Jul 27 21:04:38 PDT 1996
Preamble: This document is copylefted by Albert M.C. Tam (bertie@scn.org).
Permission to use, copy, distribute this document for non-commerical
purposes is hereby granted, provided that the author's / editor's name and
this notice appear in all copies and/or supporting documents; that this
document is not modified. This document is distributed in hope that it will
be useful, but WITHOUT ANY WARRANTY, either expressed or implied. While
every effort has been taken to ensure the accuracy of the information
documented herein, the author / editor / maintainer assumes NO
RESPONSIBILITY for errors, or for damages results for the use of the
information documented herein.
This document describes how to enable file system quota on a Linux host,
assigning quota for users, as well as the usage of miscellaneous quota
commands. It is intended for users running kernel 2.x (tested on 2.0.7).
Users with older kernels are recommended to upgrade.
Feel free to send any feedback or comments to bertie@scn.org if you find an
error, or if any information is missing. I appreciate it!
----------------------------------------------------------------------------
What is Quota?
Quota allows you to specify limits on two aspects of disk storage: the
number of inodes a user may possess; and the number of disk blocks that may
be allocated to a user.
The idea behind quota is that users are forced to stay under their disk
comsumption limit most of the time, taking away their ability to comsume
unlimited disk space on a system.
Current Status of Quota on Linux
Quota support has been integrated into since kernel version 1.3.8x I heard,
and it is in the 2.0 release of the kernel as well. If your system doesn't
support quota, I recommend an upgrade.
Currently, quota works for ext2 type file system only.
Requirements for Using Quota on Linux
Kernel
The 2.x kernel source is available from
ftp://tsx-11.mit.edu/pub/linux/sources/system/v2.0/
Quota software
Depending on the Linux distribution you have, you may, or may not have the
quota softwares installed on your system. The quota software source is
available from
ftp://ftp.funet.fi/pub/Linux/PEOPLE/Linus/subsystems/quota/all.tar.gz.
----------------------------------------------------------------------------
Quota Setup on Linux - Part I: The Configuration
1. Reconfigure your kernel
Reconfigure your kernel and add quota support by typing y to:
Quota support (CONFIG_QUOTA) [n] y
2. Compile and install the quota softwares
The quota software source is available from
ftp://ftp.funet.fi/pub/Linux/PEOPLE/Linus/subsystems/quota/all.tar.gz
While the quota software package I mentioned earlier has already been ported
to Linux, and should compile on all Linux systems running 2.x kernels; you
may run into problems where the C compiler complains about some undefined
MNTOPT constants. If that happens, you will need to copy its mntent.h over
to /usr/include/mntent.h to get quota to compile.
3. Modify your system init script to check quota and turn on quota at boot
time
Here's an example:
# Check quota and then turn quota on.
if [ -x /usr/sbin/quotacheck ]
then
echo "Checking quotas. This may take some time."
/usr/sbin/quotacheck -avug
echo " Done."
fi
if [ -x /usr/sbin/quotaon ]
then
echo "Turning on quota."
/usr/sbin/quotaon -avug
fi
The golden rule is that *always* turn quota on *after* your file systems in
/etc/fstab have been mounted, or quota will fail to work. I recommend
turning quota on at the end of your system init script, or, if you like,
right after the part where file systems are mounted in your system init
script.
4. Modify /etc/fstab
Partitions that you have not yet enabled quota normally look something like:
/dev/hda1 / ext2 defaults 1 1
/dev/hda2 /usr ext2 defaults 1 1
To add quota to the file system, add "usrquota" to the fourth field
containing the word "defaults".
/dev/hda1 / ext2 defaults 1 1
/dev/hda2 /usr ext2 defaults,usrquota 1 1
5. Create quota record "quota.user"
This quota record file, quota.user, should be owned by root, and read-write
permission for root and none for anybody else.
Login as root. Go to the base of the partition you wish to enable quota, and
create quota.user by doing:
touch /partition/quota.user
chmod 600 /partition/quota.user
6. Reboot
Now reboot system for the changes you have made to take effect.
Also note that subsequent partitions you wish to enable quota in the future
only require step 4, 5, and 6.
Quota Setup on Linux - Part II: Assigning Quota for Users
This operation is performed with the edquota command. For example, the
command "edquota bob" will take you into vi (or editor specified in your
$EDITOR environment variable) to edit quota for user "bob" on each partition
that has quota enabled:
Quotas for user bob:
/dev/hda2: blocks in use: 2594, limits (soft = 5120, hard = 6400)
inodes in use: 356, limits (soft = 1000, hard = 1500)
"blocks in use" is the total number of blocks (in kilobytes) a user has
comsumed on a partition.
"inodes in use" is the total number of files a user has on a partition.
In addition to edquota, there are 3 others terms which you should
familiarize yourself with: Soft Limit, Hard Limit, and Grace Period.
Soft Limit
Normally, soft limit indicates the maximum amount of disk usage a quota user
has on a partition. But when combined with the grace period, it acts as the
border line, which a quota user is issued warnings about his impending quota
violation when passed.
Hard Limit
The hard limit only works, when a grace period is set. It specifies the
absolute limit on the disk usage, which a quota user can't go beyond his
hard limit.
Grace Period
Executed with the command "edquota -t", the grace period is a time limit
before the soft limit is enforced for a quota user. Time units of sec(onds),
min(utes), hour(s), day(s), week(s), and month(s) can be used. This is what
you'll see with the command "edquota -t":
Time units may be: days, hours, minutes, or seconds
Grace period before enforcing soft limits for users:
/dev/hda2: block grace period: 0 days, file grace period: 0 days
Change the 0 days part to any length of time you feel reasonable. I
personally would choose 7 days (or 1 week).
----------------------------------------------------------------------------
Miscellaneous Quota Commands
Quotacheck
Quotacheck is used to scan a file system for disk usages, and updates the
quota record file "quota.user" to the most recent state. I recommend running
quotacheck periodically at system bootup, or via cronjob every once in a
while (say, 1 week?).
Repquota
Repquota produces a summarized quota information for a file system. Here is
a sample output repquota gives:
# repquota -a
Block limits File limits
User used soft hard grace used soft hard grace
root -- 175419 0 0 14679 0 0
bin -- 18000 0 0 735 0 0
uucp -- 729 0 0 23 0 0
man -- 57 0 0 10 0 0
user1 -- 13046 15360 19200 806 1500 2250
user2 -- 2838 5120 6400 377 1000 1500
Quotaon and Quotaoff
Quotaon is used to turn on quota accouting; quotaoff to turn it off.
Actually both files are similar. They are executed at system startup and
shutdown.