クォータシステムを使うことで、ユーザまたはユーザグループに割り当てられたディスク領域を制限することが可能です。クォータを設定するには、クォータをサポートする (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
コマンドを使えば、ソフトリミットの超過を許す「猶予期間」の最長値を定義することが可能です。この期間の後、ソフトリミットはハードリミットと同様に扱われます。ユーザがハードドライブに何かを書き込むには、ディスク領域の使用量を減らしてクォータの制限内に収めなければいけません。