用quota來實現對用戶使用磁盤空間的限制
我們在配置文件共享的時候,有一個共享資源為homes,如hening登錄,在cxserver中有一個abc文件夾,hening用戶對這個文件夾具讀寫權限,
如若我們不限制hening的話,他有可能會將硬盤塞滿,任何一個管理員都不希望看到這種事情,下面我們用quota來實現對用戶使用磁盤空間的限制。
第一種方法:
1]首先明白一個概念,quota是針對分區的,所以我們在前面安裝linux的時候單獨分了一個/home區。
2]而所有的用戶home目錄都在/home下,現在開始在home目錄下建立兩個文件:
cd /home
touch quota.user
touch quota.group
chmod 600 quota.user //只允許root對這兩個文件讀寫
chmod 600 quota.group
3]在/etc/rc.d/rc.local文件尾部加入quota啟動腳本:
if [ -x /sbin/quotacheck ]
then
echo "Checking quotas. This may take some time..."
/sbin/quotacheck -avug
echo "Done"
fi
if [ -x /sbin/quotaon ]
then
echo "Turning on quota"
/sbin/quotaon -avug
echo "OK"
fi
4]修改/etc/fstab文件中定義/home分區的那一行:
原內容: /dev/hda3 /home ext3 defaults 1 2
新內容: /dev/hda3 /home ext3 defaults,usrquota,grpquota 1 2
看得出來只是在defaults後面加了usrquota,grpquota而已。
注意啊,是usrquota而不是userquota,若是錯了,後果難以預料。
5]重啟,在啟動過程中會出錯,主要是因為quota在/home目錄下打不到aquota.user和aquota.group兩個文件,沒關系,咱們進了系統以再慢慢收拾它。
6]用root登錄,然後我們生成aquota.user和aquota.group兩個文件:
convertquota -u /home
convertquota –g /home
若以上步驟不出錯的話,我們用ls /home –al就會看到aquota.user,aquota.group兩
個文件了
7]再重啟,注意觀察,不會再出錯了。進入系統後就可以對用戶home目錄進行限制了。比如現在有一個test用戶,我們對他進行限制:
edquota –u test #此命令將進入一個vi編輯模式,其內容如下:
Filesystem blocks soft hard inodes soft hard
/dev/hda3 0 0 0 0 0 0
注解標識: A B C D E F
在講解各參數之前先說說限制的兩種方式:soft,hard
soft:又稱軟限制,當用戶到達這個限制以後,系統會給予警告,但仍可寫入。
hard:又稱硬限制,到達這個限制,就完全禁止任何寫入啦。
ABC為磁盤空間的限制設置,而DEF為總文件個數的限制
A:已使用空間,無需要設置
B:用戶空間使用限制,為軟限制,需要設置。
C:用戶空間使用限制,為硬限制,需要設置。
D:已有文件總數,無需要設置。
E:文件總數限制,為軟限制,需要設置。
F:文件總數限制,為硬限制,需要設置。
我們要限制test用戶使用空間100M,最多不能超過120M,文件總數為2000個,
最多不能超過2500個,設置如下:
Filesystem blocks soft hard inodes soft hard
/dev/hda3 0 102400 122880 0 2000 2500
注:空間限制是以k為單位的。
8]測試:進入自己的home目錄,然後拷貝文件,若是超過120M,就不允許再寫入了。
9]其它命令的使用:
復制相同調協至其它用戶:
edquota –p test –u username1 username2 username3 username4……
顯示某個用戶當前磁盤使用情況:
quota –v username
顯示所有用戶當前磁盤使用情況:
repquota –a
其它的一些命令請參考相關資料。
第二種方法:
要對特定的用戶使用配額,需要六個步驟:
1.修改/etc/fstab,對所選文檔系統激活配額選項;
2.重新裝載文檔系統,使改變生效;
3.在該文檔系統開頭建立aquota.user文檔。
4.掃描相應文檔系統,用quotacheck 命令生成基本的配額文檔;
5.用edquota命令,對特定用戶采用配額限制;
6.最後,用quotaon命令激活配額。
下面,舉例說明如何在/分區下對用戶test做磁盤配額限制:
修改/etc/fstab
#vi /etc/fstab ,在
LABEL=/ / ext3 defaults 1 1 行激活磁盤配額,修改後的結果如下:
LABEL=/ / ext3 defaults,usrquota 1 1
保存退出後。
重新裝載文檔系統,使改變生效
重新激活/etc/fstab改變:#mount -o remount /
建立aquota.user文檔
在/ 分區下生成aquota.user文檔,最簡單的方法是使用touch命令:
touch aquota.user ,修改aquota.user文檔的權限,只讓root用戶訪問:
chmod 600 aquota.user
進行配額檢查
能夠使用quotacheck -avum 命令生成相應的配額文檔。
-a:掃描 /etc/fstab中支持配額的文檔系統;
-v:生成冗長輸出;
-u:檢查用戶配額;
-m:重新裝載掃描的文檔系統;
對用戶test配置配額
運行如下命令:edquota test
LABEL=/ / ext3 defaults,usrquota 1 1
Disk quotas for user test (uid 501):
Filesystem blocks soft hard inodes soft hard
/dev/hda2 20 100000 0 6 0 0
~
進行inodes soft hard 配置。
啟用配額
#quotaon / (使用quotaoff /能夠取消/分區的配額配置)
至此,對/分區對test用戶的配額配置就完成了。