歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux的磁盤配額詳解(Quota)

Linux的磁盤配額詳解(Quota)

日期:2017/2/28 16:02:05   编辑:Linux教程

1. 檢查內核情況

檢查當前內核是否支持quota,當前內核配置文件在/boot下

如果當前內核不支持quota,需要重新編譯內核將quota support編譯進核心:

File systems ---> [*] Quota support

2. 修改/etc/fstab,對所選文件系統激活配額選項

vim/etc/fstab

3. 重新掛載文件系統

添加了 usrquota 和 grpquota 選項後,重新掛載每個相應 fstab 條目被修改的文件系統。如果某文件系統沒有被任何進程使用,使用 umount 命令後再緊跟著 mount 命令來重新掛載這個文件系統。如果某文件系統正在被使用,要重新掛載該文件系統的最簡捷方法是重新引導系統或者使用命令:

[root@station1 ~]#mount -o remount,usrquota,grpquota /home。

一定不要忘記usrquota,grpquota

4. 掃描相應文件系統,用quotacheck命令生成基本的配額文件。

[root@station1 ~]# quotacheck-cugmv /home

運行 quotacheck 命令,quotacheck 命令檢查啟用了配額的文件系統,並為每個文件系統建立一個當前磁盤用來的表。該表會被用來更新操作系統的磁盤用量文件。此外,文件系統的磁盤配額文件也被更新。 要在文件系統上創建配額文件

所用選項如下:

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。

5. 用quotaon命令激活配額。

[root@station1 ~]#quotaon /home

6. 用edquota命令,對特定用戶采用配額限制。edquota–u username

要為用戶配置配額,以根用戶身份在 shell 提示下執行以下命令:

edquota -u username

為每個你想實現配額的用戶執行該步驟。例如,如果在 /etc/fstab 中為 /home 分區啟用了配額,執行了 edquota testuser 命令後,系統默認的編輯器

中就會有如圖顯示:

文件內有七個欄目:

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秒

#. 磁盤配額完畢後,必須以 quotaon -av 的命令啟用配額管理。

7. 測試:su – username,進行測試:ddif=/dev/zero of=file1 bs=1k count=50。

8.管理磁盤配額

如果配額被實現,它們就需要被維護 — 主要維護方式是觀察。查看配額是否被超出並確保配額的正確性。 當然,如果用戶屢次超出他們的配額或者持續地達到他們的軟限,系統管理員就可以根據用戶類型和磁盤空間對他們工作的影響來做出幾種決策。管理員可以幫助用戶來檢索對磁盤空間的使用,也可以按需要增加用戶的配額。

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

-------------------------------------------

naima -- 540 0 0 125 0 0

testuser -- 440400 500000 550000 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

以上命令在文本編輯器中顯示現存的組群配額:

修改限度,保存文件,然後配置配額。

要校驗組群配額是否被設置,使用以下命令:

quota -g devel

總結:

磁盤配額除了監視系統上使用的磁盤空間,你還可以通過實現磁盤配額來限制磁盤空間,因此當用戶使用了過多的磁盤空間或分區將要充滿時,系統管理員就會接到警告。磁盤配額可以為個體用戶配置也可以為用戶組配置。這種靈活性既能夠給每個用戶分配一個較小的配額來處理“個人”文件(如電子郵件和報告),又允許了他們正從事的項目能夠擁有較大的配額(假定項目有自己的組群)。

除此以外,配額不僅能夠被設置成對所用磁盤塊數量的控制,還能夠被設置成對內節點數量的控制。由於內節點包含文件相關的信息,對內節點的控制能夠控制可被創建的文件數量。

另外我們還可以通過設置磁盤配額防范系統攻擊:在大多數情況下黑客入侵遠程系統必須把木馬程序或後門程序上傳到遠程系統當中。如何才能切斷黑客的這條後路呢?Linux文件系統中的磁盤配額功能就能幫助用戶輕松實現對磁盤使用空間的管理。可以根據該用戶在系統中的權限和使用情況,合理地為該用戶指定使用空間,這樣配置既不影響系統常規的操作,同時也加強了系統的安全性。

通常,如果服務器可以沒有限制地執行寫操作,那麼都能成為塞滿硬盤造成DOS攻擊的途徑,比如:向匿名FTP塞垃圾文件。這樣也可以塞滿硬盤空間。通過磁盤配額可以有效限制這類攻擊。

Copyright © Linux教程網 All Rights Reserved