使用者管理(五)

使用者磁碟配額 (Quota)

要啟用磁碟配額的功能,在磁碟掛載時要加入參數 usrquota 或 grpquota,可在 /etc/fstab 中設定,或是在掛載時加入 -o usrquota,grpquota 選項。在啟動磁碟配額後,要用 quotacheck 建立資料庫:

# echo  “/dev/sdb10    /mnt/sdb10    ext3    defaults,usrquota  1 2”  >>  /etc/fstab (在 /etc/fstab 中加入這一行,也可以直接 mount  -o  usrquota  /dev/sdb10  /mnt/sdb10 來掛載)
# mount  -a (掛載 /etc/fstab 中所有掛載點)
# ls  /mnt/sdb10 (看一下有什麼)
lost+found
# quotacheck  -c  /mnt/sdb10 (製作磁碟配額的資料庫)
# ls  /mnt/sdb10 (再看一下)
aquota.user lost+found (多出了 aquota.user 檔案)
# quotaon  /mnt/sdb10 (啟動磁碟配額)

開始編輯使用者的磁碟配額:
# edquota  kevin (編輯 kevin 的磁碟配額)
Disk quotas for user kevin (uid 501):
Filesystem                   blocks       soft       hard     inodes     soft     hard
/dev/sdb10                        0      10000      10000 0      100      100
(給 10000K 的磁碟空間,100 個檔案數)

# su kevin (轉成 kevin 的身份)
$ dd  if=/dev/zero  of=/mnt/sdb10/kevin  bs=1K  count=12000 (製作一個 12000K 的檔案)
sdb10: write failed, user block limit reached.
dd: 寫入 ‘/mnt/sdb10/kevin’: 硬碟 quota 滿了
9960+0 records in
9959+0 records out
10198016 bytes (10 MB) copied,0.223753 秒,45.6 MB/s

# repquota -a (看一下所有人的磁碟使用狀況)
*** Report for user quotas on device /dev/sdb10
Block grace time: 7days; Inode grace time: 7days
Block limits                File limits
User            used    soft    hard  grace    used  soft  hard  grace
———————————————————————-
root      —    5664       0       0              4     0     0
kevin     —   10000   10000   10000 1   100   100
(剛好到達磁碟配額限制)

要開啟或關閉 quota 可用 quotaon 及 quotaoff 指令來執行:
# quotaoff  /mnt/sdb10/ (指定關閉 /mnt/sdb10 的磁碟配額限制)
# su  kevin (轉換成 kevin 的身份)
$ dd  if=/dev/zero  of=/mnt/sdb10/kevin2  bs=1K  count=12000 (再製作另一個 12000K 的檔案)
12000+0 records in
12000+0 records out
12288000 bytes (12 MB) copied,0.267534 秒,45.9 MB/s
(製作成功)
$ exit (退出 kevin 身份回到 root)
# quotacheck  -a (檢查一下在 quotaoff 期間的檔案變化)
# quotaon  -a (打開磁碟配額限制)
# repquota  -a (查詢所有使用者的磁碟空間使用狀況)
*** Report for user quotas on device /dev/sdb10
Block grace time: 7days; Inode grace time: 7days
Block limits                File limits
User            used    soft    hard  grace    used  soft  hard  grace
———————————————————————-
root      —    5664       0       0              4     0     0
kevin     +–   22049 10000   10000  7days 2   100   100
(kevin 已經超過磁碟配額限制)

使用者可以使用 quota 指令來看自己的磁碟配額限制:
$ quota
Disk quotas for user kevin (uid 501):
Filesystem  blocks   quota   limit   grace   files   quota   limit   grace
/dev/sdb10   22049*  10000   10000               2     100     100