配额与限制

很多类Unix系统都有支持文件系统配额和进程资源限制的机制。这当然也包括Linux。这些机制在抵御拒绝服务攻击时特别有用;通过限制每个用户的可用资源,可以使单个用户难以耗尽整个系统的资源。但在这里要小心这些术语,因为文件系统配额和进程资源限制都存在“硬”和“软”限制,而其意义有少许差别。

在每个安装点上可以定义存储(文件系统)的配额限制,限制可用的存储块数目或单独文件(inodes)的个数,而且可以对某个给定用户或给定群组设置这样的限制。“硬”配额限制是不可被超过的限制,而“软”配额限制是可以临时超过的。参见quota(1)、quotactl(2)和quotaon(8)。

rlimit机制支持大量的进程配额,如文件大小、子进程数、打开文件数,等等。也存在“软”限制(也叫做当前限制)和“硬”限制(又叫做上限)。软限制任何时刻都不可被超过,但通过调用可以把它增加到硬限制的值。参见getrlimit()、setrlimit()和getrusage()。注意,有多种方法设置这些限制,包括PAM模块pam_limits。