home *** CD-ROM | disk | FTP | other *** search
-
- 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.
-
-
-