Linux中的磁盤限額利用軟件對特殊用戶賬號所使用的磁盤空間進行限制。本教程說明如何在系統上建立磁盤限額。
Linux,以及其它以Unix為基礎的操作系統的一個優點在於它的多用戶處理能力。用戶賬號從嚴格特權分離這種增強的安全性中受益,多個用戶可同時處於活動狀態,並可從本地通過輸入與輸出設備或由遠程通過網絡服務進行訪問。這種優點使得Linux成為多用戶工作站、應用服務器與遠程測試平台的理想系統。
這些應用可能會面臨在單用戶計算機上不會出現的社會挑戰。挑戰之一為共享存儲空間,也就是一些用戶,不管出於什麼原因,無法與他人共享空間這一事實。這可能源自“逃避”某種後果的期望,就像在生日晚會上總想得到最大的那塊蛋糕一樣;或者這些問題用戶可能只是忘記了共享一台計算機這件事,並不去或不願注意他們自己的磁盤使用情況。當用戶開始獨占磁盤空間,並因而損害了其它用戶的利益,多用戶計算機的系統管理員就有必要思考如何用預先設定的限制來控制磁盤的使用情況。實際上,在建立一個多用戶系統時,提前考慮(磁盤限額)可能是個好主意,不能等到有人已經越過了合理的界限才采取行動。
你可以與磁盤空間囤積者接觸並與他們理論,但是,如果他們通情達理的話,他們一開始就不會讓你陷入現在的這種境地。如果你不提前做出計劃,那麼在你開始應用自動化的方法進行限制,並使他們符合你打算設置的限制前,你得小心翼翼地要求他們減少磁盤使用空間。你還可以應用公開困窘的方法:在某個地方發行大家可以相互訪問的各人磁盤空間使用空間統計數據,希望同輩壓力幫助你的問題用戶遵守磁盤使用限制。但這種方法在大多數情況下都不會成功,對那些你無法限制其意願的人——可能出於政治原因,你的老板——這可能是你的唯一選擇。通常,與上述這些解決辦法相比,技術解決方案是更好的選擇。幸運地是,由於大多數社會問題都涉及到計算機,代碼黑客已著手應對提供多種方式讓計算機處理其它用戶的挑戰,這樣普通用戶就沒有必要這樣做。
如果你的用戶足夠少,有理由這樣做,並且你系統的用戶名冊不會發生改變,你可以為每個用戶建立一個獨立的分區,並將他們單獨安置在你的多用戶計算機文件系統的主目錄區域內。但是,如果用戶群體不斷變化,或是有許多用戶,則這種方法可能很快會失去控制,且非常難以管理。但是,萬一每個用戶需要大量的存儲空間,應用網絡連接存儲就是合理的管理方案。實際上,你可以應用一用戶一磁盤的方法解決問題。不幸的是,大多數的多用戶系統管理員並未意識到自己處在這一境地。
對多數系統管理員而言,磁盤限額是最好的解決辦法。Linux中的磁盤限額利用軟件對特殊用戶賬號所使用的磁盤空間進行限制。盡管有許多包含花哨裝置的免費而又復雜的限額管理系統,以及昂貴的商業限額管理系統可以解決這一問題,但是最簡單且可能最方便的解決辦法,是所有主流Linux產品管理員可免費應用的基本命令行quota工具集。應用這種常用的磁盤限額系統,操作系統自身就可對不同用戶賬號進行存儲空間限制。
磁盤限額可以為每個用戶賬號單獨配置。並且,當有成批的用戶需要在同樣的限制下進行操作時,這種配置還可以方便地進行復制。系統自動運行,並可進行設置,向那些超出限制,但在預先設定的較高限額內的用戶發出警告與寬限時間,以一種有益、寬大但依然高效的方式保證用戶對限額的遵守。與為每個用戶賬號應用單獨分區、或整個單獨物理磁盤不同,在這種情況下,對磁盤限額進行必要的修改只是小事一樁。這種方法的最大優點在於,你不必直接面對用戶,因為磁盤限額系統一旦設定,系統即會自行進行管理。
准備磁盤限額
為系統的磁盤限額做准備包括幾個簡短的步驟。在你決定執行限額系統時,這些是必需的一次性步驟。一旦系統的磁盤限額設置完畢,你就不必再次執行這些步驟。
安裝
首先,你得安裝限額系統。如何進行安裝因所使用的Linux 系統而異,但如果該系統沒有被默認安裝的話,你的Linux軟件包管理系統應可提供簡單方便的限額系統安裝方法。要檢查限額系統是否已安裝,你可以打開一個外殼界面,在其中輸入quato命令;或者使用kterm或gterm這樣的終端模擬器;或是在TTY控制台上登記。如果quato已安裝,且用戶名為foo,你將會看到下列代碼:
$ quota
Disk quotas for user foo (uid 1000): none
如果限額系統沒有安裝,你將得到一個“命令未發現”響應。如果你得到磁盤限額信息,則表明有人已在你的機器上執行了磁盤限額。
以下是一個應用APT軟件管理系統的apt-get命令在Debian GUN/Linux系統上安裝quota的例子:
$ apt-get install quota
Reading package lists... Done
Building dependency tree... Done
The following NEW packages will be installed
quota
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 439kB of archives.
After unpacking 1188kB of additional disk space will be used.
安裝以後,會出現更多與安裝有關的信息,你的Debian系統還會問你許多處理限額違反報告的問題。在其它Linux產品上的安裝過程與上述過程十分相似。
如果因為某種原因,你的Linux產品無法提供通過軟件包管理器安裝quota的方法,那麼,你得從sourceforge.net/projects/linuxquota下載並進行安裝。