📄 users-limiting.html
字号:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta name="generator" content="HTML Tidy, see www.w3.org" /><title>限制用户使用系统资源</title><meta name="GENERATOR" content="Modular DocBook HTML Stylesheet Version 1.7" /><link rel="HOME" title="FreeBSD 使用手册" href="index.html" /><link rel="UP" title="用户和基本的帐户管理" href="users.html" /><link rel="PREVIOUS" title="修改帐户" href="users-modifying.html" /><link rel="NEXT" title="个性化用户设置" href="users-personalizing.html" /><link rel="STYLESHEET" type="text/css" href="docbook.css" /><meta http-equiv="Content-Type" content="text/html; charset=GB2312" /></head><body class="SECT1" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#840084"alink="#0000FF"><div class="NAVHEADER"><table summary="Header navigation table" width="100%" border="0" cellpadding="0"cellspacing="0"><tr><th colspan="3" align="center">FreeBSD 使用手册</th></tr><tr><td width="10%" align="left" valign="bottom"><a href="users-modifying.html"accesskey="P">Prev</a></td><td width="80%" align="center" valign="bottom">Chapter 8. 用户和基本的帐户管理</td><td width="10%" align="right" valign="bottom"><a href="users-personalizing.html"accesskey="N">Next</a></td></tr></table><hr align="LEFT" width="100%" /></div><div class="SECT1"><h1 class="SECT1"><a id="USERS-LIMITING" name="USERS-LIMITING">8.7.限制用户使用系统资源</a></h1><p>如果你有一些用户, 并且想要对他们所使用的系统资源加以限制. FreeBSD提供了一些系统管理员限制用户访问系统资源的方法. 这些限制通常被分为两种: 磁盘配额,和其它资源限制.</p><p>磁盘配额限制用户对磁盘的使用,而且它还提供一种快速检查用户使用磁盘数量而不需要时刻计算的方法. 配额将在 <ahref="quotas.html">Section 12.12</a>讨论.</p><p>其它资源限制包括CPU,内存的数量和用户可能会使用的其它资源.这些是通过对登陆进行分类完成的,下面将做讨论.</p><p>登陆的类由<tt class="FILENAME">/etc/login.conf</tt>文件定义.比较精确的描述超出了本章的范围, 但 <span class="CITEREFENTRY"><spanclass="REFENTRYTITLE">login.conf</span>(5)</span> 联机手册会有比较详细的描述.可以说每个用户都分配到一个登陆类(<var class="LITERAL">预设</var>是 default),每个登陆类都有一套和它相对应的功能. 登陆功能是 <var class="LITERAL"><varclass="REPLACEABLE">名字</var>=<var class="REPLACEABLE">值</var></var> 的配对, 其中<varclass="REPLACEABLE">名字</var> 是一个众所周知的标识符, <var class="REPLACEABLE">值</var>是一个根据名字经过处理得到的任意字符串. 设置登陆类和功能相当的直接,在 <spanclass="CITEREFENTRY"><spanclass="REFENTRYTITLE">login.conf</span>(5)</span>联机手册会有比较详细的描述.</p><p>资源限制与普通登陆限制是有区别的. 首先, 对于每种限制, 有软限制(比较常见)和硬限制之分.一个软限制可能被用户调整过, 但不会超过硬限制. 越往后可能越低, 但不会升高. 其次,绝大多数资源限制会分配每个进程给一个特殊用户, 而不是用户的全部进程. 注意,这些区别是资源限制的特殊操作所规定的, 不是登陆功能框架的完成(也就是说, 他们<spanclass="emphasis"><i class="EMPHASIS">实际上</i></span> 不是一个登陆功能的特例).</p><p>不再罗嗦了, 下面是绝大多数资源限制的例子 (与其它所有登陆功能相关的内容,你也许可以在<span class="CITEREFENTRY"><spanclass="REFENTRYTITLE">login.conf</span>(5)</span>找到).</p><div class="VARIABLELIST"><dl><dt><var class="LITERAL">coredumpsize</var></dt><dd><p>很明显,由程序产生的核心文件大小的限制在磁盘使用上是属于其它限制的(例如, <varclass="LITERAL">文件大小</var>, 磁盘配额). 不过,既然用户自己无法产生核心文件,而且经常不删除它们,设置这个可以尽量避免由于一个大型应用程序的崩溃所造成的大量磁盘空间的浪费. (例如, <bclass="APPLICATION">emacs</b>) crash.</p></dd><dt><var class="LITERAL">cputime</var></dt><dd><p>这是一个用户程序所能消耗掉的最大CPU时钟数量. 一些不理想的进程会被内核杀掉.</p><div class="NOTE"><blockquote class="NOTE"><p><b>Note:</b> 这是一个有关CPU消耗的<span class="emphasis"><iclass="EMPHASIS">时钟</i></span> 限制, 不是<span class="CITEREFENTRY"><spanclass="REFENTRYTITLE">top</span>(1)</span> 和 <span class="CITEREFENTRY"><spanclass="REFENTRYTITLE">ps</span>(1)</span>命令时屏幕上显示的CPU消耗的百分比. 在写此说明时,后者的限制是是不太可能和没有价值的:一个编译器--编译一个可能是合法的工作--可以在某一时刻轻易的用掉100%的CPU.</p></blockquote></div><br /><br /></dd><dt><var class="LITERAL">filesize</var></dt><dd><p>这是用户可以处理一个文件的最大值.不象<a href="quotas.html">磁盘配额</a>,这个限制是对单个文件强制执行的, 不是用户自己的所有文件.</p></dd><dt><var class="LITERAL">maxproc</var></dt><dd><p>这是一个用户可以运行的最大进程数. 这包括前台和后台进程,很明显,这不可能比系统指定<varclass="VARNAME">kern.maxproc</var>的限制要大 <span class="CITEREFENTRY"><spanclass="REFENTRYTITLE">sysctl</span>(8)</span>.同时也要注意,设置的过小会妨碍用户的处理能力: 可能需要多次登陆或执行多个管道. 一些任务,例如编译一些大的程序, 也可能会产生很多进程 (例如,<span class="CITEREFENTRY"><spanclass="REFENTRYTITLE">make</span>(1)</span>, <span class="CITEREFENTRY"><spanclass="REFENTRYTITLE">cc</span>(1)</span>, 和其它一些预处理程序).</p></dd><dt><var class="LITERAL">memorylocked</var></dt><dd><p>这是一个进程可能会被锁定到主存中的最大内存数量 (例如, 见 <spanclass="CITEREFENTRY"><span class="REFENTRYTITLE">mlock</span>(2)</span>). 一些大型程序,象<span class="CITEREFENTRY"><span class="REFENTRYTITLE">amd</span>(8)</span>,在遇到问题时,它们得到的巨大交换量无法传递给系统进行处理.</p></dd><dt><var class="LITERAL">memoryuse</var></dt><dd><p>这是在给定时间内一个进程可能消耗的最大内存数量. 它包括核心内存和交换内存.在限制内存消耗方面,这不是一个完全的限制,但它是一个好的开始.</p></dd><dt><var class="LITERAL">openfiles</var></dt><dd><p>这是一个进程可以打开的最大文件数. 在FreeBSD中, 文件可以被表现为套接字和IPC通道;注意不要把这个数设置的太小. 更详尽的限制是由 <varclass="VARNAME">kern.maxfiles</var>定义的,见<span class="CITEREFENTRY"><spanclass="REFENTRYTITLE">sysctl</span>(8)</span>.</p></dd><dt><var class="LITERAL">sbsize</var></dt><dd><p>这是网络内存数量的限制, 这可以通过创建许多套接字来生成一些针对老式DOS攻击的回应,但它通常用来被限制网络通信.</p></dd><dt><var class="LITERAL">stacksize</var></dt><dd><p>这是一个进程堆栈可能达到的最大值. 它不能单独的限制一个程序可能使用的内存数量; 所以,它被用来和其它的限制手段配合使用.</p></dd></dl></div><p>在设置资源限制时,有一些其他的事需要记住. 下面是一些通常的技巧, 建议和注意事项.</p><ul><li><p>系统启动的进程<tt class="FILENAME">/etc/rc</tt>会被指派给 <varclass="LITERAL">守护程序</var> 的登陆类.</p></li><li><p>虽然<ttclass="FILENAME">/etc/login.conf</tt>文件是一个对绝大多数限制做合理配置的资源文件,但只有你, 系统管理员, 才知道什么最适合你的系统.设置的太高可能会因为过于开放而造成系统的被人滥用, 设置的过低则会效率很低.</p></li><li><p>使用X Window的用户可能要比其他用户使用更多的资源. 因为X11本身就使用很多资源,但它可以让用户同时运行更多程序.</p></li><li><p>要记得许多限制会被用于单独的处理进程, 不是所有的用户. 例如, 设置 <varclass="VARNAME">openfiles</var>为50,意味着每个用户进程最高只能打开50个文件. 然而,用户可以打开的文件的总的大小是根据<var class="LITERAL">maxproc</var>值逐步增加的<varclass="LITERAL">openfiles</var>值. 这也会影响内存的消耗.</p></li></ul><p>有关资源限制,登陆类的更深入信息可以查看相关联机手册: <span class="CITEREFENTRY"><spanclass="REFENTRYTITLE">cap_mkdb</span>(1)</span>, <span class="CITEREFENTRY"><spanclass="REFENTRYTITLE">getrlimit</span>(2)</span>, <span class="CITEREFENTRY"><spanclass="REFENTRYTITLE">login.conf</span>(5)</span>.</p></div><div class="NAVFOOTER"><hr align="LEFT" width="100%" /><table summary="Footer navigation table" width="100%" border="0" cellpadding="0"cellspacing="0"><tr><td width="33%" align="left" valign="top"><a href="users-modifying.html"accesskey="P">Prev</a></td><td width="34%" align="center" valign="top"><a href="index.html"accesskey="H">Home</a></td><td width="33%" align="right" valign="top"><a href="users-personalizing.html"accesskey="N">Next</a></td></tr><tr><td width="33%" align="left" valign="top">修改帐户</td><td width="34%" align="center" valign="top"><a href="users.html"accesskey="U">Up</a></td><td width="33%" align="right" valign="top">个性化用户设置</td></tr></table></div></body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -