Dennis Ritchie在上面那篇论文中说到:
“UNIX的设计理念和具体实现都没有考虑安全,这个问题本身就导致了大量的安全漏洞。”
其实不只是UNIX,大多数系统在设计之初都没有考虑安全因素。通常的做法是在随后的发展过程中,系统设计者以不同的方式应对安全带来的挑战,UNIX也不例外。为了限制用户对硬盘空间资源的使用,UNIX提供了配额(quota)机制。为了限制用户创建的进程数量以及其他资源,UNIX提供了资源限制(Resource Limit,简称rlimit)机制。但是这两种机制都有相同的问题:
(1)分散式管理。
配额机制提供了一个系统调用:
quotactl可以打开或关闭某个文件系统的配额管理,可以查看或设置某个用户/用户组的配额值。配额数据存储在单个文件系统中,要想得到系统全貌,需要汇总系统中所有的文件系统的配额数据。配额机制的分散性还不明显,因为系统中挂载的文件系统一般不会太多。(www.xing528.com)
资源限制机制提供了三个系统调用:
前两个系统调用用来读取或设置调用者进程的“rlimit”。第三个系统调用“prlimit”是Linux特有的系统调用。它用来读取或设置某一个进程的“rlimit”值。如果这个由参数pid制定的进程不是调用者进程,那么调用者进程需要拥有能力CAP_SYS_RESOURCE。
分散式管理在资源限制机制上比较明显。读取或设置单个进程的“rlimit”值是容易的,但是要针对某一类进程进行设置是困难的。查看某一类进程的资源限制整体状况也是困难的。比如查看所有网络相关进程占用的内存,再比如查看某个用户创建的进程总数。
(2)没有统一的资源管理机制。配额有一套机制,资源限制有另一套机制。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。