FreeBSD handbook中文版 8 用户和基本的帐户管理( 四 )


passwd: done
8.7 受限制的用户
如果你运行一个多用户系统,你不信任的用户对系统所作的修改可能会损坏你的系统 。
FreeBSD 提供了系统管理员限制用户访问系统资源的方法 。这些限制通常被分成两种:磁盘
配额和其他资源限制 。磁盘配额为系统管理员提供了一个告诉文件系统给用户使用多少磁盘
空间的方法 。而且,它还提供了一种快速检查用户所使用的磁盘数量而不需要时刻计算的方
第8 页FreeBSD 使用手册
法 。配额将在第11 章讨论 。其他资源限制包括限制CPU、memory 的数量和用户可能会使
用的其他资源 。这些是通过对登陆进行分类来完成的,下面将作讨论 。
登陆的类由/etc/login.conf 文件来定义 。比较精确的表述超出了本章的范围,但login.conf
的参考文档会有比较细致的描述 。
资源限制与普通的登陆限制是有区别的 。首先,对于每一种限制,有软限制和硬限制之
分 。一个软限制可能被用户或应用程序调整过了,但不会超越硬限制 。越往后可能会越降低,
但不会升高 。第二,绝大多数资源限制会分配每个处理给一个特殊的用户 。
下面就是绝大多数资源限制的例子:
coredumpsize
很明显,由程序产生的核心文件大小的限制在磁盘使用上是从属于其他限制的(如,
文件大小,或磁盘配额) 。然而,既然用户自己无法产生核心文件,而且经常不删除
它们,设置这个可以减少由于一个大型应用程序的崩溃所造成的大量磁盘空间的浪
费 。
cputime
这是一个用户程序所能消耗掉的最大的CPU 时钟数量 。一些不理想的进程会被内核
杀掉 。
注意:这是一个有关CPU 消耗的时钟的限制问题,不是在使用top 和ps 命令时屏
幕上显示的CPU 消耗的百分比 。
filesize
这是用户可以处理的一个文件的最大值 。不象磁盘配额,这个限制是对单个文件强
制执行的 。
maxproc
这是一个用户可以运行的最大的进程数 。这包括前台和后台处理 。很明显,这不可
能比系统指定的限制要大 。当然,如果设置得太小可能会削弱用户的处理能力:可
能需要多次登陆或执行多个管道 。一些任务,象编译一些大的程序,也可能会产生
多进程 。(象make,cc,和其他一些预处理程序) 。
memorylocked
这是一个进程可能会被锁定到主内存中的最大内存数量 。一些比较大型的程序,象
第9 页FreeBSD 使用手册
amd ,这样做,在遇到问题时,他们得到的巨大交换量无法传递给系统进行处理 。
memoryuse
这是在给定时间内一个进程可能消耗的最大的内存数量 。它包括核心内存和交换内
存 。在限制内存消耗方面,这个不是一个完全的限制,但它是一个好的开始 。
openfiles
这是一个进程可以打开的最大的文件数 。在FreeBSD 中,文件可能用来表现套接字
和IPC 通道;然而,注意不要把这个设置得太小 。对这个更深入的限制是由
kern.maxfiles sysctl 来定义的 。
sbsize
这是网络内存数量的限制 。这可以通过创建许多套接字来生成一些针对老式的Dos
的攻击的回应,但它通常被用来限制网络通讯 。
stacksize
这是一个进程堆栈可能达到的最大值 。这个不能单独地限制一个程序可能使用的内
存数量,而是要和其他的限制一起配合 。
在设置资源限制时,有一些其他的事情需要记住 。下面是一些通常的技巧,建议,和各
种注意事项 。
1. 系统启动的进程会被指派给后台的登陆类 。
2. 虽然来自系统的/etc/login.conf 文件是一个对于绝大多数的限制做合理配置的资源
文件,但只有你,系统管理员,才能知道什么对你的系统才是最适当的 。限制设得

推荐阅读