0.カーネルの再構築
quotaはFreeBSDに標準で装備されていますが、オプションという扱いですので、quotaを使用するオプションをカーネルに組み込まなければなりません。つまりカーネルの再構築が必要です。
GENERICをBSとしてコピーして、編集します。
#cd /usr/src/sys/i386/conf #cp GENERIC BS #vi BS # $FreeBSD: src/sys/i386/conf/GENERIC,v 1.246.2.43 2002/05/23 17:04:01 obrien Exp $ machine i386 cpu I386_CPU cpu I486_CPU cpu I586_CPU cpu I686_CPU ident BS maxusers 0 中略 options P1003_1B #Posix P1003_1B real-time extensions options _KPOSIX_PRIORITY_SCHEDULING options ICMP_BANDLIM #Rate limit bad replies options KBD_INSTALL_CDEV # install a CDEV entry in /dev options QUOTA :wq
BSをconfig,そしてmakeします。
#config BS #cd ../../compile/BS #make depend #make #make install 再起動で終了 #reboot
1./etc/fstabの編集
/usr内のユーザーごとのディスクを領域を制限するなら、Mountpointの/usrの欄のOptionに「userquota」を書き加える。区切りは「,」で行う。
例>/dev/ad0s1f /usr ufs rw,userquota 2 2
2./etc/rc.confの編集
下記の2行を書き加える。
check_quotas="YES" enable_quotas="YES"
3./usr/quotaの新規作成
quotaをかけるファイルシステムのルートにあたるディレクトリに移って、viなどで空のquotaファイルを作成します。そして、rootだけに読み書き可能なように属性を変更します。
#cd /usr #vi quota :wq #chmod 600 quota
*FreeBSDハンドブックによれば「空のクォータファイルを手動で作る必要は一切ありません(自動で作られる)」とあるので、作らなくてもいいかもしれない。詳しくは上記関連URLを参照。その場合3.の項目はパス
4.再起動
その後再起動すればquotaがOS起動時に立ち上がります。
5.領域の制限を行う
soft limitsは指定されたデータ量(ファイル数)を超えると、いったんは転送できますが一定の期間(デフォルトでは一週間)を過ぎると書き込み、変更が不可能になり、削除するしかなくなるという制限です。
hard limitsは、指定された容量(ファイル数)を超えたものに関して、転送そのものを拒否する制限です。
blocksはデータ量 、inodesはファイル数
soft limitsを20MB hard limitsを21MBに設定した場合。
#edquota test
Quotas for user test:
/usr: blocks in use: 2, limits (soft = 20480, hard = 21504)
inodes in use: 1, limits (soft = 0, hard = 0)
確認
#quota test
すべてを一覧するには、
#repquota -a
複数のユーザーに同じ設定をしたい場合はuidと-pオプション使う。
詳しくは上記関連URL
# edquota -p test 10000-19999