クォータシステムを使うことで、ユーザまたはユーザグループに割り当てられたディスク領域を制限する事が可能です。クォータを設定するには、クォータをサポートする (CONFIG_QUOTA
オプションを有効化してコンパイルされた) カーネルを使わなければいけません - Debian カーネルはクォータをサポートします。クォータ管理ソフトウェアは quota Debian パッケージに含まれています。
あるファイルシステムでクォータを有効化するには、/etc/fstab
の中でそれぞれユーザやグループクォータに対応する usrquota
や grpquota
オプションを使います。この後コンピュータを再起動すると、ディスク活動の無いときに (これは既に利用されているディスク領域を適切に計量する必要条件です)、クォータが更新されます。
edquota user
(または edquota -g group
) コマンドを使うと、現在のディスク領域使用量を検査している最中に、制限を変更する事が可能です。
クォータシステムを使うと 4 種類の制限を設定する事が可能です:
消費ブロック数に対する 2 種類の制限 (「ソフト」と「ハード」と呼ばれます) があります。もしファイルシステムが 1 キロバイトのブロックサイズで作られた場合、1 ブロックには、あるファイルの 1024 バイト分を入れる事が可能です。飽和していないブロックにより、ディスク領域の損失が生じます。100 ブロックのクォータは理論的には 102,400 バイト保存できる事を意味しますが、500 バイトのファイル 100 個、合計 50,000 バイト、で上限に達することになります。
i ノードに対して 2 種類の制限 (ソフトとハード) があります。各ファイルはファイルの情報 (パーミッション、所有者、最後にアクセスされた時間、など) を保存するために少なくとも 1 つの i ノードを専有します。この性質を使うことで、ユーザファイルの数を制限する事が可能です。
「ソフト」リミットは一時的に超過できます; ユーザは単純に warnquota
コマンドからクォータを超過していることに対する警告を受けるだけです。 warnquota
コマンドは通常 cron
コマンドによって呼び出されます。「ハード」リミットは決して超過できません: システムはハードクォータを超過するような操作をすべて拒否します。
edquota -t
コマンドを使って、ソフトリミットの超過を許す「猶予期間」の最長値を定義する事が可能です。この期間の後、ソフトリミットはハードリミットと同じ様に扱われます。ユーザがハードドライブに何かを書き込むには、ディスク領域の使用量を減らしてクォータの制限内に収めなければいけません。