Linux Concepts :- Quotas
Rules : 1. Quotas can only be created for partitions
Eg., If a 1MB quota is set for partition [/home]
then every subdir under that /home can use a max of 1 MB
user | group
block [diskspace] inode [no of files] | block [diskspace] inode [files]
SOFT HARD GRACE SOFT HARD GRACE | SOFT HARD GRACE SOFT HARD GRACE
<—- Limits —->
==========================================
Part I. Configuring / Setting Up Quotas
==========================================
1. Configure /etc/fstab – usrquota or grpquota which ever you want
In the 4th column of /etc/fstab add ‘usrquota’
2. Refresh /etc/fstab – actually /etc/mtab :
a. If you do not want hassles just REBOOT and skip to Part II.
or
b. mount -a which will do nothing if FS’s are already mounted, which
they always are
or
c. umount /home and mount /home
But this will not work if any users are online which they always are
or
d. mount -o remount /home <<<=========================
[mount -o remount,rw /]
Refresh and will work even if users are online
or
e. reboot
which is the coward’s way
and then Check /etc/mtab or mount*
3. To create the aquota.user file
–> quotacheck -vc /home [force] – Note : ‘u’ is the default if not given
and ‘v’, of course, is always
optional but friendly
This will create the /home/aquota.user which monitors all
quota activity for the /home paritition
4. – To turn on quotas
–> quotaon -v /home – To turn on quotas
or load /home/aquota.user file
in to RAM
5. Check everybody’s current usage and quotas :
# repquota -a
Configuring quotas is now over !
Now we will implement quotas.
In short :
1. Configure /etc/fstab
2. mount -o remount /home Cross check with # cat /etc/mtab
3. quotacheck -vc /home Creates aquota.user
4. quotaon -v /home Loads aquota.user in RAM
5. repquota -a Enjoy your work !
eg
1. repquota -a
2. repquota -u /
3. repquota -u sachin
The first line shows quota info for all users and groups for all file
systems.
The second line shows user quota info for the / file system.
The third line shows quota information for user sachin on all file systems.
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
=============================
Part II. Implementing Quotas
=============================
6. edquota -u user
7. edquota -p foo bar <——— use foo as quota prototype for bar
8. edquota -t <———— To change the grace period
or use :
# edquota -p foo `awk -F: ‘$3 > 499 {print $1}’ /etc/passwd`
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
========================================
Part III. Repairing the aquota.user file
========================================
If your system hangs and then restarts, the aquota.user file gets corrupted
and all quotas for all users are now in an unknown state :
To repair, boot into single user mode imme-asap, and do this _FIRST_ :
quotaoff -v /home
quotacheck -avug Minimum reqd is : quotacheck /home
since ‘u’ is the default
and we do not have ‘g’
and ‘v’ is optional
a is check /etc/mtab
Re-Creates file /home/aquota.user
quotaon -v /home
Misc : /etc/warnquota.conf
warnquota*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
GNU/Linux LDUP : 27-Jul-2k3
PART II – SysAdministration
08. QUOTAS
1. What are the two aspects of disk storage that quotas allow you specify?
A: Disk space [Block] and Files [inode] quotas
2. Which init script checks for the presence or absence of quotas ?
A: /etc/rc.d/rc.sysinit
3. I wish to implement quotas on my /home dir ? Should /home be a partition?
A: Yes.
4. Which file is configured when setting up quotas ?
A: /etc/fstab
5. What is the min I have to do, to implement both user and group quotas for
my /home partition?
A: Configure /etc/fstab with :
LABEL=/home /home ext3 defaults,usrquota,grpquota 1 2
and then just reboot the machine !!
6. But I wish to to implement only user quotas, is this /etc/fstab OK ?
LABEL=/home /home ext3 defaults, usrquota 1 2
A: No. No space in 4th field after defaults
7. Is this /etc/fstab OK ?
LABEL=/home /home ext3 defaults,userquota 1 2
A: No. Its usrquota.
8. Where is this quota info for user and group quotas stored for /home?
A: In the /home partition, in 2 data files : aquota.user, aquota.group
9. Which file keeps track of all the mounted filesystems ?
A: /etc/mtab
10 How would you implement user quotas without rebooting your machine ?
A: Configure /etc/fstab with :
1. LABEL=/home /home ext3 defaults,usrquota 1 2
2. mount -o remount /home
3. quotacheck -vc /home
4. quotaon -v /home
11 Why would you want to do a quotaoff before you do a quotacheck manually
from the CLI ?
A: Corrupts the aquota.user file
12 Can a user – foo – modify/create his quota ?
A: Obviously not! Only root can do that! Or else every user will
abuse the quota system for his benefit !
13 Can foo at least see his quota status ?
A: Yes.
14 How ?
A: Login as foo and run ‘quota’.
15. What are these quotas that he will see ?
A: His soft limit, hard limit and grace period
16. How then will root set [create/modify] quotas for ‘foo’ ?
A: edquota -u foo
17. Examine the following o/p generated by the quota command given by foo:
Disk quotas for user foo (uid 500):
Filesystem blocks soft hard inodes soft hard
/dev/hda 20 100 0 14 0 0
18. How much disk space has foo already used ?
A: 20 blocks i.e. 20 KB
19. His soft limit appears to be 100 KB. Can he use 130 KB ?
A: Yes. But but he will get warning messages
20. Can he use unlimited disk space and fill the partition ?
A: Yes. But up and until the grace period expires. After that the soft limit
is enforced as the hard limit. Additionally, he will get warning messages
21. Then what is the use of this soft limit ? How can I remedy it ?
A: By giving a hard limit too. foo can never cross the hard limit.
22. Now I do this :
Disk quotas for user foo (uid 500):
Filesystem blocks soft hard inodes soft hard
/dev/hda 20 100 200 14 0 0
foo creates files worth 160 KB. What will happen then ?
A: He will be allowed to create up to 200 KB max. Also after 7 days
he will be shut down regardless of whether he has reached his hard
limit or not. He will have to clean up under the soft limit to work.
23. What command is used to change a user’s grace period?
A: edquota -t
24. What command is used to see the entire quota details of all users?
A: repquota -a
25. What command sets a quota template?
A: edquota -p
26. What does ‘p’ mean and how would you use it?
A: ‘prototype’.
Suppose ‘foo’ has his quota set. Then you could clone his details,
# edquota -p foo bar
bar now has the same quota limits as foo.
27. If you had 2000 users, the above would clearly be inconvenient. Solve!
a: edquota -p foo `awk -F: ‘$3 > 499 { print $1 }’ /etc/passwd`
28. An over-limit quota generates a mail message to the user on login.
Which file would you modify to customize the mail delivered ?
A: /etc/warnquota.conf
29. If quotas were run as a daily cron job, where would you find the script
file concerned?
a: /etc/crond.daily/
30 A user owns 150 inodes; the soft limit is 100 and the hard is 200.
Which of the following is correct if the grace period has not expired?
a. The user can create no more files
b. The user cannot append data to an existing file
c. The user cannot log off without deleting some files
d. The user will receive an email notice of violation
A: d.
31 What is the purpose of ‘convertquota’ ?
A: convertquota converts old quota files quota.user and quota.group to
files aquota.user and aquota.group in new format currently used by
2.4.0-ac and newer or by Red Hat Linux 2.4 kernels on filesystem.
New file format allows using quotas for 32-bit uids / gids, setting
quotas for root, accounting used space in bytes (and so allowing use of
quotas in ReiserFS) and it is also architecture independent. This format
introduces Radix Tree (a simple form of tree structure) to quota file.