クォータシステムを使うことで、ユーザまたはユーザグループに割り当てられたディスク領域を制限することが可能です。クォータを設定するには、クォータをサポートする (CONFIG_QUOTA
オプションを有効化してコンパイルされた) カーネルを使わなければいけません。Debian カーネルはクォータをサポートしています。クォータ管理ソフトウェアは quota Debian パッケージに含まれています。
あるファイルシステムでクォータを有効化するには、/etc/fstab
の中で usrquota
(ユーザ用クォータ) および grpquota
(グループ用クォータ) オプションを指定します。この後コンピュータを再起動すると、ディスク活動のない時にクォータが更新されます (これは使用済みディスク領域を適切に計量する必要条件です)。
edquota user
(または edquota -g group
) コマンドを使うと、現在のディスク領域使用量を検査している最中に、制限を変更することが可能です。
クォータシステムを使うと以下の 4 種類の制限を設定することが可能です。
two limits (called “soft” and “hard”) refer to the number of blocks consumed. If the filesystem was created with a block-size of 1 kibibyte, a block contains 1024 bytes from the same file. Unsaturated blocks thus induce losses of disk space. A quota of 100 blocks, which theoretically allows storage of 102,400 bytes, will, however, be saturated with just 100 files of 500 bytes each, only representing 50,000 bytes in total.
i ノード数に対する 2 種類の制限 (ソフトとハード)。各ファイルはファイルの情報 (パーミッション、所有者、最後にアクセスされた時間など) を保存するために少なくとも 1 つの i ノードを専有します。この性質を使うことで、ユーザファイルの数を制限することが可能です。
「ソフト」リミットは一時的に超過できます。しかし、ユーザは warnquota
コマンドからクォータを超過していることに対して簡単な警告を受けます。warnquota
コマンドは通常 cron
コマンドによって呼び出されます。「ハード」リミットは決して超過できません。すなわち、システムはハードクォータを超過するような操作をすべて拒否します。
edquota -t
コマンドを使えば、ソフトリミットの超過を許す「猶予期間」の最長値を定義することが可能です。この期間の後、ソフトリミットはハードリミットと同様に扱われます。ユーザがハードドライブに何かを書き込むには、ディスク領域の使用量を減らしてクォータの制限内に収めなければいけません。