Quota:OpenBSD下配置磁盤限額
Author: MichaelBibby
Date: 2005/11/26
本文可以任意轉(zhuǎn)載,但請(qǐng)保留以上作者信息,謝謝。
Quota是用來(lái)配置磁盤限額的一個(gè)工具。可以配置用戶的磁盤限額,也可以配置用戶組的磁盤限額。
這兩個(gè)可以單獨(dú)配置,也可以同時(shí)結(jié)合著一起使用。既對(duì)某個(gè)用戶做限制也對(duì)某個(gè)組做限制。
第一次接觸Quota,是為了用Samba實(shí)現(xiàn)PDC(主域控制器)并對(duì)用戶設(shè)置磁盤限額而開始學(xué)習(xí)的。
(關(guān)于如何用Samba實(shí)現(xiàn)PDC,以及如何對(duì)從客戶端登錄上來(lái)的用戶做Quota,可以參考我的這篇文章:Samba服務(wù),寫的不對(duì)之處,
還請(qǐng)大家斧正,多謝。)沒有接觸之前,覺得好象挺難的,但是當(dāng)自己真正搗鼓那么一兩次,有了比較清晰的概念之后就會(huì)輕車熟路了,
覺得配置Quota其實(shí)很簡(jiǎn)單。
本文簡(jiǎn)略說(shuō)明在OpenBSD(3.8)上如何對(duì)用戶和用戶組設(shè)置Quota。
配置Quota,基本上就這么4個(gè)步驟:
1: 要使系統(tǒng)支持Quota,請(qǐng)確認(rèn)編譯內(nèi)核的時(shí)候在內(nèi)核配置文件中加上了"option Quota"選項(xiàng)。默認(rèn)的GENERIC
內(nèi)核配置文件中已經(jīng)包含這個(gè)選項(xiàng);
2:在"/etc/fstab"文件中,對(duì)要設(shè)置Quota的分區(qū)做個(gè)標(biāo)記(加上"userquota/groupquota");
3:使用Quota提供的幾個(gè)工具正確配置對(duì)用戶和對(duì)用戶組的Quota;
4:打開Quota,使系統(tǒng)啟動(dòng)時(shí)就啟用Quota功能;
下面詳細(xì)地說(shuō)說(shuō)每一個(gè)步驟。
1:確認(rèn)內(nèi)核支持;
如果你使用的是系統(tǒng)默認(rèn)的GENERIC內(nèi)核配置文件編譯出來(lái)的內(nèi)核,那么系統(tǒng)就已經(jīng)支持Quota功能了,不需要
另外編譯。如果沒有,請(qǐng)?jiān)谀愕呐渲梦募屑由?quot;options QUOTA",然后重新編譯安裝內(nèi)核。
關(guān)于編譯內(nèi)核,請(qǐng)參考:
OpenBSD FAQ5:Building the System from Source
2:標(biāo)記需要Quota的分區(qū);
假如需要對(duì)"/home"目錄做Quota,那么就在"/etc/fstab"中添加Quota標(biāo)記。下面是一個(gè)例子:
/dev/wd0a / ffs rw 1 1
/dev/wd0d /home ffs rw,nodev,nosuid,userquota,groupquota 1 2
做了標(biāo)記并且修改了"/etc/rc.conf"文件中"check_quotas"變量的值(關(guān)于"check_quotas"變量,稍后會(huì)提到),
會(huì)在"/home"目錄下生成兩個(gè)文件:"user.quota"和"group.quota"。這兩個(gè)文件保存了對(duì)用戶和用戶組所做的
磁盤限額的信息。當(dāng)然你也可以指定這兩個(gè)文件的位置,比如:
userquota=/var/quotas/user.quota,groupquota=/var/quotas/group.quota
3:配置Quota;
Quota提供了幾個(gè)工具讓你可以方便地配置Quota,稍后會(huì)向大家介紹幾個(gè)常用的。
⑴:設(shè)置用戶Quota;
假如你要配置用戶bibby的磁盤限額,那么直接輸入"edquota bibby"就可以了(配置Quota必須具有
root權(quán)限),會(huì)在你預(yù)設(shè)的編輯器$EDITOR中打開用戶bibby的Quota配置:
# edquota bibby
Quotas for user bibby:
/home: KBytes in use: 16, limits (soft = 0, hard = 0)
inodes in use: 7, limits (soft = 0, hard = 0)
這是還沒有設(shè)置Quota時(shí)的配置。
這里有幾個(gè)詞匯大家需要明白:
①:KByte:磁盤容量。以"KB"為單位。
②:soft:軟限制。即如果用戶的磁盤容量達(dá)到或者超過(guò)該值時(shí),系統(tǒng)會(huì)向該系統(tǒng)發(fā)出警告,但是用戶仍然
可以繼續(xù)增加磁盤容量;
③:hard:硬限制。硬限制的值一般都比軟限制(soft)的值要大。當(dāng)系統(tǒng)達(dá)到硬限制時(shí),用戶將無(wú)法再增加
磁盤容量。
到這里你應(yīng)該清楚地知道,"soft limit"只是警告,而"hard limit"才是真正的限制。
④:inode:文件和文件夾的數(shù)目。一個(gè)文件或一個(gè)文件夾分別占用一個(gè)inode。設(shè)置inode限制可以控制用戶的
文件數(shù)目。假如設(shè)置"inode hard limit"為10,則用戶擁有的文件數(shù)目達(dá)到10個(gè)后就無(wú)法再創(chuàng)建新文件
或文件夾了(即使磁盤容量未超過(guò)"KByte hard limit"也一樣)。
實(shí)際使用中較少對(duì)inode做限制,而一般都是對(duì)磁盤容量做限制。
這里的"KByte in use"和"inodes in use"是Quota計(jì)算得出的用戶目前已經(jīng)使用的磁盤容量和文件數(shù)。
下面我們就來(lái)演示一下如何設(shè)置Quota。這個(gè)例子是為用戶"bibby"設(shè)置2M的"KByte soft limit"和3M的"KByte hard
limit",對(duì)inode則不做限制(這里只是演示,為了便于測(cè)試結(jié)果,所以這里配置的容量限額比較小):
Quotas for user bibby:
/home: KBytes in use: 16, limits (soft = 2048, hard = 3072)
inodes in use: 7, limits (soft = 0, hard = 0)
⑵:設(shè)置組Quota;
要為組設(shè)置Quota,只要使用如下命令就可以進(jìn)行配置:
# edquota -g GROUP
4:打開Quota功能;
要使系統(tǒng)啟動(dòng)后即開啟Quota功能,需要在"/etc/rc.conf"文件中將"check_quotas"變量的值設(shè)置為"YES"(系統(tǒng)
默認(rèn)即為"check_quotas=YES"):
check_quotas=YES
也可以通過(guò)命令來(lái)啟用Quota:
# quotaon -a
這個(gè)命令會(huì)根據(jù)"/etc/fstab"文件中做的Quota標(biāo)記來(lái)對(duì)分區(qū)做磁盤限額。
可以使用"quota"命令來(lái)查看自己的磁盤限額,"quota -u USER"查看某個(gè)用戶的磁盤限額:
$ quota
Disk quotas for user bibby (uid 1000):
Filesystem KBytes quota limit grace files quota limit grace
/home 16 2048 3072 7 0 0
這里出現(xiàn)了一個(gè)新東西:"grace"。
grace是"Grace Period"的意思,表示用戶的磁盤容量被允許超過(guò)"soft limit"的時(shí)間。
假設(shè)Grace Period設(shè)定為3天,超過(guò)soft limit的user在三天內(nèi)未處理超過(guò)limit的檔案的話,user將無(wú)法
再使用任何磁盤空間(這會(huì)造成該user無(wú)法登錄系統(tǒng))。
設(shè)置Grace Period可以使用命令"edquota –t":
# edquota -t
Time units may be: days, hours, minutes, or seconds
Grace period before enforcing soft limits for users:
/home: block grace period: 0 days, file grace period: 0 days
本例對(duì)grace不做限制。
默認(rèn)情況下,如果在"/etc/fstab"中設(shè)置了Quota標(biāo)記,系統(tǒng)啟動(dòng)后就會(huì)啟用Quota功能,可以使用這個(gè)命令
來(lái)關(guān)閉Quota:
# quotaoff -a
附:Quota提供的幾個(gè)常用的小工具;
1:edquota;剛才已經(jīng)使用過(guò)了,但是它還有一個(gè)常用的用法:
①:設(shè)置用戶Quota:
# edquota -u USER
②:設(shè)置組Quota:
# edquota -g GROUP
③:將對(duì)用戶"bibby"所做的Quota配置,同樣使用在用戶"michael"和"lee"上:
# edquota -p bibby michael lee
2:repquota:報(bào)告分區(qū)的Quota情況;
使用方法:
# repquota /quota/path
例如:
# repquota /home
3:quotaon/quotaoff:開啟和關(guān)閉Quota功能。