在实际的使用过程中,用户可以降低自身的限制值,但是不能增加限制值。并且,只有root用户才能在/etc/profile文件中增加ulimit选项的设置。因此,图4中所示的增加自身限制值大小的操作是被禁止的;反之,图5种所示的root用户的操作就是允许的(请读者注意图4和图5中使用不同的用户进行操作)。
图4 不允许非root用户增加ulimit值
图5 允许root用户增加ulimit值
另外,值得注意的是:虽然能够采用ulimit值来限制进程创建文件的大小,但是该机制并不能保证用户创建多个相同大小的文件。比如,ulimit的限制值是20KB,那么该机制只能限制进程创建的单个文件大小不能超过20KB,而不能限制进程创建10个甚至100个20KB大小的文件。
Ulimit命令还可以用来限制单个用户(父进程)所能调用的最大子进程个数,以避免某个父进程由于无所限制的创建子进程而造成整个系统崩溃。
图6给出了一个使用ulimit命令限制子进程无限调用的例子。首先,使用脚本编辑来自动生成进程;然后,使用ulimit命令来限制父进程调用的最大子进程个数为8。最后,可以看到当创建到第9个时,系统报错并阻断子进程的再度调用。
图6 使用ulimit限制单个用户调用的最大进程个数
(责任编辑:闫小琪)