歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Unix知識 >> BSD

用Quota來配置OpenBSD下磁盤限額

Quota:OpenBSD下配置磁盤限額
Author: MichaelBibby
Date: 2005/11/26

本文可以任意轉載,但請保留以上作者信息,謝謝。

Quota是用來配置磁盤限額的一個工具。可以配置用戶的磁盤限額,也可以配置用戶組的磁盤限額。
這兩個可以單獨配置,也可以同時結合著一起使用。既對某個用戶做限制也對某個組做限制。

第一次接觸Quota,是為了用Samba實現PDC(主域控制器)並對用戶設置磁盤限額而開始學習的。
(關於如何用Samba實現PDC,以及如何對從客戶端登錄上來的用戶做Quota,可以參考我的這篇文章:Samba服務,寫的不對之處,
還請大家斧正,多謝。)沒有接觸之前,覺得好象挺難的,但是當自己真正搗鼓那麼一兩次,有了比較清晰的概念之後就會輕車熟路了,
覺得配置Quota其實很簡單。

本文簡略說明在OpenBSD(3.8)上如何對用戶和用戶組設置Quota。

配置Quota,基本上就這麼4個步驟:

1: 要使系統支持Quota,請確認編譯內核的時候在內核配置文件中加上了"option Quota"選項。默認的GENERIC
 內核配置文件中已經包含這個選項;

2:在"/etc/fstab"文件中,對要設置Quota的分區做個標記(加上"userquota/groupquota");

3:使用Quota提供的幾個工具正確配置對用戶和對用戶組的Quota;

4:打開Quota,使系統啟動時就啟用Quota功能;

下面詳細地說說每一個步驟。

1:確認內核支持;

      如果你使用的是系統默認的GENERIC內核配置文件編譯出來的內核,那麼系統就已經支持Quota功能了,不需要
      另外編譯。如果沒有,請在你的配置文件中加上"options QUOTA",然後重新編譯安裝內核。
      關於編譯內核,請參考:
           OpenBSD FAQ5:Building the System from Source

2:標記需要Quota的分區;

       假如需要對"/home"目錄做Quota,那麼就在"/etc/fstab"中添加Quota標記。下面是一個例子:
 
            /dev/wd0a / ffs rw 1 1
            /dev/wd0d /home ffs rw,nodev,nosuid,userquota,groupquota 1 2
 
      做了標記並且修改了"/etc/rc.conf"文件中"check_quotas"變量的值(關於"check_quotas"變量,稍後會提到),
      會在"/home"目錄下生成兩個文件:"user.quota"和"group.quota"。這兩個文件保存了對用戶和用戶組所做的
      磁盤限額的信息。當然你也可以指定這兩個文件的位置,比如:
 
            userquota=/var/quotas/user.quota,groupquota=/var/quotas/group.quota

3:配置Quota;
      Quota提供了幾個工具讓你可以方便地配置Quota,稍後會向大家介紹幾個常用的。
  
      ⑴:設置用戶Quota;
 
            假如你要配置用戶bibby的磁盤限額,那麼直接輸入"edquota bibby"就可以了(配置Quota必須具有
            root權限),會在你預設的編輯器$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)
 
             這是還沒有設置Quota時的配置。
 
            這裡有幾個詞匯大家需要明白:
                   ①:KByte:磁盤容量。以"KB"為單位。
  
                  ②:soft:軟限制。即如果用戶的磁盤容量達到或者超過該值時,系統會向該系統發出警告,但是用戶仍然
                                  可以繼續增加磁盤容量;
    
                  ③:hard:硬限制。硬限制的值一般都比軟限制(soft)的值要大。當系統達到硬限制時,用戶將無法再增加
                                   磁盤容量。
    
                  到這裡你應該清楚地知道,"soft limit"只是警告,而"hard limit"才是真正的限制。
    
                  ④:inode:文件和文件夾的數目。一個文件或一個文件夾分別占用一個inode。設置inode限制可以控制用戶的
                                     文件數目。假如設置"inode hard limit"為10,則用戶擁有的文件數目達到10個後就無法再創建新文件
                                     或文件夾了(即使磁盤容量未超過"KByte hard limit"也一樣)。
                                     實際使用中較少對inode做限制,而一般都是對磁盤容量做限制。
   
                  這裡的"KByte in use"和"inodes in use"是Quota計算得出的用戶目前已經使用的磁盤容量和文件數。
  
      下面我們就來演示一下如何設置Quota。這個例子是為用戶"bibby"設置2M的"KByte soft limit"和3M的"KByte hard 
      limit",對inode則不做限制(這裡只是演示,為了便於測試結果,所以這裡配置的容量限額比較小):
 
            Quotas for user bibby:
                  /home: KBytes in use: 16, limits (soft = 2048, hard = 3072)
                              inodes in use: 7, limits (soft = 0, hard = 0)
 
      ⑵:設置組Quota;
 
            要為組設置Quota,只要使用如下命令就可以進行配置:
 
                  # edquota -g GROUP

 4:打開Quota功能;

      要使系統啟動後即開啟Quota功能,需要在"/etc/rc.conf"文件中將"check_quotas"變量的值設置為"YES"(系統
      默認即為"check_quotas=YES"):

            check_quotas=YES
 
      也可以通過命令來啟用Quota:
 
            # quotaon -a

      這個命令會根據"/etc/fstab"文件中做的Quota標記來對分區做磁盤限額。
      可以使用"quota"命令來查看自己的磁盤限額,"quota -u USER"查看某個用戶的磁盤限額:
 
            $ quota
            Disk quotas for user bibby (uid 1000):
            Filesystem KBytes quota limit grace files quota limit grace
            /home  16  2048 3072   7  0  0  
 
      這裡出現了一個新東西:"grace"。
      grace是"Grace Period"的意思,表示用戶的磁盤容量被允許超過"soft limit"的時間。

      假設Grace Period設定為3天,超過soft limit的user在三天內未處理超過limit的檔案的話,user將無法
      再使用任何磁盤空間(這會造成該user無法登錄系統)。

      設置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
 
      本例對grace不做限制。
 
      默認情況下,如果在"/etc/fstab"中設置了Quota標記,系統啟動後就會啟用Quota功能,可以使用這個命令
      來關閉Quota:
 
            # quotaoff -a

附:Quota提供的幾個常用的小工具;

      1:edquota;剛才已經使用過了,但是它還有一個常用的用法:
  
            ①:設置用戶Quota:
  
                  # edquota -u USER
   
            ②:設置組Quota:
  
                  # edquota -g GROUP
  
            ③:將對用戶"bibby"所做的Quota配置,同樣使用在用戶"michael"和"lee"上:
  
                  # edquota -p bibby michael lee
 
      2:repquota:報告分區的Quota情況;
 
            使用方法:

                  # repquota /quota/path

            例如:
  

                 # repquota /home
 
      3:quotaon/quotaoff:開啟和關閉Quota功能。
 

Copyright © Linux教程網 All Rights Reserved