FreeBSD/quota

quota

クォータは OS の持っているオプショナルな機能であり、ファイルシステム毎にユーザやグループのメンバが使用するディスク容量やファイルの数を制限することができます。
この機能は、あるユーザやグループに割り当てられるリソースの量を制限することが望ましいようなタイムシェアリングシステムにおいてよく用いられます。
この機能を用いることによって使用可能なディスク容量の全てを一人のユーザやユーザのグループが使ってしまうことを防ぐことができます。

  1. 環境
  2. カーネル再構築
  3. /etc/rc.confの編集
  4. /etc/fstabの編集
  5. 確認
  6. 初期設定

環境

FreeBSD 6.0

カーネル再構築

カーネル再構築はこちらも参考にしてください。

# cd /usr/src/sys/i386/conf/
# cp GENERIC MYKERNEL

■下記の一行を追加する。

options QUOTA #enable disk quotas
# config MYKERNEL
# cd ../../complile/MYKERNEL
# make depend;make
# make install


/etc/rc.confの編集

■下記の2行を追加

enable_quotas="YES" #quotaの有効化
check_quotas="YES"  #起動時にquotacheckを実施する。

/etc/fstabの編集

# Device                Mountpoint      FStype  Options         		Dump    Pass#
/dev/ad0s1b             none            swap    sw              		0       0
/dev/ad0s1a             /               ufs     rw              		1       1
/dev/ad0s1e             /home           ufs     rw,userquota,groupquota   		2       2
/dev/ad0s1f             /usr            ufs     rw              		2       2

リブートすると、
/home/quota.user
/home/quota.group
などの初期ファイルが生成されています。

確認

$ quota -v
Disk quotas for user matsui (uid 1001): 
     Filesystem   usage   quota   limit   grace   files   quota   limit   grace
          /home     112  100000  150000              39       0       0  

このように表示されれば、設定は有効になってます。
グレースタイムとは、ソフトリミットの制限を越えてハードリミットの領域を利用できる猶予期間のことを指しています。
ソフトリミットは、そのユーザが利用できるディスクの大きさのことをいって、これを超えると警告状態となります。
この警告の状態からその限界までの利用できる大きさをハードリミットという呼び方をしているようです。
最初に1つ設定を行い、これを範囲として適用することができます。

初期設定

■グレースタイムの設定

# edquota -t

■ユーザhogeのquota設定

# edquota -u hoge

■ユーザのquota設定をコピーする
ユーザhogeの設定を、uid:1000から1500までに適応する。

# edquota -p hoge 1000-1500