限制用戶硬盤(pán)使用空間 UNIX作為一種多用戶系統(tǒng),它允許多個(gè)用戶共同使用系統(tǒng)的資源,包括系統(tǒng)的內(nèi)存,CPU和硬盤(pán)。在默認(rèn)情況下,系統(tǒng)并不會(huì)限制每個(gè)用戶可以使用硬盤(pán)空間的大小,所以如果用戶惡意使用硬盤(pán),或用戶由于疏忽,將硬盤(pán)空間全部占用,將導(dǎo)致其他用戶無(wú)法使用硬盤(pán),從而使系統(tǒng)性能下降,甚至有崩潰的危險(xiǎn)。
其實(shí),UNIX提供的quota系列命令可以幫助我們解決這個(gè)問(wèn)題,這些命令包括:
quota : 顯示用戶的硬盤(pán)限額和使用情況。
edquota : 為每個(gè)用戶設(shè)定硬盤(pán)限額。
quotaon: 啟動(dòng)文件系統(tǒng)硬盤(pán)限額服務(wù)
quotaoff : 關(guān)閉文件系統(tǒng)硬盤(pán)限額服務(wù)
repquota : 顯示當(dāng)前硬盤(pán)限額狀態(tài)
配置這項(xiàng)服務(wù)的方法很簡(jiǎn)單。但在使用硬盤(pán)限額服務(wù)之前,我們要明白硬限制和軟限制這兩個(gè)概念。所謂硬限制是指對(duì)資源節(jié)點(diǎn)和數(shù)據(jù)塊的絕對(duì)限制,在任何情況下都不允許用戶超過(guò)這個(gè)限制;而軟限制是指用戶可以在一定時(shí)間范圍內(nèi)(默認(rèn)時(shí)為一周,在/usr/include/sys/fs/ufs_quota.h文件中設(shè)置)超過(guò)軟限制的額度,在硬限制的范圍內(nèi)繼續(xù)申請(qǐng)資源,同時(shí)系統(tǒng)會(huì)在用戶登錄時(shí)給出警告信息和仍可繼續(xù)申請(qǐng)資源剩余時(shí)間。如果達(dá)到時(shí)間期限,用戶的硬盤(pán)使用仍超過(guò)軟限制的額度,則系統(tǒng)將不允許用戶再申請(qǐng)硬盤(pán)資源。
明白了這兩個(gè)概念,我們就可以配置硬盤(pán)限額服務(wù)了,首先我們必須在要限制的文件系統(tǒng)的根目錄下建立一名字為quotas的文件,該文件的所有者應(yīng)是root,且其它用戶不可以對(duì)它進(jìn)行寫(xiě)操作。方法是:
# cd /home (進(jìn)入文件系統(tǒng)根目錄,注意并不是系統(tǒng)根目錄,本例為/home目錄)
# touch quotas(創(chuàng)建一名字為quotas的空文件)
# chmod 644 quotas (更改文件屬性,使只有root可以對(duì)它進(jìn)行寫(xiě)操作)
然后,我們編輯/etc/vfstab文件,找到要進(jìn)行硬盤(pán)限額服務(wù)的文件系統(tǒng),并將
mount option字段的值設(shè)為rq,然后并存盤(pán)退出。
完成這兩步后,我們使用edquota命令為每個(gè)用戶設(shè)置硬盤(pán)限額,在root權(quán)限下輸入以下命令:
#edquota username
這時(shí)系統(tǒng)會(huì)自動(dòng)生成一個(gè)臨時(shí)文件,并且有如下內(nèi)容:
fs /users blocks (soft = 0, hard = 0) inodes (soft = 0, hard = 0)
其中fs字段表明使用硬盤(pán)限額的文件系統(tǒng),本例為/users,block和inodes表明用戶可以使用的硬盤(pán)千字節(jié)數(shù)和I節(jié)點(diǎn)數(shù),即用戶可使用的硬盤(pán)空間和可建立的文件數(shù),soft和hard分別對(duì)于前面提及的軟限制和硬限制。
編輯這個(gè)文件,把軟,硬限制設(shè)置到合適的數(shù)值,然后存盤(pán)退出。這時(shí)我們可以看到quotas文件的大小已經(jīng)被改變,說(shuō)明用戶的限額已經(jīng)儲(chǔ)存。重復(fù)這條命令,給每一個(gè)用戶都配置硬盤(pán)限額。另外,如果我們分配給用戶的硬盤(pán)限額都相同,我們可以使用 “-p” 參數(shù)而不用為每個(gè)用戶都編輯一個(gè)文件,它的使用方法是:
#edquota -p reference-usernameusername
編輯完文件后,我們就可以用quotaon來(lái)啟動(dòng)服務(wù)了,在root權(quán)限下輸入
#quotaon /users
就可以啟動(dòng)限額服務(wù)。如果我們要查看各個(gè)用戶的當(dāng)前使用情況,可以使用
repquota 命令,在root權(quán)限下輸入:
#repquota /users
系統(tǒng)會(huì)顯示:
。。。
從中我們可以很容易看到用戶的硬盤(pán)和文件的使用情況以及超過(guò)軟限制后仍可申請(qǐng)資源的時(shí)間等等。
當(dāng)然我們可以用quotaoff取消硬盤(pán)限額服務(wù)。另外,系統(tǒng)還提供quotacheck 命令對(duì)限額的一致性進(jìn)行檢查。