2008-03-26

【Quota】磁碟配額(Disk Quota)

凍仁幫各個社團開帳號時,除了關閉 ssh 服務之外,還想限制各帳號的磁碟空間,以免被資源被濫用。在鳥哥得知有 quota 可限制空間,可凍仁卻有那麼點不懂,索性跟老闆借了 Novell Suse Linux Enterprise Server 9 管理手冊 一書才搞定。其中 usrquota 為單獨使用者;grpquota 為針對使用者群組設定配額。By the way, quota 除了限制磁碟空間大小之外,還可限制建立檔案的inode(數量)。

實作磁碟配額步驟:
1. 安裝 quota 套件。
jonny@ubuntu:~$ sudo apt-get install quota


2. 修改 /etc/fstab 檔案並選擇預設定 Quota 的檔案系統。
jonny@ubuntu:~$ sudo vi /etc/fstab
#裝置    掛載點  檔案系統格式  mount選項
/dev/sda7  /home  ext3  defaults,usrquota,grpquota


3. 重新掛載檔案系統:加入 usrquota 與 grpquota 後,需重新掛載才有效。
jonny@ubuntu:~$ sudo mount -o remount /home


4. 初始化 Quota 資料庫:quota 會藉由 Database(資料庫) 紀錄使用者或群組的使用情況,首先得使用 quotacheck 檢查配額的檔案系統及建立磁碟用量表格。(下方以 home 為例)
jonny@ubuntu:~$ sudo quotacheck -cmug /home
# c:建立 quota 資料庫 | u:檢查使用者配額 | g:檢查群組配額

執行完會產生 aquota.user(使用者 Quota 資料庫)、aquota.qroup(群組 Quota 資料庫)。
jonny@ubuntu:~$ /home$ ls -l /home/aquota.*
-rw------- 1 root root 8192 2008-03-26 18:46 /home/aquota.group
-rw------- 1 root root 7168 2008-03-26 18:46 /home/aquota.user


5. 啟動 Quota Deamon:
jonny@ubuntu:~$ sudo quotaon -av


6. 編輯使用者或群組 Quota 規則
# 設定使用者磁碟配額
jonny@ubuntu:~$ sudo edquota -u UserName

# 設定群組磁碟配額
jonny@ubuntu:~$ sudo edquota -g GroupName

接著會進入 quota 編輯模式..
GNU nano 2.0.6 檔案: /tmp//EdP.aD0puo9

Disk quotas for user spa (uid 1004):
 Filesystem  blocks  soft  hard inodes soft hard
 /dev/sda7   24 100000 102400   7  0  0


^G 求助 ^O 寫入 ^R 讀檔 ^Y 上頁 ^K 剪下文字 ^C 游標位置
^X 離開 ^J 對齊 ^W 搜尋 ^V 下頁 ^U UnCut Text^T 拼字檢查

 第1欄(Filesystem):啟用 quota 的檔案系統名增
 第2欄(blocks):使用者已使用的區塊數量
 第3欄(soft):非強制性的磁碟空間限制 /* 單位:k */
 第4欄(hard):強制性的磁碟空間限制 /* 單位:k */
 第5欄(inodes):使用者已使用的檔案數目
 第6欄(soft):非強制性的 inode 限制
 第7欄(hard):強制性的 inode 限制



套用某個使用者的規則
jonny@ubuntu:~$ sudo edquota -p <被參考的使用者> user1,user2 ..

確認使用者配額
jonny@ubuntu:~$ sudo quota UserName

確認群組配額
jonny@ubuntu:~$ sudo quota -g GroupName




檢視單一目錄磁碟配額報告
jonny@ubuntu:~$ sudo repquota /home

檢視所有配額中的磁碟用量報告
jonny@ubuntu:~$ sudo repquota -aug


延伸閱讀:
【Quota】修改寬限時間(grace time)

資料來源:
Novell Suse Linux Enterprise Server 9 管理手冊 - ch7.6
鳥哥 - Linux 磁碟配額 (Quota)

2 意見:

Mics 提到...

jonny@ubuntu:~$ sudo qoutacheck -cmug /home
這個步驟 的quotacheck指令錯了喔
再這邊體省您一下^^

順便感謝 這篇文章 幫助我能限制其他人的空間 :)

凍仁翔 提到...

謝謝您的提醒,當初為了這玩意凍仁可花了不少的時間去摸索呢XD

不過最近有了份工作,有時間在發文囉:P

Design by Dzelque Blogger Templates 2008

Ubuntu Note Not Support the Internet Explorer Browser
Environment:Firefox 3.0 and 1024x768 dpi
Design by Dzelque Blogger Templates 2008