Unix ライクなシステムの多くは、ファイルシステムの割り当て制限(quota)とプロセス のリソース制限を行なう機能を持っています。 もちろん Linux も持っています。 この仕組みはサービス拒否攻撃を防ぐのに特に役立ちます。各ユーザが利用できる リソースを制限することで、単独ユーザがシステム全体のリソースを食い尽くしにくく できます。 この機能には、「ハードな制限」(hard limit)と「ソフトな制限」(soft limit)両方 の意味があり、多少意味が異なるので、注意が必要です。
記憶装置(ファイルシステム)の割り当て制限は、マウントポイント毎に設定が可能で、 特定のユーザやグループがそこで使用できるブロック数やファイル数(inode数)に 制限をかけられます。 「ハードな」ものが制限を越えることができないのに対して、「ソフトな」ものは 一時的に制限を越えることが許されています。 quota(1)、quotactl(2)、quotaon(8)を参照してください。
rlimit は、プロセスに対する数々の割り当て制限を実現する仕組みで、ファイル サイズや子プロセス数、オープンできるファイル数等を扱えます。 「ソフトな」制限(現状の制限(current limit)とも言う)と「ハードな制限」 (上限(upper limit)とも言う)があります。 ソフトな制限を超えることは決してできませんが、システムコールによってハード の上限までもっていくことができます。 getrlimit(2)や setrlimit(2)、getrusage(2)、sysconf(3)、ulimit(1)を参照して ください。 制限をかける方法がいくつかあることに注意してください。PAM モジュールである pam_limits もその 1 つです。