quotaによるユーザー領域の管理(FreeBSDのメモ)


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

後はcronでquotaチェックしてメールを送信するようにする。

コメントを残す

Some HTML is OK