所謂磁盤配額就是管理員可以對本域中的每個用戶所能使用的磁盤空間進行配額限制,即每個用戶只能使用最大配額範圍內的磁盤空間。磁盤配額監視個人用戶卷的使用情況,因此,每個用戶對磁盤空間的利用都不會影響同一捲上其它用戶的磁盤配額。磁盤配額具有如下特性:
磁盤配額可以對每個用戶的磁盤使用情況進行跟蹤和控制。這種跟蹤是利用文件或文件夾的所有權來實現的。當一個用戶在Linux ext 2/3分區上拷貝或
存儲
一個新的文件時,他就擁有對這個文件的所有權,這時磁盤配額程序就將此文件的大小計入這個用戶的磁盤配額空間。
當設置了磁盤配額後,分區的報告中所說的剩餘空間,其實指的是當前這個用戶的磁盤配額範圍內的剩餘空間。 磁盤配額程序對每個分區的磁盤使用情況是獨立跟蹤和控制的,而不論它們是否位於同一個物理磁盤。
操作系統
可以對磁盤配額進行監測,它可以掃描磁盤分區,監測每個用戶對磁盤空間的使用情況,並用不同的顏色標識出磁盤使用空間超過報警值和配額限制的用戶,這樣就方便了對於磁盤配額的管理。
登錄到相同計算機的多個用戶互不干涉其它用戶的工作能力;一個或多個用戶不獨佔公用服務器上的磁盤空間;在個人計算機的共享文件夾中,用戶不使用過多的磁盤空間。
綜上所述,可以看出磁盤配額提供了一種基於用戶和分區的文件存儲管理,使得管理員可以方便的利用這個工具合理的分配存儲資源,避免由於磁盤空間使用的失控可能造成的系統崩潰,從而提高了系統的
安全
性。
二、實現磁盤配額的步驟圖解
要實現磁盤配額,請使用以下步驟:
1. 檢查Linux 內核是否打開磁盤配額支持。
2. 修改/etc/fstab,對所選文件系統激活配額選項。
3. 更新裝載文件系統,使改變生效。
4. 在該文件系統引導時建立aquota.user文件。
5. 掃描相應文件系統,用quotacheck命令生成基本配額文件。
6. 用edquota命令,對特定用戶採用配額限制。
7. 最後,用命令激活配額。
操作步驟如圖1 。
[/url]
圖1實現磁盤配額的步驟
三、實現Linux的磁盤配額的詳解
1. 檢查內核情況
檢查當前內核是否支持quota,當前內核配置文件在/boot下
# grep CONFIG_QUOTA /boot/config-2.4.20
CONFIG_QUOTA=y
CONFIG_QUOTACTL=y
如果有上列輸出,則表示當前內核已經支持quota。如果當前內核不支持quota,需要重新編譯內核將quota support編譯進核心:
File systems --->
圖2 配置當前內核支持quota
2. 修改/etc/fstab,對所選文件系統激活配額選項
以根用戶身份使用vi編輯器來給需要配額的文件系統添加 usrquota 和(或) grpquota 選項:
:
LABEL=/ / ext3 defaults 1 1
LABEL=/boot /boot ext3 defaults 1 2
LABEL=/home /home ext3 defaults,usrquota 1 2
none /dev/shm tmpfs defaults 0 0
/dev/hda2 swap swap defaults 0 0
在上面的例子中,/home 文件系統上啓用了用戶配額。
3. 重新掛載文件系統
添加了 userquota 和 grpquota 選項後,重新掛載每個相應 fstab 條目被修改的文件系統。如果某文件系統沒有被任何進程使用,使用 umount 命令後再緊跟着 mount 命令來重新掛載這個文件系統。如果某文件系統正在被使用,要重新掛載該文件系統的最簡捷方法是重新引導系統或者使用命令:“# mount -o remount /home”。
4. 在該文件系統建立aquota.user文件
# touch /home/aquota.user
# chmod 600 /aquota.user
5. 掃描相應文件系統,用quotacheck命令生成基本配額文件
運行 quotacheck 命令,quotacheck 命令檢查啓用了配額的文件系統,併爲每個文件系統建立一個當前磁盤用來的表。該表會被用來更新
[url=http://product.it168.com/list/b/0501_1.shtml]操作系統
的磁盤用量文件。此外,文件系統的磁盤配額文件也被更新。 要在文件系統上創建配額文件( aquota.user 和 aquota.group ),使用 quotacheck 命令的 -c 選項。例如,如果用戶和組羣配額都爲 /home 分區啓用了,在 /home 目錄下創建這些文件:
quotacheck -acug /home
-a 選項意味着在 /etc/mtab 中所有掛載了的非 NFS 文件系統都會被檢查來決定是否啓用了配額。 -c 選項指定每個啓用了配額的文件系統都應該創建配額文件, -u 選項指定檢查用戶配額, -g 選項指定檢查組羣配額。
如果 -u 或 -g 選項被指定,只有用戶配額文件被創建。如果只指定了 -g 選項,只有組羣配額文件會被創建。
文件被創建後,運行以下命令來生成每個啓用了配額的文件系統的當前磁盤用量表:
quotacheck -avug
所用選項如下:
a — 檢查所有啓用了配額的在本地掛載的文件系統
v — 在檢查配額過程中顯示詳細的狀態信息
u — 檢查用戶磁盤配額信息
g — 檢查組羣磁盤配額信息
quotacheck 運行完畢後,和啓用配額(用戶和/或組羣)相應的配額文件中就會寫入用於每個啓用了配額的文件系統(如 /home )的數據。
要定期運行它的最簡單方法是使用 cron。以根用戶身份,你既可以使用 crontab -e 命令來調度定期的 quotacheck,也可以在以下目錄之一內放置一個運行 quotacheck 的腳本(使用最時候你需要的間隔期間):
• /etc/cron.hourly
• /etc/cron.daily
• /etc/cron.weekly
• /etc/cron.monthly
最精確的配額統計數據可以在所分析的文件系統沒有被活躍使用時獲得。因此,cron 任務應該在文件系統被最少使用時調度。如果這一時間在使用配額的文件系統中並不統一,則使用多個 cron 任務在不同的時間爲每個文件系統運行 quotacheck。
6. 使用 edquota 命令分配磁盤配額。
要爲用戶配置配額,以根用戶身份在 shell 提示下執行以下命令:
edquota -u username
爲每個你想實現配額的用戶執行該步驟。例如,如果在 /etc/fstab 中爲 /home 分區( /dev/hda3 )啓用了配額,執行了 edquota testuser 命令後,系統默認的編輯器
中就會有如圖3顯示:
圖3
文件內有七個欄目:
Filesystem => 進行配額管制的文件系統。
blocks => 已經使用的區塊數量(單位1KB)
soft => block 使用數量的"軟性"限制
hard => block 使用數量的"硬性"限制
inode => 已經使用的 inode 數量
soft => inode 使用數量的"軟性"限制
hard => inode 使用數量的"硬性"限制
edquota –t
和 edquota 命令相似,這個命令也會在文本編輯器中打開當前的文件系統配額:
Grace period before enforcing soft limits for users:
Time units may be: days, hours, minutes, or seconds
Filesystem Block grace period Inode grace period
/dev/hdb1 10days 10days
另外以上兩個操作可以使用
以上設置也可以使用 setquota 命令設置:
setquota -u someone 0 0 3 5 /dev/loop0
setquota -t 864000 864000 /dev/loop0
ps. 864000 爲 10 天的秒數. 一小時=3600秒, 一天=86400秒
7. 磁盤配額完畢後,必須以 quotaon -av 的命令啓用配額管理。
四、管理磁盤配額
如果配額被實現,它們就需要被維護 — 主要維護方式是觀察。查看配額是否被超出並確保配額的正確性。 當然,如果用戶屢次超出他們的配額或者持續地達到他們的軟限,系統管理員就可以根據用戶類型和磁盤空間對他們工作的影響來做出幾種決策。管理員可以幫助用戶來檢索對磁盤空間的使用,也可以按需要增加用戶的配額。
1. 報告磁盤配額
創建磁盤用量報告需要運行 repquota 工具。例如,repquota /home 命令會生成以下輸出:
*** Report for user quotas on device /dev/hda3
Block grace time: 7days; Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
-------------------------------------------
root -- 36 0 0 4 0 0
tfox -- 540 0 0 125 0 0
testuser -- 440400 500000
5500
00 37418 0 0
要查看所有啓用了配額的文件系統的磁盤用量,使用以下命令:
repquota -a
這份報告雖然看起來很簡單,有幾點仍需要做一下說明。顯示在每個用戶後面的 -- 是一種判斷用戶是否超出其塊限度或內節點限度的快速方法。如果任何一個軟限被超出,相應的 - 行就會被 - 代替;第一個 - 代表塊限度,第二個代表內節點限度。 grace 列通常是空白。如果某個軟限被超出,這一列就會包含過渡期中的剩餘時間。如果過渡期已超過了,其中就會顯示 none。
2.磁盤配額的啓用和禁用
你可以不必把配額設置爲 0 來禁用它們。要關閉用戶和組羣配額,使用以下命令:
quotaoff -vaug
如果 -u 或 -g 選項沒有被指定,只有用戶配額被禁用。如果只指定了 -g 選項,只有組羣配額會被禁用。
要重新啓用配額,使用帶有同樣選項的 quotaon 命令。
例如,要爲所有文件系統啓用用戶和組羣配額:
quotaon -vaug
要爲指定文件系統(如 /home)啓用配額:
quotaon -vug /home
如果 -u 或 -g 選項沒有指定,那麼僅用戶配額會被啓用。如果只指定了 -g 選項,僅組羣配額會被啓用。
3. 爲組羣分配配額
配額還可以根據組羣來分配。例如,要爲 devel 組羣設置組羣配額,使用以下命令(在設置組羣配額前,該組羣必須存在):
edquota -g devel
以上命令在文本編輯器中顯示現存的組羣配額:
Disk quotas for group devel (gid 505):
Filesystem blocks soft hard inodes soft hard
/dev/hda3 440400 0 0 37418 0 0
修改限度,保存文件,然後配置配額。
要校驗組羣配額是否被設置,使用以下命令:
quota -g devel
總結:
磁盤配額除了監視系統上使用的磁盤空間,你還可以通過實現磁盤配額來限制磁盤空間,因此當用戶使用了過多的磁盤空間或分區將要充滿時,系統管理員就會接到警告。磁盤配額可以爲個體用戶配置也可以爲用戶組配置。這種靈活性既能夠給每個用戶分配一個較小的配額來處理“個人”文件(如電子郵件和報告),又允許了他們正從事的項目能夠擁有較大的配額(假定項目有自己的組羣)。
除此以外,配額不僅能夠被設置成對所用磁盤塊數量的控制,還能夠被設置成對內節點數量的控制。由於內節點包含文件相關的信息,對內節點的控制能夠控制可被創建的文件數量。
另外我們還可以通過設置磁盤配額防範系統***:在大多數情況下******遠程系統必須把***程序或後門程序上傳到遠程系統當中。如何才能切斷***的這條後路呢?Linux文件系統中的磁盤配額功能就能幫助用戶輕鬆實現對磁盤使用空間的管理。可以根據該用戶在系統中的權限和使用情況,合理地爲該用戶指定使用空間,這樣配置既不影響系統常規的操作,同時也加強了系統的
安全
性。
通常,如果
服務器
可以沒有限制地執行寫操作,那麼都能成爲塞滿
硬盤
造成DOS***的途徑,比如:向匿名FTP塞垃圾文件。這樣也可以塞滿硬盤空間。通過磁盤配額可以有效限制這類***。
本文來自ChinaUnix博客,如果查看原文請點:http://blog.chinaunix.net/u1/55764/showart_1193434.html