How to: Linux Group Disk Quota Implementation


Click here If you are looking for implementing user disk quota implementation in linux. Here in this post we are now going to discus how to implement Linux Group quota for a project?
Many people will ask why we require group quota if we have user quota?

I will explain this with an example. In companies people will be working on projects/groups where they want to share their data on a common location and accessed by any user for that group. Its some thing like group store where they will be dumping data on a single location. So its very much easy to restrict per group basis on this group store, so we can set some limit on all the users in that group on how much they can upload to that folder. We will take one example to accomplish this group quota.

group name : project1.
group members : user1, user2, user3.
group dump folder/common folder to the above mention users : /home/project1 (/dev/hda2).
group disk quota limit : 100MB soft/110MB hard limit

Now we have all the ingredients to prepare spicy food :)

Implementing Group disk quota on Linux

Step1 :
Create a group
#groupadd project1

Step2 : Create all the require users with their home directory /home/project1 and group as
#useradd -c "Testing group quota implementation" -m -d /home/project1 -g project1 user1
#useradd -c "Testing group quota implementation" -m -d /home/project1 -g project1 user2
#useradd -c "Testing group quota implementation" -m -d /home/project1 -g project1 user3

Step3 : Select/prepare the partition for quota here my partition is /dev/hda2 so edit /etc/fstab file for with the required entries.

vi /etc/fstab /dev/hda2 /home ext3 defaults,usrquota,grpquota 0 0
save and exit the file

Step4 : Now remount the partition with rw permissions
#mount -o remount,rw /home

Step5 :
Now create group quota database
#quotacheck -cug /home
check for user/group database is created or not when you give ls /home you can see

aquota. user, files in /home directory,which contains user and group databases.

Step6 : Once the above command executed successfully, check quota is implemented or not.
#repquota -a

Step7 :
Now set quota for the group project1, this can be done using edquota or setquota. Most of the people know edquota command usage when executed it will open a temporary quota file where we have to mention your desired values. But in this I am going to show you another way to set group quota.
#setquota -g project1 100 110 0 0 /dev/sda2

Explanation of above command.
-g specifies we are going to edit group quota.
The group name is project1
We are setting setting soft(100kb) and hard limit(110kb) on blocks
We disabled setting soft(0) and hard(0) limit on inodes
Last we specified on what partition we are going to set this quota(/dev/sda2)

Step8 : Don't think its completed. This is the most and main important point you have remember when implementing group quota. We have to set permission to /home/project1 with SGID so that all the members in the group can able to upload data to /home/project1 with out any issue.
#chmod 2770 /home/project1

Now all the group members of project1 can upload total of 100kb not more than that. For example user1 uploaded 75kb so members of project1 can only upload 25kb more.

  • Like the post? Please Subscribe to free RSS feed to get updates
  • Archive

    Translate this page


    The Linux Juggernaut | Copyright 2006-2009 Surendra Kumar Anne | Surendra's Home Page | Give us feedback how we are doing, Click here