UNIX磁盤(pán)限額

2018-11-24 15:28 更新

磁盤(pán)限額用來(lái)限制磁盤(pán)空間大小和/或用戶(或用戶組)可用的文件數(shù)。The quotas are allocated on a per-file system basis and are enforced by the kernel.

Linux 設(shè)置

Quota 工具包通常已安裝,其包含一些命令行工具。
在 fstab 中激活用戶配額并重新掛載分區(qū)。如果分區(qū)正在使用,關(guān)閉所有使用的文件,或者重啟系統(tǒng)。添加 usrquota 到 fstab 的掛載類型中,舉個(gè)例子:

/dev/sda2     /home    reiserfs     rw,acl,user_xattr,usrquota 1 1
# mount -o remount /home
# mount                              # 檢查 usrquota 已經(jīng)激活,否則重啟

用 quotacheck 初始化 quota.user 文件。

# quotacheck -vum /home
# chmod 644 /home/aquota.user        # 讓用戶檢查自己的配額

用腳本(e.g. SuSE 的 /etc/init.d/quotad)或 quotaon 來(lái)啟用限額:

quotaon -vu /home

檢查配額啟用情況:

quota -v

FreeBSD 設(shè)置

Quota 工具是 FreeBSD 基本系統(tǒng)的一部分,然而內(nèi)核需要 quota 選項(xiàng)。如果不存在,新增它并重新編譯內(nèi)核。

options QUOTA

與 Linux 一樣,添加限額到 fstab 選項(xiàng)(是 userquota,而不是 usrquota)中:

/dev/ad0s1d    /home    ufs     rw,noatime,userquota    2  2
# mount /home                        # 重新掛載分區(qū)

在 /etc/rc.conf 中啟用磁盤(pán)限額并開(kāi)啟 quota 服務(wù)。

# grep quotas /etc/rc.conf
enable_quotas="YES"                  # 在啟動(dòng)時(shí)打開(kāi)限額(或者 "NO")
check_quotas="YES"                   # 在啟動(dòng)時(shí)檢查限額(或者 "NO")
# /etc/rc.d/quota start

分配限額

磁盤(pán)限額默認(rèn)并不限制(設(shè)置為0)。用 edquota 來(lái)對(duì)單用戶進(jìn)行限制。一個(gè) quota 也可給許多用戶復(fù)用。雖然 quota 實(shí)現(xiàn)之間的文件結(jié)構(gòu)不同,但其原理是相同的:限制節(jié)點(diǎn)(inodes)數(shù)量以及使用者可以取用的磁盤(pán)區(qū)塊數(shù)量。Only change the values of soft and hard. 如果未指定,默認(rèn)區(qū)塊大小為 1k。使用 edquota -t 設(shè)置 grace 時(shí)間。舉個(gè)例子:

# edquota -u colin

Linux

Disk quotas for user colin (uid 1007):
  Filesystem         blocks       soft       hard     inodes     soft     hard
  /dev/sda8            108       1000       2000          1        0        0

FreeBSD

Quotas for user colin:
/home: kbytes in use: 504184, limits (soft = 700000, hard = 800000)
   inodes in use: 1792, limits (soft = 0, hard = 0)

給許多用戶分配限額

命令 edquota -p 用來(lái)復(fù)用一個(gè) quota 給其他用戶。舉個(gè)例子,復(fù)用所指用戶的限額給所有用戶:

# edquota -p refuser `awk -F: $3 > 499 {print $1}' /etc/passwd`
# edquota -p refuser user1 user2     # 復(fù)用給 2 個(gè)用戶

檢查

用戶只需輸入 quota (文件 quota.user 必須可讀) 來(lái)可以檢查他們的限額。Root 可以查看所有用戶的限額。

# quota -u colin                     # 查看用戶的限額
# repquota /home                     # 所有用戶在這個(gè)分區(qū)上的限額情況
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)