Update handbook to be in sync with the English version.

MFen:
	Makefile:	1.97 -> 1.99 [2]
	book.sgml:	1.164 -> 1.165 [2]
	chapters.ent:	1.33 -> 1.34 [2]
	preface/preface.sgml: 1.30 -> 1.31 [2]
	disks/chapter.sgml 1.256 -> 1.257
	mac/chapter.sgml: 1.53 -> 1.65
	mirrors/chapter.sgml: 1.412 -> 1.416
	ports/chapter.sgml: 1.253 -> 1.256
	security/chapter.sgml: 1.292 -> 1.293

While I'm there, merge language improvements done at the FreeBSD
Simplified Chinese Project:
	advanced-networking/chapter.sgml
	basics/chapter.sgml [1]
	config/chapter.sgml
	cutting-edge/chapter.sgml [1]
	disks/chapter.sgml [1]
	install/chapter.sgml
	linuxemu/chapter.sgml [1]
	ppp-and-slip/chapter.sgml [1]
	printing/chapter.sgml
	users/chapter.sgml
	vinum/chapter.sgml
	x11/chapter.sgml

Some significant part submitted by:	delhua [1]
[2] was part of the nanobsd contents

Obtained from:	The FreeBSD Simplified Chinese Project
This commit is contained in:
Xin LI 2006-05-07 17:57:32 +00:00
parent 203607eebc
commit d66ba51686
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=27740
20 changed files with 616 additions and 723 deletions

View file

@ -3,7 +3,7 @@
# #
# Build the FreeBSD Handbook (Simplified Chinese). # Build the FreeBSD Handbook (Simplified Chinese).
# #
# Original revision: 1.97 # Original revision: 1.99
# ------------------------------------------------------------------------ # ------------------------------------------------------------------------
# #
@ -177,6 +177,7 @@ SRCS+= mac/chapter.sgml
SRCS+= mail/chapter.sgml SRCS+= mail/chapter.sgml
SRCS+= mirrors/chapter.sgml SRCS+= mirrors/chapter.sgml
SRCS+= multimedia/chapter.sgml SRCS+= multimedia/chapter.sgml
SRCS+= nanobsd/chapter.sgml
SRCS+= network-servers/chapter.sgml SRCS+= network-servers/chapter.sgml
SRCS+= pgpkeys/chapter.sgml SRCS+= pgpkeys/chapter.sgml
SRCS+= ports/chapter.sgml SRCS+= ports/chapter.sgml

View file

@ -579,7 +579,7 @@ route_net2="-net 192.168.1.0/24 192.168.1.1"</programlisting>
它一直跟踪被分配的地址空间, 它一直跟踪被分配的地址空间,
并说明它们连接到互联网骨干(Internet backbone)的点。 并说明它们连接到互联网骨干(Internet backbone)的点。
<quote>骨干(Backbone)</quote> 指的是负责全世界和跨国的传输的主要干线。 <quote>骨干(Backbone)</quote> 指的是负责全世界和跨国的传输的主要干线。
每一台骨干主机(backbone machine)有一份主要表集的拷贝 每一台骨干主机(backbone machine)有一份主要表集的副本
它将发送给特定网络的数据导向相应的骨干载体上(backbone carrier) 它将发送给特定网络的数据导向相应的骨干载体上(backbone carrier)
从结点往下遍历服务提供商链,直到数据到达您的网络。</para> 从结点往下遍历服务提供商链,直到数据到达您的网络。</para>

View file

@ -107,9 +107,11 @@ login:</screen>
<para>这一行是您刚才启动的系统信息其中一块, <para>这一行是您刚才启动的系统信息其中一块,
您所看到的是一个<quote>FreeBSD</quote>控制台, 您所看到的是一个<quote>FreeBSD</quote>控制台,
运行在一个Intel或兼容的x86体系架构上面<footnote> 运行在一个Intel或兼容的x86体系架构上面<footnote>
<para>现在理解一下<literal>i386</literal>的含义。 请注意 <para>现在理解一下<literal>i386</literal>的含义。
即使您的 FreeBSD 不是运行在一个 Intel 386 CPU 都会定为<literal>i386</literal>。 请注意尽管您的 FreeBSD 并非在 Intel 386 CPU
他不是指您的处理器,而处理器的<quote>体系结构</quote>已经显示过去了。</para> 上运行, 但也会显示为 <literal>i386</literal>。
这不是指您的处理器, 而是指处理器的
<quote>体系结构</quote>。</para>
</footnote>。这个结构名称 (每一种&unix;结构都有自己的名称) 叫 </footnote>。这个结构名称 (每一种&unix;结构都有自己的名称) 叫
<hostid>pc3.example.org</hostid> 就是现在这个系统控制台&mdash;这个 <devicename>ttyv0</devicename> <hostid>pc3.example.org</hostid> 就是现在这个系统控制台&mdash;这个 <devicename>ttyv0</devicename>
终端的样子。</para> 终端的样子。</para>
@ -383,9 +385,9 @@ total 530
<para>目录也视为一种文件,也有读取、写入、执行的权限。 <para>目录也视为一种文件,也有读取、写入、执行的权限。
但目录的执行权限意义并不与普通文件相同, 但目录的执行权限意义并不与普通文件相同,
实际上执行权限是进入权限。 实际上执行权限是进入权限。
当一个目录是被标示可以执行的时候,那表示它可以被进入 当一个目录是被标示可以执行的时 表示可以进入它
利用 <quote>cd</quote> (变化目录位置)可以进入 或者换言之, 利用 <quote>cd</quote> (改变当前目录) 进入它
这意味着访问这些目录必须是谁才有权力 此外, 这也表示有权进入目录的用户, 可以访问其下的已知名字的文件
(当然目录下的文件也受到访问限制)。</para> (当然目录下的文件也受到访问限制)。</para>
<para>详细方面,想读取一个目录的列表就必须设为可读权限, <para>详细方面,想读取一个目录的列表就必须设为可读权限,

View file

@ -2,7 +2,7 @@
The FreeBSD Documentation Project The FreeBSD Documentation Project
The FreeBSD Simplified Chinese Documentation Project The FreeBSD Simplified Chinese Documentation Project
Original Revision: 1.164 Original Revision: 1.165
$FreeBSD$ $FreeBSD$
--> -->
@ -40,6 +40,7 @@
<!ENTITY % chap.network-servers "IGNORE"> <!ENTITY % chap.network-servers "IGNORE">
<!ENTITY % chap.mail "IGNORE"> <!ENTITY % chap.mail "IGNORE">
<!ENTITY % chap.cutting-edge "IGNORE"> <!ENTITY % chap.cutting-edge "IGNORE">
<!ENTITY % chap.nanobsd "IGNORE">
<!ENTITY % chap.linuxemu "IGNORE"> <!ENTITY % chap.linuxemu "IGNORE">
<!ENTITY % chap.mirrors "IGNORE"> <!ENTITY % chap.mirrors "IGNORE">
<!ENTITY % chap.bibliography "IGNORE"> <!ENTITY % chap.bibliography "IGNORE">
@ -140,13 +141,13 @@
url="http://www.FreeBSD.org/">FreeBSD Web站点</ulink> 上获得 url="http://www.FreeBSD.org/">FreeBSD Web站点</ulink> 上获得
(这本手册的较早期版本可以在 <ulink (这本手册的较早期版本可以在 <ulink
url="http://docs.FreeBSD.org/doc/"></ulink> 找到) url="http://docs.FreeBSD.org/doc/"></ulink> 找到)
最新中文译本可从<ulink url='&cnproj.url.base;/'>&cnproj.freebsd.org; Web站点</ulink>获得。 最新中文译本可从 <ulink url='&cnproj.url.base;/'>&cnproj.freebsd.org; Web站点</ulink> 获得。
其他的各种格式和压缩的文档可以从 <ulink 此外, 您也可以从 <ulink
url="ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/">FreeBSD 的 FTP url="ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/">FreeBSD 的 FTP
服务器</ulink>或下列其中的一个<link 服务器</ulink> 或众多的 <link
linkend="mirrors-ftp">镜像站点</link>下载获得 linkend="mirrors-ftp">镜像站点</link> 得到这份文档的各种其他格式以及压缩形式的版本
如果您更希望得到一份印刷版本的手册,可以从 如果您更希望得到一份印刷版本的手册, 可以从
<ulink url="http://www.FreeBSDmall.com/">FreeBSD Mall</ulink> 购买. 您还可以<ulink <ulink url="http://www.FreeBSDmall.com/">FreeBSD Mall</ulink> 购买。 您还可以 <ulink
url="&url.base;/search/index.html">搜索手册</ulink>。</para> url="&url.base;/search/index.html">搜索手册</ulink>。</para>
</abstract> </abstract>
</bookinfo> </bookinfo>
@ -253,6 +254,7 @@
<![ %chap.vinum; [ &chap.vinum; ]]> <![ %chap.vinum; [ &chap.vinum; ]]>
<![ %chap.l10n; [ &chap.l10n; ]]> <![ %chap.l10n; [ &chap.l10n; ]]>
<![ %chap.cutting-edge; [ &chap.cutting-edge; ]]> <![ %chap.cutting-edge; [ &chap.cutting-edge; ]]>
<![ %chap.nanobsd; [ &chap.nanobsd; ]]>
</part> </part>
<part id="network-communication"> <part id="network-communication">

View file

@ -6,7 +6,7 @@
Chapters should be listed in the order in which they are referenced. Chapters should be listed in the order in which they are referenced.
Original revision: 1.33 Original revision: 1.34
$FreeBSD$ $FreeBSD$
--> -->
@ -38,6 +38,7 @@
<!ENTITY chap.vinum SYSTEM "vinum/chapter.sgml"> <!ENTITY chap.vinum SYSTEM "vinum/chapter.sgml">
<!ENTITY chap.l10n SYSTEM "l10n/chapter.sgml"> <!ENTITY chap.l10n SYSTEM "l10n/chapter.sgml">
<!ENTITY chap.cutting-edge SYSTEM "cutting-edge/chapter.sgml"> <!ENTITY chap.cutting-edge SYSTEM "cutting-edge/chapter.sgml">
<!ENTITY chap.nanobsd SYSTEM "nanobsd/chapter.sgml">
<!-- Part four --> <!-- Part four -->
<!ENTITY chap.serialcomms SYSTEM "serialcomms/chapter.sgml"> <!ENTITY chap.serialcomms SYSTEM "serialcomms/chapter.sgml">

View file

@ -198,7 +198,7 @@
<para>系统管理员应该在 <filename>rc.conf</filename> 文件中建立记录来覆盖 <para>系统管理员应该在 <filename>rc.conf</filename> 文件中建立记录来覆盖
<filename>/etc/defaults/rc.conf</filename> 中的默认设置。 <filename>/etc/defaults/rc.conf</filename> 中的默认设置。
这个默认文件不应该被逐字的拷贝 这个默认文件不应该被逐字的复制
<filename>/etc</filename> —— 它包含的是默认值而不是一个例子。 <filename>/etc</filename> —— 它包含的是默认值而不是一个例子。
所有特定的改变应该在 <filename>rc.conf</filename> 中。</para> 所有特定的改变应该在 <filename>rc.conf</filename> 中。</para>
@ -248,7 +248,7 @@
<para>通常,当一个 port 或者 package 被安装的时候, <para>通常,当一个 port 或者 package 被安装的时候,
配置文件示例也同样被安装了。它们通常用 <filename>.default</filename> 配置文件示例也同样被安装了。它们通常用 <filename>.default</filename>
的后缀来标识。如果不存在这个应用程序的配置文件,它们会通过拷贝 的后缀来标识。如果不存在这个应用程序的配置文件, 它们会通过复制
<filename>.default</filename> 文件来创建。</para> <filename>.default</filename> 文件来创建。</para>
<para>例如,看一下这个目下的内容 <filename>/usr/local/etc/apache</filename></para> <para>例如,看一下这个目下的内容 <filename>/usr/local/etc/apache</filename></para>

View file

@ -89,16 +89,16 @@
<indexterm><primary>STABLE</primary></indexterm> <indexterm><primary>STABLE</primary></indexterm>
<para>FreeBSD有两个开发分支&os.current; 和 &os.stable;。 <para>FreeBSD有两个开发分支&os.current; 和 &os.stable;。
这部分将对每个做些说明,并且讲述您的系统如何与各自的树一同保持最新。 这部分将对它们都做些说明, 并介绍您的系统如何与各自的树一同保持最新。
先讨论 &os.current;,然后是 &os.stable;。</para> 我们将首先讨论 &os.current; 随后讨论 &os.stable;。</para>
<sect2 id="current"> <sect2 id="current">
<title>使用最新的 &os; CURRENT</title> <title>使用最新的 &os; CURRENT</title>
<para>我们再次强调, &os.current; 是 &os; <para>这里再次强调, &os.current; 是 &os;
开发的<quote>最前沿</quote>。&os.current; 开发的 <quote>最前沿</quote>。 &os.current;
用户要有较高的技术能力,并且应该有能力自已解决困难的系统问题。 用户要有较高的技术能力, 并且应该有能力自已解决困难的系统问题。
如果您是个 &os; 新手,那么在安装之前最好三思。</para> 如果您是个 &os; 新手, 那么在安装之前最好三思。</para>
<sect3> <sect3>
<title>&os.current; 是什么?</title> <title>&os.current; 是什么?</title>
@ -106,10 +106,11 @@
<para>&os.current; 是 &os; 的发展前沿。 <para>&os.current; 是 &os; 的发展前沿。
包括了在下一个官方发行的软件中可能存在, 包括了在下一个官方发行的软件中可能存在,
也可能不存在的发展、实验性变化、传统机制。由于许多 也可能不存在的发展、 试验性改动、 以及过渡性的机制。 尽管许多
&os; 开发者每天编译 &os.current; 源代码,有时这些代码会是不能编译的。 &os; 开发者每天都会编译 &os.current; 源代码,
虽然这些问题会很快解决,但不管是 &os.current; 引起的破坏还是急切的泛涵性 但有时这些代码仍然会是不能编译的。 虽然这些问题会很快解决,
(greatly desired functionality) 都将是在您获取源代码的的时候值得注意的!</para> 但 &os.current; 是带来破坏还是您正希望的功能性改善,
很可能完全取决于您获取源代码的的时机!</para>
</sect3> </sect3>
<sect3> <sect3>
@ -126,7 +127,7 @@
<listitem> <listitem>
<para>&os; 社区的成员: 为促使 &os.current; <para>&os; 社区的成员: 为促使 &os.current;
保持尽可能的健全而愿花时间去解决问题的积极的测试 保持尽可能的健全而愿花时间去解决问题的积极的测试
以及那些愿意提出关于 &os; 以及那些愿意提出关于 &os;
变化和总体方向的建设性建议并且提供补丁实现它们的人们。</para> 变化和总体方向的建设性建议并且提供补丁实现它们的人们。</para>
</listitem> </listitem>
@ -196,7 +197,7 @@
<listitem> <listitem>
<para>从&os; <link <para>从&os; <link
linkend="mirrors">镜像站点</link>获取源码。您有两种方式选择:</para> linkend="mirrors">镜像站点</link> 获取源码。 您有两种方式选择:</para>
<orderedlist> <orderedlist>
<indexterm> <indexterm>
@ -671,11 +672,11 @@
<title>改为单用户模式</title> <title>改为单用户模式</title>
<indexterm><primary>单用户 模式</primary></indexterm> <indexterm><primary>单用户 模式</primary></indexterm>
<para>您可能在单用户模式下编译系统。 <para>您可能在单用户模式下编译系统。
除了对更快处理事情显然有好处外,重装系统将触许多重要的系统文件, 除了对更快处理事情显然有好处外, 重装系统将触许多重要的系统文件,
包括所有标准系统二进制文件、库文件、包含 (include) 包括所有标准系统二进制文件、库文件、包含 (include)
文件等等。在运行的系统里(尤其是同时系统里有激活的用户) 文件等等。 在正运行的系统 (尤其是在有活跃的用户的时候)
更改这些文件是自寻烦恼。</para> 更改这些文件是自寻烦恼。</para>
<indexterm><primary>多用户模式</primary></indexterm> <indexterm><primary>多用户模式</primary></indexterm>
<para>另一种模式是在多用户模式下编译系统,然后转换到单用户模式下安装。 <para>另一种模式是在多用户模式下编译系统,然后转换到单用户模式下安装。
@ -698,9 +699,9 @@
&prompt.root; <userinput>mount -a -t ufs</userinput> &prompt.root; <userinput>mount -a -t ufs</userinput>
&prompt.root; <userinput>swapon -a</userinput></screen> &prompt.root; <userinput>swapon -a</userinput></screen>
<para>这会检查文件系统,重新装载 <filename>/</filename> <para>这会检查文件系统,重新 <filename>/</filename>
为读/写,参考 <filename>/etc/fstab</filename> 以读/写模式挂接, 参考 <filename>/etc/fstab</filename>
装载其它所有的 UFS 文件系统,然后打开交换 (swapping) 开关。</para> 挂接其它所有的 UFS 文件系统,然后启用交换区。</para>
<note> <note>
@ -836,19 +837,19 @@ Script done, &hellip;</screen>
但是依然推荐您在单用户模式时运行 但是依然推荐您在单用户模式时运行
<maketarget>installworld</maketarget>。</para> <maketarget>installworld</maketarget>。</para>
<para>第二,允许您使用 NFS 装载 (NFS mounts) <para>第二,允许您使用 NFS 挂接 (NFS mounts)
升级您网络里的多台计算机。如果您有三台 升级您网络里的多台计算机。如果您有三台
<hostid>A</hostid>、<hostid>B</hostid> 和 <hostid>C</hostid> <hostid>A</hostid>、<hostid>B</hostid> 和 <hostid>C</hostid>
想进行升级,在<hostid>A</hostid> 执行 想进行升级,在<hostid>A</hostid> 执行
<command>make buildworld</command> 和 <command>make buildworld</command> 和
<command>make installworld</command>。然后从 <command>make installworld</command>。 然后将
<hostid>A</hostid> NFS 装载 (NFS mount) <hostid>A</hostid> 上的
<hostid>B</hostid> 和 <hostid>C</hostid> 的
<filename>/usr/src</filename> 和 <filename>/usr/src</filename> 和
<filename>/usr/obj</filename>,接着您就执行 <filename>/usr/obj</filename> 通过 NFS 挂接到
<command>make installworld</command> 在 <hostid>B</hostid> 和 <hostid>C</hostid> 上, 接下来, 只需在
<hostid>B</hostid> 和 <hostid>C</hostid> <hostid>B</hostid> 和 <hostid>C</hostid> 上使用
上安装建立 (build) 的结果。</para> <command>make installworld</command>
来安装构建的结果就可以了。</para>
<para>尽管 <maketarget>world</maketarget> target <para>尽管 <maketarget>world</maketarget> target
仍然存在,强烈建议您不要用它。</para> 仍然存在,强烈建议您不要用它。</para>
@ -1263,9 +1264,9 @@ Script done, &hellip;</screen>
</note> </note>
<para>为了完成,您可能想额外地更新 <filename>/stand</filename> <para>为了完成,您可能想额外地更新 <filename>/stand</filename>
里的文件。这些文件由链接到 <filename>/stand/sysinstall</filename> 里的文件。 这些文件由连接到 <filename>/stand/sysinstall</filename>
的二进制文件硬链接组成。这个文件要静态链接,以便没有其它文件系统时 的二进制文件硬连接组成。 这个文件要静态连接, 以在没有挂接其它文件系统时
(尤其是 <filename>/usr</filename>) 被装载时也能工作。</para> (特别是 <filename>/usr</filename>) 时也能工作。</para>
<screen>&prompt.root; <userinput>cd /usr/src/release/sysinstall</userinput> <screen>&prompt.root; <userinput>cd /usr/src/release/sysinstall</userinput>
&prompt.root; <userinput>make all install</userinput></screen> &prompt.root; <userinput>make all install</userinput></screen>
@ -1316,8 +1317,8 @@ Script done, &hellip;</screen>
<para>这就不必重建整个系统。您只需到相关的子目录里执行 <para>这就不必重建整个系统。您只需到相关的子目录里执行
<command>make all install</command>,仅此而已。 <command>make all install</command>,仅此而已。
但是,如果有重大变化,如 <filename>src/lib/libc/stdlib</filename> 但是,如果有重大变化,如 <filename>src/lib/libc/stdlib</filename>
那么您就要重建系统或至少静态接的那些部分 那么您就要重建系统或至少静态接的那些部分
(除了您增加的部分都是静态接的)。</para> (除了您增加的部分都是静态接的)。</para>
<para>在这天后,就是您的事了。要是说每两个星期重建一下系统的话, <para>在这天后,就是您的事了。要是说每两个星期重建一下系统的话,
您可能会高兴。或者您可能只想重做改变过的部分, 您可能会高兴。或者您可能只想重做改变过的部分,
@ -1458,30 +1459,30 @@ Building everything..
</listitem> </listitem>
<listitem><para>存放 <filename>/usr/src</filename> 的文件系统可以使用 <listitem><para>存放 <filename>/usr/src</filename> 的文件系统可以使用
<option>noatime</option> 选项被装载(或再装载)。 <option>noatime</option> 选项来挂接 (或重新挂接)。
这样会防止文件系统记录文件的存取时间。您可能并不需要这些信息。</para> 这样会防止文件系统记录文件的存取时间。 您可能并不需要这些信息。</para>
<screen>&prompt.root; <userinput>mount -u -o noatime /usr/src</userinput></screen> <screen>&prompt.root; <userinput>mount -u -o noatime /usr/src</userinput></screen>
<warning> <warning>
<para>这个例子里假定 <filename>/usr/src</filename> <para>这个例子里假定 <filename>/usr/src</filename>
是在它自已的文件系统里。如果不是 (例如假设它是 是在它自已的文件系统里。如果不是 (例如假设它是
<filename>/usr</filename> 的部分),那么您就需要那个文件系统装载点, <filename>/usr</filename> 的部分),那么您就需要那个文件系统挂接点,
而不是 <filename>/usr/src</filename>。</para> 而不是 <filename>/usr/src</filename>。</para>
</warning> </warning>
</listitem> </listitem>
<listitem> <listitem>
<para>存放 <filename>/usr/obj</filename> 的文件系统可以使用 <para>存放 <filename>/usr/obj</filename> 的文件系统可以使用
<option>async</option> 选项被装载(或被再装载)。 <option>async</option> 选项被挂接 (或重新挂接)。
会引起异步写盘。换句话说,写是立即完成了 样做将启用异步写盘。 换句话说, 对应用程序而言写会立即完成
而数据要延迟几秒才会写到盘里。这就允许写到一堆 而数据则延迟几秒才会写到盘里。 这样做能够成批地写下数据
如此产生戏剧性的性能提高。</para> 从而极大地改善性能。</para>
<warning> <warning>
<para>记住,这个选项会使您的文件系统更加脆弱。 <para>注意, 这个选项会使您的文件系统变得脆弱。
使用这个选项增大了这样一个机率:要是电源断了 使用这个选项会提高在电源断掉或机器非正常重启时
在机器重启后,文件系统将处在不可恢复状态。</para> 文件系统进入不可恢复状态的概率。</para>
<para>如果在这个文件系统里 <filename>/usr/obj</filename> <para>如果在这个文件系统里 <filename>/usr/obj</filename>
是很关键的,这不是问题。如果您有其它有价值的数据在同一个文件系统, 是很关键的,这不是问题。如果您有其它有价值的数据在同一个文件系统,
@ -1492,7 +1493,7 @@ Building everything..
<warning> <warning>
<para>同上,如果 <filename>/usr/obj</filename> <para>同上,如果 <filename>/usr/obj</filename>
不在自已的文件系统里,使用相关装载点的名字把它从例子里边替换掉。</para> 不在自已的文件系统里,使用相关挂接点的名字把它从例子里边替换掉。</para>
</warning> </warning>
</listitem> </listitem>
</itemizedlist> </itemizedlist>
@ -1545,72 +1546,72 @@ Building everything..
那么让它们都下载源码并重建所有东西,看起有点浪费资源: 那么让它们都下载源码并重建所有东西,看起有点浪费资源:
磁盘空间、网络带宽以及 CPU 周期。 磁盘空间、网络带宽以及 CPU 周期。
解决的办法是让一台机器处理大部分的工作,而其它的机器通过 解决的办法是让一台机器处理大部分的工作,而其它的机器通过
NFS 装载 (mount) 这些工作。这部分列举了一种这样做的方法。</para> NFS 挂接 (mount) 这些工作。这部分列举了一种这样做的方法。</para>
<sect2 id="small-lan-preliminaries"> <sect2 id="small-lan-preliminaries">
<title>准备</title> <title>准备</title>
<para>首先,确定一批机器,运行的二进制代码是同一套---我们称作 <para>首先,确定一批机器,运行的二进制代码是同一套---我们称作
<emphasis>建造套件(build set)</emphasis>。每台机器可以有定制内核, <emphasis>构建集群 (build set)</emphasis>。 每台机器可以使用不同的定制内核,
们运行的是相同的用户区二进制文件(userland binaries)。 们运行的是相同的用户区二进制文件(userland binaries)。
从这批机器中选择一台机器做为 <emphasis>建机器(build machine)</emphasis>。 从这批机器中选择一台机器做为 <emphasis>建机器(build machine)</emphasis>。
这将是用于建(build)系统和内核的机器。想像一下,它应该是一台快速的机器, 这将是用于建(build)系统和内核的机器。想像一下,它应该是一台快速的机器,
有足够的空余的 CPU 来执行<command>make buildworld</command>。 有足够的空余的 CPU 来执行<command>make buildworld</command>。
您也想要选一台机器做为 <emphasis>测试机器(test machine)</emphasis> 您也想要选一台机器做为 <emphasis>测试机器(test machine)</emphasis>
这个将用于软件的更新生成产品之前对他们进行测试。这个 这个将用于软件的更新生成产品之前对他们进行测试。这个
<emphasis>必须</emphasis> 是一台您能提供的平时也可使用的机器。 <emphasis>必须</emphasis> 是一台您能提供的平时也可使用的机器。
它可以是<quote>建机器</quote>,但没这个必要。</para> 它可以是<quote>建机器</quote>,但没这个必要。</para>
<para>在这个<quote>建造套件</quote>里的所有机器需要从同一台机器、 <para>在这个<quote>构建集群</quote>里的所有机器需要从同一台机器、
同一个点上装载 <filename>/usr/obj</filename> 和 同一个点上挂接 <filename>/usr/obj</filename> 和
<filename>/usr/src</filename>。理想地, <filename>/usr/src</filename>。理想地,
它们在<quote>建机器</quote>上的两个不同的驱动器里, 它们在<quote>建机器</quote>上的两个不同的驱动器里,
但是在那台机器上可以进行 NFS 装载。如果您有多个<quote>建造套件</quote> 但是在那台机器上可以进行 NFS 挂接。如果您有多个<quote>构建集群</quote>
<filename>/usr/src</filename> 应该在某个<quote>建机器</quote>上, <filename>/usr/src</filename> 应该在某个<quote>建机器</quote>上,
而在其它机器上进行 NFS 装载。</para> 而在其它机器上进行 NFS 挂接。</para>
<para>最后,确认<quote>建造套件</quote>里所有机器上的 <para>最后,确认<quote>构建集群</quote>里所有机器上的
<filename>/etc/make.conf</filename> 与<quote>建机器</quote>里的相同。 <filename>/etc/make.conf</filename> 与<quote>建机器</quote>里的相同。
这意味着<quote>建机器</quote>必须建部分基本系统用于 这意味着<quote>建机器</quote>必须建部分基本系统用于
<quote>建造套件</quote>里所有机器的安装。同样, <quote>构建集群</quote>里所有机器的安装。同样,
每台<quote>建机器</quote>要有它自已的内核名字,使用 每台<quote>建机器</quote>要有它自已的内核名字,使用
<filename>/etc/make.conf</filename> 里的 <makevar>KERNCONF</makevar> <filename>/etc/make.conf</filename> 里的 <makevar>KERNCONF</makevar>
进行设置,并且每台<quote>建机器</quote>应该把它们列在 进行设置,并且每台<quote>建机器</quote>应该把它们列在
<makevar>KERNCONF</makevar> 里,同时把自已的内核列在最前。 <makevar>KERNCONF</makevar> 里,同时把自已的内核列在最前。
<quote>建机器</quote>的 <quote>建机器</quote>的
<filename>/usr/src/sys/<replaceable>arch</replaceable>/conf</filename> <filename>/usr/src/sys/<replaceable>arch</replaceable>/conf</filename>
里一定要有每台机器的内核配置文件,如果它想建它们的内核的话。</para> 里一定要有每台机器的内核配置文件,如果它想建它们的内核的话。</para>
</sect2> </sect2>
<sect2> <sect2>
<title>基本系统</title> <title>基本系统</title>
<para>既然所有的妥当了,就准备建所有的东西。如<xref <para>既然所有的妥当了,就准备建所有的东西。如<xref
linkend="make-buildworld">中描述的一样在<quote>建机器</quote>上建内核和系统, linkend="make-buildworld">中描述的一样在<quote>建机器</quote>上建内核和系统,
但是什么也不安装。在建结束后,转到<quote>测试机器</quote>上, 但是什么也不安装。在建结束后,转到<quote>测试机器</quote>上,
安装您刚建造的内核。如果这台机器通过 NFS 装载 安装您刚构建的内核。如果这台机器通过 NFS 挂接
<filename>/usr/src</filename> 和 <filename>/usr/obj</filename> <filename>/usr/src</filename> 和 <filename>/usr/obj</filename>
在您重启到单用户模式里,您需要启动网络然后装载他们。 在您重启到单用户模式里,您需要启动网络然后挂接他们。
最简单的方式是启动到多用户模式下,然后执行 <command>shutdown now</command> 最简单的方式是启动到多用户模式下,然后执行 <command>shutdown now</command>
转到单用户模式。一旦进入,您就可以安装新的内核和系统,并执行 转到单用户模式。一旦进入,您就可以安装新的内核和系统,并执行
<command>mergemaster</command>,就像平常一样。完成后, <command>mergemaster</command>,就像平常一样。完成后,
重启返回到一般多用户模式操作这台机器。</para> 重启返回到一般多用户模式操作这台机器。</para>
<para>在您确信所有在<quote>测试机</quote>里都工作正常后, <para>在您确信所有在 <quote>测试机</quote>里都工作正常后,
就使用相同的过程在<quote>建造套件</quote>里的其它机器里安装新的软件。</para> 就使用相同的过程在 <quote>构建集群</quote>里的其它机器里安装新的软件。</para>
</sect2> </sect2>
<sect2> <sect2>
<title>Ports</title> <title>Ports</title>
<para>类似的想法是使用 ports 树。 <para>类似的想法是使用 ports 树。
第一个关键的步骤是从同一台机子里装载 第一个关键的步骤是从同一台计算机上挂接
<filename>/usr/ports</filename> 到<quote>建造套件</quote>里的所有机子 <filename>/usr/ports</filename> 到 <quote>构建集群</quote> 里的全部计算机
然后正确设置 <filename>/etc/make.conf</filename> 共享 然后正确设置 <filename>/etc/make.conf</filename> 共享
distfiles。您应把 <makevar>DISTDIR</makevar> 设置到一个共享的目录里, distfiles。您应把 <makevar>DISTDIR</makevar> 设置到一个共享的目录里,
那里可以被任何一个 <username>root</username> 用户写入,并且是由您的 那里可以被任何一个 <username>root</username> 用户写入, 并且是由您的
NFS 装载映射的。设置每一台机子的 <makevar>WRKDIRPREFIX</makevar> NFS 挂接映射的。 设置每一台机器的 <makevar>WRKDIRPREFIX</makevar>
到一个本地建 (build) 目录。最后,如果您要建和发布包 到一个本地建 (build) 目录。最后,如果您要建和发布包
(packages),那么您应该设置 <makevar>PACKAGES</makevar> (packages),那么您应该设置 <makevar>PACKAGES</makevar>
到一个类似于 <makevar>DISTDIR</makevar> 的目录。</para> 到一个类似于 <makevar>DISTDIR</makevar> 的目录。</para>
</sect2> </sect2>

View file

@ -2,7 +2,7 @@
The FreeBSD Documentation Project The FreeBSD Documentation Project
The FreeBSD Simplified Chinese Project The FreeBSD Simplified Chinese Project
Original Revision: 1.256 Original Revision: 1.257
$FreeBSD$ $FreeBSD$
--> -->
@ -318,7 +318,7 @@
<note><para>从 &os;&nbsp;5.1-RELEASE 版本开始, &man.bsdlabel.8; 程序代替了 <note><para>从 &os;&nbsp;5.1-RELEASE 版本开始, &man.bsdlabel.8; 程序代替了
老版本的 &man.disklabel.8; 程序。&man.bsdlabel.8; 中大量过时的选项 老版本的 &man.disklabel.8; 程序。&man.bsdlabel.8; 中大量过时的选项
和参数也被取消。在上面的例子中选项 <option>-r</option> 可以使用 和参数也被取消。在上面的例子中选项 <option>-r</option> 可以使用
&man.bsdlabel.8;程序来删除。更多的信息,请参考 &man.bsdlabel.8; 手册 &man.bsdlabel.8;程序来删除。更多的信息,请参考 &man.bsdlabel.8; 联机手册。
</para></note> </para></note>
</sect3> </sect3>
</sect2> </sect2>
@ -373,10 +373,9 @@
<title>安装硬件</title> <title>安装硬件</title>
<para>除了 IDE 系统磁盘外,还有三个 Western Digital 30GB、5400 RPM <para>除了 IDE 系统磁盘外,还有三个 Western Digital 30GB、5400 RPM
的 IDE 磁盘构成了大约 90G 的连接磁盘驱动存储空间。最好是每个 IDE 硬盘 的 IDE 磁盘构成了大约 90G 的连接磁盘驱动存储空间。 理想情况是每个 IDE
都使用一个自己的 IDE 控制器和数据线,为了降低成本,没有使用更多的 硬盘都独占 IDE 控制器和数据线, 但为了尽可能降低成本, 通常并不会安装更多的控制器,
IDE 控制器,取而代之配置跳线使每个 IDE 控制器都拥有一个主盘和一个 而是通过配置跳线,使每个 IDE 控制器都管理一个主盘和一个从盘。</para>
从盘。</para>
<para>重启动后,系统 BIOS 被配置成自动检测硬盘。FreeBSD 检测到它们:</para> <para>重启动后,系统 BIOS 被配置成自动检测硬盘。FreeBSD 检测到它们:</para>
@ -445,7 +444,7 @@ disklabel -e ad3</programlisting>
c: 60074784 0 unused 0 0 0 # (Cyl. 0 - 59597)</programlisting> c: 60074784 0 unused 0 0 0 # (Cyl. 0 - 59597)</programlisting>
<para>添加一个新的 <literal>e</literal> 分区给 &man.ccd.4; 用。这可以是 <para>添加一个新的 <literal>e</literal> 分区给 &man.ccd.4; 用。这可以是
<literal>c</literal> 分区的一个拷贝,但 <option>fstype</option> <emphasis>必须</emphasis> <literal>c</literal> 分区的一个副本, 但 <option>fstype</option> <emphasis>必须</emphasis>
是 <userinput>4.2BSD</userinput>。做完之后,您会看到一面这些:</para> 是 <userinput>4.2BSD</userinput>。做完之后,您会看到一面这些:</para>
<programlisting>8 partitions: <programlisting>8 partitions:
@ -546,7 +545,7 @@ sh MAKEDEV ccd0</programlisting>
<para>Vinum 卷管理是一个实现虚拟磁盘的块驱动设备工具。它使磁盘从 <para>Vinum 卷管理是一个实现虚拟磁盘的块驱动设备工具。它使磁盘从
块设备的接口和数据映射中独立出来。与传统的存储设备相比,增加了 块设备的接口和数据映射中独立出来。与传统的存储设备相比,增加了
灵活性、性能和可靠性。 &man.vinum.8; 实现了 RAID-0、RAID-1 和 灵活性、性能和可靠性。 &man.vinum.8; 实现了 RAID-0、RAID-1 和
RAID-5 三种模式,它们可以独立使用,也可组合使用。</para> RAID-5 三种模式,它们可以独立使用,也可组合使用。</para>
<para>参考 <xref linkend="vinum-vinum"> 得到更多 &man.vinum.8; <para>参考 <xref linkend="vinum-vinum"> 得到更多 &man.vinum.8;
的信息。</para> 的信息。</para>
@ -821,9 +820,10 @@ umass0: detached</screen>
<primary>文件系统</primary> <primary>文件系统</primary>
<secondary>ISO 9660</secondary> <secondary>ISO 9660</secondary>
</indexterm> </indexterm>
<para>ISO 9660 文件系统被设计用来处理这些差异。它通常不会对文件系统作限制。 <para>ISO 9660 文件系统被设计用来处理这些差异。
幸运的是,它提供了一个可扩展机制允许在制作 CD 时越越这些限制, 但令人遗憾的是, 它也有一些其他文件系统所没有的限制, 不过幸运的是,
而同时在不支持这些扩展的系统上仍旧能够进行工作。</para> 它提供了一项扩展机制, 使得正确写入的 CD 能够超越这些限制,
而又能在不支持这些扩展的系统上正常使用。</para>
<indexterm> <indexterm>
<primary><filename role="package">sysutils/cdrtools</filename></primary> <primary><filename role="package">sysutils/cdrtools</filename></primary>
@ -833,41 +833,30 @@ umass0: detached</screen>
他也提供了对于一些扩展的支持选项,下面将详细介绍。</para> 他也提供了对于一些扩展的支持选项,下面将详细介绍。</para>
<indexterm> <indexterm>
<primary>CD burner</primary> <primary>CD burner (刻录机)</primary>
<secondary>ATAPI</secondary> <secondary>ATAPI</secondary>
</indexterm> </indexterm>
<para>使用哪个工具来刻录 CD 依赖于 CD 刻录机是 ATAPI 还是其它类型的。ATAPI CD <para>使用哪个工具来刻录 CD 取决于您的 CD 刻录机是 ATAPI 的,
刻录器使用 <command><link linkend="burncd">burncd</link></command> 还是其他类型的。 对于 ATAPI CD 刻录机, 可以使用基本系统附带的 <command><link
程序可以在基本系统中找到。SCSI 和 USB CD 刻录机使用 linkend="burncd">burncd</link></command> 程序。 SCSI 和 USB CD
<command><link linkend="cdrecord">cdrecord</link></command> 程序,可以 刻录机, 则需要配合
在 <filename role="package">sysutils/cdrtools</filename> port中找到。</para> <command><link linkend="cdrecord">cdrecord</link></command> 程序使用,
它可以通过 <filename role="package">sysutils/cdrtools</filename> port
安装。 除此之外, 在 ATAPI 接口的刻录机上, 也可以配合 <link
linkend="atapicam">ATAPI/CAM 模块</link> 来使用 <command><link
linkend="cdrecord">cdrecord</link></command> 以及其它为 SCSI
刻录机撰写的工具。</para>
<para><command>burncd</command> 程序受到一系列支持设备的限制。如果想知道 <para>如果您想使用带图形界面的 CD 刻录软件,
设备是否被支持,可以查看 可以考虑一下
<ulink url="http://www.freebsd.dk/ata/">支持的 CD-R/RW
驱动器</ulink> 列表。</para>
<note>
<indexterm>
<primary>CD burner</primary>
<secondary>ATAPI/CAM driver</secondary>
</indexterm>
<para>如果您运行的是 &os;&nbsp;5.X、 &os;&nbsp;4.8-RELEASE 或更高版本的话,
也可以通过配合 <link linkend="atapicam">ATAPI/CAM 模块</link>
直接在 ATAPI 设备上使用 <command><link linkend="cdrecord">cdrecord</link></command>
以及其他类似的为 SCSI 设备撰写的工具。</para>
</note>
<para>如果您想使用一个图形界面的 CD 刻录软件,
您可以参考一下
<application>X-CD-Roast</application> 或 <application>X-CD-Roast</application> 或
<application>K3b</application>。这些工具作为安装包可以从 <application>K3b</application>。 这些工具可以通过使用预编译安装包,
<filename 或通过 <filename
role="package">sysutils/xcdroast</filename> 和 <filename role="package">sysutils/xcdroast</filename> 和 <filename
role="package">sysutils/k3b</filename> ports 得到 role="package">sysutils/k3b</filename> ports 来安装。
<application>X-CD-Roast</application> 和 <application>X-CD-Roast</application> 和
<application>K3b</application> 需要 <link <application>K3b</application> 需要 <link
linkend="atapicam">ATAPI/CAM module</link> 和 ATAPI linkend="atapicam">ATAPI/CAM 模块</link> 配合 ATAPI
硬件。</para> 硬件。</para>
</sect2> </sect2>
@ -886,9 +875,9 @@ umass0: detached</screen>
<secondary>ISO 9660</secondary> <secondary>ISO 9660</secondary>
</indexterm> </indexterm>
<para>这个命令将创建一个包含 ISO9660 文件系统的 <replaceable>imagefile.iso</replaceable> <para>这个命令将创建一个包含 ISO9660 文件系统的 <replaceable>imagefile.iso</replaceable>
文件,它是目录树 <replaceable>/path/to/tree</replaceable> 的一个拷贝。在处理过程中, 文件,它是目录树 <replaceable>/path/to/tree</replaceable> 的一个副本。 在处理过程中,
它将文件名称映射为标准的 ISO9660 文件系统的文件名,将排除那些不典型的 ISO 文件系统的 它将文件名称映射为标准的 ISO9660 文件系统的文件名,将排除那些不典型的 ISO
文件。</para> 文件系统的文件。</para>
<indexterm> <indexterm>
<primary>文件系统</primary> <primary>文件系统</primary>
@ -917,14 +906,14 @@ umass0: detached</screen>
<quote>El Torito</quote> 启动 CD。 这个选项使用一个参数, <quote>El Torito</quote> 启动 CD。 这个选项使用一个参数,
用以指定将写入 CD 的目录的根。 默认情况下, &man.mkisofs.8; 用以指定将写入 CD 的目录的根。 默认情况下, &man.mkisofs.8;
会以常说的 <quote>软盘模拟</quote> 方式来创建 ISO 会以常说的 <quote>软盘模拟</quote> 方式来创建 ISO
因此它希望引导影响的尺寸恰好是 1200 1440 或 因此它希望引导映像文件的尺寸恰好是 1200 1440 或
2880&nbsp;KB。 某些引导加载器, 例如 2880&nbsp;KB。 某些引导加载器, 例如
FreeBSD 发行版磁盘, 并不使用模拟模式; 这种情况下, FreeBSD 发行版磁盘, 并不使用模拟模式; 这种情况下,
需要使用 <option>-no-emul-boot</option> 选项。 因此, 如果 需要使用 <option>-no-emul-boot</option> 选项。 因此, 如果
<filename>/tmp/myboot</filename> 是一个包含了 <filename>/tmp/myboot</filename> 是一个包含了启动映像文件
<filename>/tmp/myboot/boot/cdboot</filename> 的可引导的 <filename>/tmp/myboot/boot/cdboot</filename> 的可引导的
FreeBSD 系统, 您就可以使用下面的命令 FreeBSD 系统, 您就可以使用下面的命令生成 ISO 9660 文件系统映像
<filename>/tmp/bootable.iso</filename> 生成 ISO 9660 文件系统</para> <filename>/tmp/bootable.iso</filename></para>
<screen>&prompt.root; <userinput>mkisofs -R -no-emul-boot -b boot/cdboot -o /tmp/bootable.iso /tmp/myboot</userinput></screen> <screen>&prompt.root; <userinput>mkisofs -R -no-emul-boot -b boot/cdboot -o /tmp/bootable.iso /tmp/myboot</userinput></screen>
@ -945,7 +934,7 @@ umass0: detached</screen>
<para>还可以使用 &man.mkisofs.8; <para>还可以使用 &man.mkisofs.8;
的其它选项来调整它的行为。特别是修改 ISO 9660 的划分格式,创建 Joliet 的其它选项来调整它的行为。特别是修改 ISO 9660 的划分格式,创建 Joliet
和 HFS 格式的磁盘。查看 &man.mkisofs.8; 手册得到更多的帮助。</para> 和 HFS 格式的磁盘。查看 &man.mkisofs.8; 联机手册得到更多的帮助。</para>
</sect2> </sect2>
<sect2 id="burncd"> <sect2 id="burncd">
@ -954,8 +943,8 @@ umass0: detached</screen>
<primary>CDROMs</primary> <primary>CDROMs</primary>
<secondary>burning</secondary> <secondary>burning</secondary>
</indexterm> </indexterm>
<para>如果用的是 ATAPE 的 CD 刻录机,可以使用 <command>burncd</command> <para>如果用的是 ATAPI 的 CD 刻录机,可以使用 <command>burncd</command>
 命令来录您的 CD ISO 映像文件。 <command>burncd</command> 命令是基本  命令来录您的 CD ISO 映像文件。 <command>burncd</command> 命令是基本
 系统的一部分,中以使用 <filename>/usr/sbin/burncd</filename> 来安装。  系统的一部分,中以使用 <filename>/usr/sbin/burncd</filename> 来安装。
 用法如下:</para>  用法如下:</para>
@ -1183,7 +1172,7 @@ scsibus1:
<para>您可以选择把一个文件目录刻录到 CD 上而不用 <para>您可以选择把一个文件目录刻录到 CD 上而不用
创建 ISO 9660 文件系统。有些人这么做是为了备份的 创建 ISO 9660 文件系统。有些人这么做是为了备份的
目的。这个运行的比刻录一个标准 CD 速度要快多:</para> 目的。这个运行的比刻录一个标准 CD 速度要快多:</para>
<screen>&prompt.root; <userinput>burncd -f /dev/acd1 -s 12 data archive.tar.gz fixate</userinput></screen> <screen>&prompt.root; <userinput>burncd -f /dev/acd1 -s 12 data archive.tar.gz fixate</userinput></screen>
@ -1399,9 +1388,9 @@ cd0: Attempt to query device size failed: NOT READY, Medium not present - tray c
<screen>&prompt.root; <userinput>growisofs -dvd-compat -Z <replaceable>/dev/cd0</replaceable> -J -R <replaceable>/path/to/data</replaceable></userinput></screen> <screen>&prompt.root; <userinput>growisofs -dvd-compat -Z <replaceable>/dev/cd0</replaceable> -J -R <replaceable>/path/to/data</replaceable></userinput></screen>
<para><option>-J -R</option> 选项传递给 <para><option>-J -R</option> 选项传递给
&man.mkisofs.8; 用于文件系统创建(这种情况下: &man.mkisofs.8; 用于文件系统创建 (这表示创建带有带有
带有 joliet 和 Rock Ridge 扩展的 ISO 9660 文件系统) joliet 和 Rock Ridge 扩展的 ISO 9660 文件系统)
参考 &man.mkisofs.8; 手册了解更多细节。</para> 参考 &man.mkisofs.8; 联机手册了解更多细节。</para>
<para>选项 <option>-Z</option> 用来在任何情况下初始刻录会话: <para>选项 <option>-Z</option> 用来在任何情况下初始刻录会话:
不管多会话与否。 不管多会话与否。
@ -1432,9 +1421,9 @@ cd0: Attempt to query device size failed: NOT READY, Medium not present - tray c
<sect2> <sect2>
<title>刻录 DVD-Video</title> <title>刻录 DVD-Video</title>
<para> DVD-Video 是一个特殊的基于 ISO 9660 <para>DVD-Video 是一种特殊的基于 ISO 9660
和 micro-UDF (M-UDF) 规范的文件系统。DVD-Video 和 micro-UDF (M-UDF) 规范的文件系统。 DVD-Video
也呈现了一个特殊的数据体系结构 也呈现了一个特殊的数据格式
这就是为什么您需要一个特殊的程序像 <filename 这就是为什么您需要一个特殊的程序像 <filename
role="package">multimedia/dvdauthor</filename> 来制作 role="package">multimedia/dvdauthor</filename> 来制作
DVD 的原因。</para> DVD 的原因。</para>
@ -1491,12 +1480,12 @@ cd0: Attempt to query device size failed: NOT READY, Medium not present - tray c
<screen>&prompt.root; <userinput>growisofs -M <replaceable>/dev/cd0</replaceable> -J -R <replaceable>/path/to/nextdata</replaceable></userinput></screen> <screen>&prompt.root; <userinput>growisofs -M <replaceable>/dev/cd0</replaceable> -J -R <replaceable>/path/to/nextdata</replaceable></userinput></screen>
<para>我们用来刻录初始会话的同样的 &man.mkisofs.8; <para>在以后的写操作时, 应使用与最初的刻录会话时相同的 &man.mkisofs.8;
选项会在以后的写操作中使用。</para> 选项。</para>
<note> <note>
<para>如果您想获得与 DVD-ROM 驱动更好的兼容性,可以使用 <option>-dvd-compat</option> <para>如果您想获得与 DVD-ROM 驱动更好的兼容性,可以使用 <option>-dvd-compat</option>
选项。在 DVD+RW 这种情况下,将不能预防您添加数据。</para> 选项。 在 DVD+RW 这种情况下, 这样做并不妨碍您添加数据。</para>
</note> </note>
<para>如果出于某种原因您真的想要空白介质盘, <para>如果出于某种原因您真的想要空白介质盘,
@ -1540,7 +1529,7 @@ cd0: Attempt to query device size failed: NOT READY, Medium not present - tray c
这种格式比默认的增补顺序写入更加灵活。</para> 这种格式比默认的增补顺序写入更加灵活。</para>
</note> </note>
<para>在一张顺序 DVD-RW 上写入数据,使用和其他 DVD 格式相同的说明</para> <para>在一张顺序 DVD-RW 上写入数据,使用和其他 DVD 格式相同的指令</para>
<screen>&prompt.root; <userinput>growisofs -Z <replaceable>/dev/cd0</replaceable> -J -R <replaceable>/path/to/data</replaceable></userinput></screen> <screen>&prompt.root; <userinput>growisofs -Z <replaceable>/dev/cd0</replaceable> -J -R <replaceable>/path/to/data</replaceable></userinput></screen>
@ -1602,15 +1591,16 @@ cd0: Attempt to query device size failed: NOT READY, Medium not present - tray c
<para>更多的关于 <para>更多的关于
<application>dvd+rw-tools</application> 的信息可以在 <application>dvd+rw-tools</application> 的信息可以在
&man.growisofs.1; 手册找到,在 <ulink &man.growisofs.1; 联机手册找到,在 <ulink
url="http://fy.chalmers.se/~appro/linux/DVD+RW/">dvd+rw-tools url="http://fy.chalmers.se/~appro/linux/DVD+RW/">dvd+rw-tools
web site</ulink> 和 <ulink web site</ulink> 和 <ulink
url="http://lists.debian.org/cdwrite/">cdwrite mailing url="http://lists.debian.org/cdwrite/">cdwrite mailing
list</ulink> 联接中也可找到。</para> list</ulink> 联接中也可找到。</para>
<note> <note>
<para> <command>dvd+rw-mediainfo</command> 命令的输出结果记录或 <para><command>dvd+rw-mediainfo</command> 命令的输出结果记录,
媒体的问题被做成问题报告。没有这些输出,对你的帮助将会十分困难。</para> 以及介质的问题会被用来做问题报告。 如果没有这些输出,
就很难帮您解决问题。</para>
</note> </note>
</sect2> </sect2>
@ -1686,8 +1676,8 @@ cd0: Attempt to query device size failed: NOT READY, Medium not present - tray c
<title>创建和使用软盘</title> <title>创建和使用软盘</title>
<para>把数据存储在软盘上有时也是十分有用的。 <para>把数据存储在软盘上有时也是十分有用的。
例如,当没有其它可靠的存储介质或要传递少量的数据到其它的 例如, 在没有其它可靠的存储介质,
计算机。</para> 或只需将少量数据传到其他计算机。</para>
<para>这一章将介绍怎样在 FreeBSD 上使用软盘。 <para>这一章将介绍怎样在 FreeBSD 上使用软盘。
在使用 DOS 3.5 英寸软盘时首要要涉及的就是格式化, 在使用 DOS 3.5 英寸软盘时首要要涉及的就是格式化,
@ -1731,8 +1721,9 @@ cd0: Attempt to query device size failed: NOT READY, Medium not present - tray c
<command>MAKEDEV</command> 命令。</para> <command>MAKEDEV</command> 命令。</para>
<para>如果期望得到确定大小的磁盘可以给 &man.fdformat.1; 传递 <para>如果期望得到确定大小的磁盘可以给 &man.fdformat.1; 传递
<option>-f</option> 参数。支持的大小列在 <option>-f</option> 参数。 支持的大小可以在
&man.fdcontrol.8; 中,但是建议和工作状态最好的 1440kB 。</para> &man.fdcontrol.8; 联机手册中找到,
但推荐使用工作状态最好的 1440kB。</para>
</sect4> </sect4>
</sect3> </sect3>
@ -1779,8 +1770,8 @@ cd0: Attempt to query device size failed: NOT READY, Medium not present - tray c
<sect2> <sect2>
<title>磁盘标签</title> <title>磁盘标签</title>
<para>经过低级格式化后,你需要给它分配一个标签。 <para>经过低级格式化后, 你需要给它分配一个标签。
这个磁盘标签以后会被消毁,但是系统却需要它来确定硬盘的大小。</para> 这个磁盘标签以后会被删去, 但系统需要使用它来确定磁盘的尺寸。</para>
<para>新的磁盘标签将会接管整个磁盘,会包括所有合适的关于软盘的 geometry 信息。 <para>新的磁盘标签将会接管整个磁盘,会包括所有合适的关于软盘的 geometry 信息。
磁盘标签的 geometry 值列在 磁盘标签的 geometry 值列在
@ -1795,7 +1786,7 @@ cd0: Attempt to query device size failed: NOT READY, Medium not present - tray c
&man.bsdlabel.8; 一起许多陈旧的选项和参数也被清除了; &man.bsdlabel.8; 一起许多陈旧的选项和参数也被清除了;
在上面的例子中,选项 在上面的例子中,选项
<option>-r</option> 将被去掉。要想得到更多的信息, <option>-r</option> 将被去掉。要想得到更多的信息,
请参考 &man.bsdlabel.8; 手册。</para></note> 请参考 &man.bsdlabel.8; 联机手册。</para></note>
</sect2> </sect2>
@ -1845,14 +1836,16 @@ cd0: Attempt to query device size failed: NOT READY, Medium not present - tray c
<primary>tape media</primary> <primary>tape media</primary>
<secondary>QIC tapes</secondary> <secondary>QIC tapes</secondary>
</indexterm> </indexterm>
<para>4mm 磁带机取代了 QIC 而成为工作站备份数据在设备面停止了 QIC 设备 <para>4mm 磁带机正在逐步取代 QIC 成为工作站备份数据的首选设备。
的生产。 4mm 的驱动器更加小和安静,但对于数据保存的可信度仍不及 8mm 在 Conner 收购了 QIC 磁带机领域领先的制造商 Archive 之后不久,
即不再生产这种磁带机, 这使得这一趋势变得愈加明显。
4mm 的驱动器更加小和安静,但对于数据保存的可靠性仍不及 8mm
驱动器。它要比 8mm 的便宜和小得多 (3 x 2 x 0.5 inches, 76 x 51 驱动器。它要比 8mm 的便宜和小得多 (3 x 2 x 0.5 inches, 76 x 51
x 12 mm) 。和 8mm 的一样,读写关的寿命都不长,因为它们同样使用螺旋式 x 12 mm) 。和 8mm 的一样,读写关的寿命都不长,因为它们同样使用螺旋式
的方式来读写。</para> 的方式来读写。</para>
<para>数据传输的速度约在 ~150&nbsp;kB/s, 到 ~500&nbsp;kB/s 之间,可存储 <para>这些设备的数据传输的速度约在 ~150&nbsp;kB/s 到 ~500&nbsp;kB/s 之间,
空间从 1.3&nbsp;GB 到 2.0&nbsp;GB 之间,硬件压缩可使空间加倍。磁带库 存储空间从 1.3&nbsp;GB 到 2.0&nbsp;GB 之间,硬件压缩可使空间加倍。磁带库
单元可以有 6 台磁带机120 个磁带匣,以自动切换的方式使用同一个磁带柜, 单元可以有 6 台磁带机120 个磁带匣,以自动切换的方式使用同一个磁带柜,
磁带库的容量可达 240&nbsp;GB 。</para> 磁带库的容量可达 240&nbsp;GB 。</para>
@ -1904,8 +1897,8 @@ cd0: Attempt to query device size failed: NOT READY, Medium not present - tray c
如果您的需求能够为半打磁带所满足的话, 那么 QIC 如果您的需求能够为半打磁带所满足的话, 那么 QIC
可能是明智之选。 QIC 是 可能是明智之选。 QIC 是
<emphasis>最</emphasis> 常见的磁带机。 每个站点都会有某种密度的 QIC。 <emphasis>最</emphasis> 常见的磁带机。 每个站点都会有某种密度的 QIC。
这有时是一种麻烦, QIC 有为数众多的密度, 这有时是一种麻烦, QIC 有很多在外观上相似(有时一样),但是密度不同的磁带。
但在外观上相似 (有时一样) 的磁带。 QIC 磁带机噪音很大。 QIC 磁带机噪音很大。
它们在寻址以及读写时都会发出声音。 QIC 磁带的规格有 (6 x 4 x 0.7 英寸; 152 x 它们在寻址以及读写时都会发出声音。 QIC 磁带的规格有 (6 x 4 x 0.7 英寸; 152 x
102 x 17 毫米)。</para> 102 x 17 毫米)。</para>
@ -2375,8 +2368,8 @@ sa0(ncr1:4:0): Logical unit is in process of becoming ready</screen>
<para>第一,打出您的每个磁盘驱动器的磁盘标签(例如: <para>第一,打出您的每个磁盘驱动器的磁盘标签(例如:
<command>disklabel da0 | lpr</command>),文件系统表, <command>disklabel da0 | lpr</command>),文件系统表,
(<filename>/etc/fstab</filename>) ,以及所有启动信息,并将每个拷贝 (<filename>/etc/fstab</filename>) ,以及所有启动信息,
两份。</para> 并将其复制两份。</para>
<indexterm><primary>fix-it floppies</primary></indexterm> <indexterm><primary>fix-it floppies</primary></indexterm>
<para>第二,确定遇到的情况时,用来启动及修复的软盘 <para>第二,确定遇到的情况时,用来启动及修复的软盘
@ -2567,7 +2560,7 @@ echo "The floppy has been unmounted and is now ready."]]></programlisting>
<title>出现灾难后</title> <title>出现灾难后</title>
<para>关键问题是: 您的硬件是否幸免于难? <para>关键问题是: 您的硬件是否幸免于难?
由于已经做好了定期的备份工作, 旖旎并不需要担心软件的问题。</para> 由于已经做好了定期的备份工作, 因此并不需要担心软件的问题。</para>
<para>如果硬件已经损毁, 这些部分应该在尝试使用计算机之前换掉。</para> <para>如果硬件已经损毁, 这些部分应该在尝试使用计算机之前换掉。</para>
@ -2641,10 +2634,9 @@ echo "The floppy has been unmounted and is now ready."]]></programlisting>
<secondary>虚拟</secondary> <secondary>虚拟</secondary>
</indexterm> </indexterm>
<para>除了你的物理磁盘以外,插入你计算机的: <para>除了插在您计算机上的物理磁盘:
软盘 CDs硬盘驱动器等等其它磁盘格式是不被 软盘、 CD、 硬盘驱动器, 等等之外, FreeBSD
FreeBSD - <firstterm>virtual 还能识别一些其他的磁盘形式 - <firstterm>虚拟磁盘</firstterm>。</para>
disks</firstterm>支持的。</para>
<indexterm><primary>NFS</primary></indexterm> <indexterm><primary>NFS</primary></indexterm>
<indexterm><primary>Coda</primary></indexterm> <indexterm><primary>Coda</primary></indexterm>
@ -2767,7 +2759,7 @@ Filesystem 1K-blocks Used Avail Capacity Mounted on
&man.md.4; 自动为它选择一个未使用的设备。 &man.md.4; 自动为它选择一个未使用的设备。
分配给它的单位名将被输出到标准输出设备像 分配给它的单位名将被输出到标准输出设备像
<devicename>md4</devicename>。想得到更多的关于 <devicename>md4</devicename>。想得到更多的关于
&man.mdconfig.8; 的信息请参考手册。</para> &man.mdconfig.8; 的信息请参考联机手册。</para>
<para>应用程序 &man.mdconfig.8; 功能很强大, <para>应用程序 &man.mdconfig.8; 功能很强大,
但在创建采用文件后端的文件系统时需要使用许多多行命令。 为此 但在创建采用文件后端的文件系统时需要使用许多多行命令。 为此
@ -2791,7 +2783,7 @@ Filesystem 1K-blocks Used Avail Capacity Mounted on
<para>如果你使用没有加单位号的 <option>md</option> 选项, <para>如果你使用没有加单位号的 <option>md</option> 选项,
&man.mdmfs.8; 将使用 &man.md.4; 的自动单位号特性来自动为其 &man.mdmfs.8; 将使用 &man.md.4; 的自动单位号特性来自动为其
选择一个未使用的设备。更详细的 选择一个未使用的设备。更详细的
&man.mdmfs.8;,请参考手册。</para> &man.mdmfs.8;,请参考联机手册。</para>
</sect2> </sect2>
@ -2821,7 +2813,7 @@ Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/md0c 4927 1 4532 0% /mnt</screen> /dev/md0c 4927 1 4532 0% /mnt</screen>
</example> </example>
<para>更多的详情,请参考 &man.md.4; 手册。</para> <para>更多的详情,请参考 &man.md.4; 联机手册。</para>
</sect2> </sect2>
<sect2 id="disks-md-freebsd5"> <sect2 id="disks-md-freebsd5">
@ -2874,12 +2866,12 @@ Filesystem 1K-blocks Used Avail Capacity Mounted on
<secondary>移除内存盘</secondary> <secondary>移除内存盘</secondary>
</indexterm> </indexterm>
<para>当一个内存后备式文件系统不再使用时,你应该释放掉系统的资源 <para>当采用内存作为后端的文件系统不再使用时, 应将资源释放回系统
每一件要做的事情就是摘掉文件系统,然后使用 第一步操作是卸下文件系统, 然后使用
&man.mdconfig.8; 把磁盘从系统中分离出来释放看资源。</para> &man.mdconfig.8; 把磁盘从系统中分离 以释放资源。</para>
<para>例如分离和释放所有的资源使用 <para>例如 要分离并释放所有
<filename>/dev/md4</filename> 命令:</para> <filename>/dev/md4</filename> 使用的资源, 应使用命令:</para>
<screen>&prompt.root; <userinput>mdconfig -d -u <replaceable>4</replaceable></userinput></screen> <screen>&prompt.root; <userinput>mdconfig -d -u <replaceable>4</replaceable></userinput></screen>
@ -2996,8 +2988,12 @@ Filesystem 1K-blocks Used Avail Capacity Mounted on
</indexterm> </indexterm>
<indexterm><primary>disk quotas</primary></indexterm> <indexterm><primary>disk quotas</primary></indexterm>
<para>配额是操作系统的一个可选择的属性,它允许限制用户使用的磁盘空间大小或是 <para>配额是操作系统的一个可选的功能,
使用的文件数量。这可以防止某个用户占用所有的磁盘空间。</para> 它允许管理员以文件系统为单元,
限制分派给用户或组成员所使用的磁盘空间大小或是使用的总文件数量。
这经常被用于那些分时操作的系统上, 对于这些系统而言,
通常希望限制分派到每一个用户或组的资源总量,
从而可以防止某个用户占用所有可用的磁盘空间。</para>
<sect2> <sect2>
<title>配置系统来启用磁盘配额</title> <title>配置系统来启用磁盘配额</title>
@ -3045,8 +3041,9 @@ Filesystem 1K-blocks Used Avail Capacity Mounted on
<para>默认情况下,配额文件是存放在文件系统的以 <filename>quota.user</filename> <para>默认情况下,配额文件是存放在文件系统的以 <filename>quota.user</filename>
和 <filename>quota.group</filename> 命名的根目录下。可以查看 &man.fstab.5; 和 <filename>quota.group</filename> 命名的根目录下。可以查看 &man.fstab.5;
联机手册了解更多信息。即使联机手册 &man.fstab.5; 说中以为配额文件指定其他 联机手册了解更多信息。 尽管联机手册 &man.fstab.5; 提到,
的位置,这里并不推荐这样做,因为不同的配额工具不一定遵循这样的规则。</para> 可以为配额文件指定其他的位置, 但并不推荐这样做,
因为不同的配额工具并不一定遵循此规则。</para>
<para>到这儿,可以用新内核重新启动系统。 <filename>/etc/rc</filename> 将自动 <para>到这儿,可以用新内核重新启动系统。 <filename>/etc/rc</filename> 将自动
运行适当的命令来创建最初的配额文件,所以并不需要手动来创建任何零长度的配额 运行适当的命令来创建最初的配额文件,所以并不需要手动来创建任何零长度的配额
@ -3087,10 +3084,11 @@ Filesystem 1K-blocks Used Avail Capacity Mounted on
换言之, 如果这时试图再分配 11 KB 则会失败。</para> 换言之, 如果这时试图再分配 11 KB 则会失败。</para>
<indexterm><primary>软性限制</primary></indexterm> <indexterm><primary>软性限制</primary></indexterm>
<para>软限制可以被有时间限制性地被越过。这段时间可以被理解为允许限期, <para>而与此相反, 软性限制在一段时间内是允许越过的。
默认是一个星期。如果一个用户延缓时间太长的话,软限制将会变成硬限制, 这段时间也称为宽限期, 其默认值是一周。
根本就不允许再继续占用磁盘配额。当用户因到软限制以下时,允许延期将 如果一个用户延缓时间太长的话,软限制将会变成硬限制,
重新开始计算。</para> 而继续分配磁盘空间的操作将被拒绝。
当用户占用的空间回到软性限制值以下时, 宽限期将重新开始计算。</para>
<para>下面是一个运行 &man.edquota.8; 时看到的例子。当 &man.edquota.8; <para>下面是一个运行 &man.edquota.8; 时看到的例子。当 &man.edquota.8;
命令被调用时,会被转移进 <envar>EDITOR</envar> 环境变量指派的编辑 命令被调用时,会被转移进 <envar>EDITOR</envar> 环境变量指派的编辑
@ -3126,7 +3124,7 @@ Filesystem 1K-blocks Used Avail Capacity Mounted on
<screen>&prompt.root; <userinput>edquota -p test 10000-19999</userinput></screen> <screen>&prompt.root; <userinput>edquota -p test 10000-19999</userinput></screen>
<para>更多细节请参考 &man.edquota.8; 手册。</para> <para>更多细节请参考 &man.edquota.8; 联机手册。</para>
</sect2> </sect2>
<sect2> <sect2>
@ -3136,7 +3134,7 @@ Filesystem 1K-blocks Used Avail Capacity Mounted on
<secondary>checking</secondary> <secondary>checking</secondary>
</indexterm> </indexterm>
<para>可以使用 &man.quota.1; 也可以使用 &man.repquota.8; 命令来检查 <para>可以使用 &man.quota.1; 也可以使用 &man.repquota.8; 命令来检查
配额限制和磁盘使用情况。 &man.quota.1; 命令能够检查单个用户和组的配置 配额限制和磁盘使用情况。 &man.quota.1; 命令能够检查单个用户和组的配置
使用情况。只有超级用户才可以检查其它用户的配额和磁盘使用情况。 使用情况。只有超级用户才可以检查其它用户的配额和磁盘使用情况。
&man.repquota.8; 命令可以用来了解所有配额和磁盘的使用情况。</para> &man.repquota.8; 命令可以用来了解所有配额和磁盘的使用情况。</para>
@ -3164,9 +3162,9 @@ Filesystem 1K-blocks Used Avail Capacity Mounted on
<title>通过 NFS 使用磁盘配额</title> <title>通过 NFS 使用磁盘配额</title>
<indexterm><primary>NFS</primary></indexterm> <indexterm><primary>NFS</primary></indexterm>
<para>配额能够在 NFS 服务器上被配额子系统强迫使用。在 NFS 客端, <para>配额能够在 NFS 服务器上被配额子系统强迫使用。在 NFS 客端,
&man.rpc.rquotad.8; 命令可以使用 quota 信息用于 &man.quota.1; &man.rpc.rquotad.8; 命令可以使用 quota 信息用于 &man.quota.1;
命令,可以允许用户察看它们的 quota 统计信息。</para> 命令, 可以允许用户查看它们的 quota 统计信息。</para>
<para>可以这样在 <filename>/etc/inetd.conf</filename> 中启用 <para>可以这样在 <filename>/etc/inetd.conf</filename> 中启用
<command>rpc.rquotad</command></para> <command>rpc.rquotad</command></para>
@ -3204,7 +3202,7 @@ Filesystem 1K-blocks Used Avail Capacity Mounted on
文件权限和强制访问控制(MAC)(看 <xref linkend="mac">) 文件权限和强制访问控制(MAC)(看 <xref linkend="mac">)
可以帮助预防在操作系统处于运行状态和计算机加电时未受权的第三方访问数据。 可以帮助预防在操作系统处于运行状态和计算机加电时未受权的第三方访问数据。
但是,和操作系统强制受权不相关的是,如果黑客有物理上访问计算机的可能, 但是,和操作系统强制受权不相关的是,如果黑客有物理上访问计算机的可能,
那他就可以简单的把计算机的硬件安装到另一个系统上拷贝出敏感的数据。</para> 那他就可以简单的把计算机的硬件安装到另一个系统上复制出敏感的数据。</para>
<para>无论攻击者如何取得停机后的硬件或硬盘驱动器本身, &os; <application>GEOM <para>无论攻击者如何取得停机后的硬件或硬盘驱动器本身, &os; <application>GEOM
Based Disk Encryption (基于 GEOM 的磁盘加密, gbde)</application> 和 Based Disk Encryption (基于 GEOM 的磁盘加密, gbde)</application> 和

View file

@ -263,7 +263,7 @@
<devicename>D:</devicename>分区上存放 0.5&nbsp;GB 的数据。</para> <devicename>D:</devicename>分区上存放 0.5&nbsp;GB 的数据。</para>
<para>这意味着您的盘上有两个分区,一个驱动器符号是一个分区(如 c:、d:)。 <para>这意味着您的盘上有两个分区,一个驱动器符号是一个分区(如 c:、d:)。
您可以把所有存放在 <devicename>D:</devicename> 分区上的数据拷贝 您可以把所有存放在 <devicename>D:</devicename> 分区上的数据复制
<devicename>C:</devicename> 分区,这样就空出了一个分区(d:)给 FreeBSD 使用。</para> <devicename>C:</devicename> 分区,这样就空出了一个分区(d:)给 FreeBSD 使用。</para>
</example> </example>
@ -3088,12 +3088,12 @@ To change any of these settings later, edit /etc/rc.conf
<acronym>NFS</acronym> 服务器和客户端正常运行所必需的。</para> <acronym>NFS</acronym> 服务器和客户端正常运行所必需的。</para>
<para>下一个项目是<guimenuitem>Routed</guimenuitem>,这是一个路由程序。 <para>下一个项目是<guimenuitem>Routed</guimenuitem>,这是一个路由程序。
&man.routed.8; 程序管理网络路由表,发现多播路由,并且支持在网络上 &man.routed.8; 程序管理网络路由表,发现多播路由,
与它物理相连的主机来拷贝它的路由表的请求。它被广泛的应用在本地 并且支持在网络上与它物理相连的主机来复制它的路由表的请求。
网络中并扮演关网关的角色。 它被广泛地应用在本地网络中并扮演关网关的角色。
当选择它后,一个子菜单会来询问您这个程序的默认位置。默认的位置已经 当选择它后,一个子菜单会来询问您这个程序的默认位置。
被定义过,您可以选择 <keycap>Enter</keycap> 键,您也可以按下其它的键。 默认的位置已经被定义过, 您可以选择 <keycap>Enter</keycap> 键,
这时会出来另一个菜单来询问您传递给 <command>routed</command>程序的参数。 也可以按下其它的键。 这时会出来另一个菜单来询问您传递给 <command>routed</command>程序的参数。
默认的是 <option>-q</option> 参数。</para> 默认的是 <option>-q</option> 参数。</para>
<para>接下来是 <guimenuitem>Rwhod</guimenuitem> 选项,选中它会启用 &man.rwhod.8; 程序 <para>接下来是 <guimenuitem>Rwhod</guimenuitem> 选项,选中它会启用 &man.rwhod.8; 程序
@ -4726,12 +4726,13 @@ Please press any key to reboot.</screen>
<para>然后您就可以像其它的文件系统一样挂上和写入这些磁盘。</para> <para>然后您就可以像其它的文件系统一样挂上和写入这些磁盘。</para>
<para>格式化这些磁盘后,您必须拷贝文件到磁盘中。这些发行文件被分割成刚 <para>格式化这些磁盘后,您必须把文件复制到磁盘中。
好可存进五张 1.44&nbsp;MB 软盘。检查您所有的磁盘,找出所有可能适合的文件。 这些发行文件被分割成刚好可存进五张 1.44&nbsp;MB 软盘。
直到您找到所有需要的配置并且将它们以这种方式安置。第一个配置都应该有一个 检查您所有的磁盘, 找出所有可能适合的文件。
子目录在磁盘上,例如: 直到您找到所有需要的配置并且将它们以这种方式安置。
<filename>a:\bin\bin.aa</filename>, 第一个配置都应该有一个子目录在磁盘上, 例如:
<filename>a:\bin\bin.ab</filename>, 等等。</para> <filename>a:\bin\bin.aa</filename>、
<filename>a:\bin\bin.ab</filename> 等等。</para>
<para>一旦您进入选择安装介质的屏幕,选择 <guimenuitem>Floppy</guimenuitem> <para>一旦您进入选择安装介质的屏幕,选择 <guimenuitem>Floppy</guimenuitem>
将会看到后面的提示符。</para> 将会看到后面的提示符。</para>
@ -4860,7 +4861,7 @@ Please press any key to reboot.</screen>
<secondary>network</secondary> <secondary>network</secondary>
<tertiary>NFS</tertiary> <tertiary>NFS</tertiary>
</indexterm> </indexterm>
<para>NFS安装方式是非常方便的。只需要简单地将FreeBSD文件拷贝到一台服务器上, <para>NFS 安装方式是非常方便的。 只需要简单地将 FreeBSD 文件复制到一台服务器上,
然后在安装时选择NFS介质。</para> 然后在安装时选择NFS介质。</para>
<para>如果这个服务器要<quote>特权端口</quote>才能支持如SUN的工作站 <para>如果这个服务器要<quote>特权端口</quote>才能支持如SUN的工作站

View file

@ -181,7 +181,7 @@ Id Refs Address Size Name
基本上,有两种可能性(接下来的指令需要<username>root</username>权限):</para> 基本上,有两种可能性(接下来的指令需要<username>root</username>权限):</para>
<para>如果您有可以访问的Linux系统 看看应用程序需要什么共享库, <para>如果您有可以访问的Linux系统 看看应用程序需要什么共享库,
把它们拷贝到您的FreeBSD系统。看下面的例子</para> 把它们复制到您的FreeBSD系统。看下面的例子</para>
<informalexample> <informalexample>
<para>我们假设您通过FTP得到Linux程序<application>Doom</application> <para>我们假设您通过FTP得到Linux程序<application>Doom</application>
@ -194,7 +194,7 @@ libX11.so.3 (DLL Jump 3.1) =&gt; /usr/X11/lib/libX11.so.3.1.0
libc.so.4 (DLL Jump 4.5pl26) =&gt; /lib/libc.so.4.6.29</screen> libc.so.4 (DLL Jump 4.5pl26) =&gt; /lib/libc.so.4.6.29</screen>
<indexterm><primary>符号链接</primary></indexterm> <indexterm><primary>符号链接</primary></indexterm>
<para>您需要得到上面输出的右列的所有文件,并把他们拷贝到<filename>/compat/linux</filename> <para>您需要得到上面输出的右列的所有文件,并把它们复制到 <filename>/compat/linux</filename>
第一列的名字用符号连接指向它们。这样您的FreeBSD系统上就有了这些文件</para> 第一列的名字用符号连接指向它们。这样您的FreeBSD系统上就有了这些文件</para>
<screen>/compat/linux/usr/X11/lib/libXt.so.3.1.0 <screen>/compat/linux/usr/X11/lib/libXt.so.3.1.0
@ -207,9 +207,9 @@ libc.so.4 (DLL Jump 4.5pl26) =&gt; /lib/libc.so.4.6.29</screen>
<blockquote> <blockquote>
<note> <note>
<para>如果您已经有了一个与<command>ldd</command> 输出的第一列的主修订号相匹配的Linux共享库 <para>如果您已经有了一个与<command>ldd</command> 输出的第一列的主修订号相匹配的Linux共享库
将不需要把右列命名的文件拷贝到您的系统,您已经完成了工作 就已经完成了工作, 而不需要把右列命名的文件复制到您的系统上了
如果有一个新的版本,那无论如何都要拷贝一个共享库。 如果有一个新的版本, 那无论如何都要复制一个共享库。
您可以删掉旧的,您只要做一个符号连接到新的版本。 您可以删掉旧的, 您只要做一个符号连接到新的版本。
所以,如果有这些库在您的系统上: 所以,如果有这些库在您的系统上:
</para> </para>
@ -220,7 +220,7 @@ libc.so.4 (DLL Jump 4.5pl26) =&gt; /lib/libc.so.4.6.29</screen>
<screen>libc.so.4 (DLL Jump 4.5pl26) -&gt; libc.so.4.6.29</screen> <screen>libc.so.4 (DLL Jump 4.5pl26) -&gt; libc.so.4.6.29</screen>
<para>如果结尾的数字只有一到两个版本过期,那也不要担心拷贝<filename>/lib/libc.so.4.6.29</filename> <para>如果结尾的数字只有一到两个版本过期,那也不要担心复制 <filename>/lib/libc.so.4.6.29</filename>
因为程序在稍微旧一些的版本上也能很好地工作。 因为程序在稍微旧一些的版本上也能很好地工作。
然而,如果喜欢的话,您可以替换<filename>libc.so</filename>,变成这样:</para> 然而,如果喜欢的话,您可以替换<filename>libc.so</filename>,变成这样:</para>
@ -391,18 +391,18 @@ done</programlisting>
<para><application>&mathematica;</application> 使用一些特殊的字体来显示字符, <para><application>&mathematica;</application> 使用一些特殊的字体来显示字符,
与现在使用的标准字体不一样integrals, sums, Greek letters,等等)。 X协议要求将这些字体安装在 与现在使用的标准字体不一样integrals, sums, Greek letters,等等)。 X协议要求将这些字体安装在
<emphasis>本地</emphasis>。 <emphasis>本地</emphasis>。
这意味着您需要从<application>&mathematica;</application>的CDROM里面拷贝这些字体并安装到本地。 这意味着您需要从<application>&mathematica;</application>的CDROM里面复制这些字体并安装到本地。
这些字体一般在CDROM的<filename>/cdrom/Unix/Files/SystemFiles/Fonts</filename>里面, 这些字体一般在CDROM的<filename>/cdrom/Unix/Files/SystemFiles/Fonts</filename>里面,
或本地硬盘的<filename>/usr/local/mathematica/SystemFiles/Fonts</filename>。 或本地硬盘的<filename>/usr/local/mathematica/SystemFiles/Fonts</filename>。
实际的字体在<filename>Type1</filename>和<filename>X</filename>子目录。有很多种方法来使用它们。 实际的字体在<filename>Type1</filename>和<filename>X</filename>子目录。有很多种方法来使用它们。
</para> </para>
<para>第一种方法是把字体拷贝到一个已存在的目录<filename>/usr/X11R6/lib/X11/fonts</filename>。 <para>第一种方法是把字体复制到一个已存在的目录<filename>/usr/X11R6/lib/X11/fonts</filename>。
这需要编辑<filename>fonts.dir</filename>文件。添加字体名字进去,并改变第一行的字体数目。 这需要编辑<filename>fonts.dir</filename>文件。添加字体名字进去,并改变第一行的字体数目。
另外,您也需要在拷贝字体的目录下执行&man.mkfontdir.1;。 另外,您也需要在复制字体的目录下执行&man.mkfontdir.1;。
</para> </para>
<para>第二种方法是拷贝目录到<filename>/usr/X11R6/lib/X11/fonts</filename></para> <para>第二种方法是复制到 <filename>/usr/X11R6/lib/X11/fonts</filename> 目录</para>
<screen>&prompt.root; <userinput>cd /usr/X11R6/lib/X11/fonts</userinput> <screen>&prompt.root; <userinput>cd /usr/X11R6/lib/X11/fonts</userinput>
&prompt.root; <userinput>mkdir X</userinput> &prompt.root; <userinput>mkdir X</userinput>
@ -469,9 +469,9 @@ done</programlisting>
选择<quote>RedHat</quote> 选项。典型的安装目录是<filename 选择<quote>RedHat</quote> 选项。典型的安装目录是<filename
class="directory">/usr/local/maple</filename>。</para></step> class="directory">/usr/local/maple</filename>。</para></step>
<step><para>如果您不这样做可以从Maple Waterloo Software <ulink url="http://register.maplesoft.com/"></ulink> <step><para>如果您不这样做可以从Maple Waterloo Software (<ulink url="http://register.maplesoft.com/"></ulink>)
为<application>&maple;</application>订购一个许可。 <application>&maple;</application> 订购一个授权许可。
然后拷贝到<filename>/usr/local/maple/license/license.dat</filename>。</para></step> 然后把它复制到 <filename>/usr/local/maple/license/license.dat</filename>。</para></step>
<step><para>通过运行<application>&maple;</application>中的<filename>INSTALL_LIC</filename>安装shell脚本来 <step><para>通过运行<application>&maple;</application>中的<filename>INSTALL_LIC</filename>安装shell脚本来
安装<application>FLEXlm</application>许可管理器。 指定许可服务器为您的机器名。</para></step> 安装<application>FLEXlm</application>许可管理器。 指定许可服务器为您的机器名。</para></step>
@ -631,7 +631,8 @@ FEATURE Maple maplelmg 2000.0831 permanent 1 XXXXXXXXXXXX \
<para>根据获得<application>&matlab;</application>许可时的指示来编辑许可文件。</para> <para>根据获得<application>&matlab;</application>许可时的指示来编辑许可文件。</para>
<tip> <tip>
<para>您可以用您喜欢的编辑器提前准备这个文件,并在安装程序要您编辑它之前拷贝到 <para>您可以用您喜欢的编辑器提前准备这个文件,
并在安装程序要您编辑它之前复制到
<filename>$MATLAB/license.dat</filename> <filename>$MATLAB/license.dat</filename>
</para> </para>
</tip> </tip>
@ -1817,7 +1818,7 @@ en_US.ISO-8859-1</programlisting>
<para>如果他们不出现,在安装时可能会有问题。如果忽略这些问题(通过设置<filename>CENTRDB.R3S</filename>文件 <para>如果他们不出现,在安装时可能会有问题。如果忽略这些问题(通过设置<filename>CENTRDB.R3S</filename>文件
里面的<literal>STATUS</literal>为<literal>OK</literal>),不费一番周折, 里面的<literal>STATUS</literal>为<literal>OK</literal>),不费一番周折,
您就别想登进<application>&sap;</application>系统。</para> 您就别想登进<application>&sap;</application>系统。</para>
</sect3> </sect3>
<sect3 id="kerneltuning"> <sect3 id="kerneltuning">
@ -1868,8 +1869,8 @@ options SEMUME=100 #number of UNDO keys</programlisting>
<sect3 id="preparingsapcdroms"> <sect3 id="preparingsapcdroms">
<title>准备&sap; CDROMs</title> <title>准备&sap; CDROMs</title>
<para>在安装过程中有许多CDROM要被挂上和卸下。建议您有多个CDROM驱动器 <para>在安装过程中,有许多 CDROM 要被挂上和卸下。建议您有多个CDROM驱动器
您可以把它们都挂上。我决定拷贝CDROM的内容到相应的目录:</para> 您可以把它们都挂上。我决定复制 CDROM 的内容到相应的目录:</para>
<programlisting>/oracle/<replaceable>SID</replaceable>/sapreorg/<replaceable>cd-name</replaceable></programlisting> <programlisting>/oracle/<replaceable>SID</replaceable>/sapreorg/<replaceable>cd-name</replaceable></programlisting>
@ -1899,7 +1900,7 @@ options SEMUME=100 #number of UNDO keys</programlisting>
&prompt.root; <userinput>mkdir install</userinput> &prompt.root; <userinput>mkdir install</userinput>
&prompt.root; <userinput>cd install</userinput></screen> &prompt.root; <userinput>cd install</userinput></screen>
<para>然后运行安装脚本,他会拷贝所有相关的文件到<filename class="directory">install</filename>目录:</para> <para>然后运行安装脚本,他会复制所有相关的文件到<filename class="directory">install</filename>目录:</para>
<screen>&prompt.root; <userinput>/oracle/<replaceable>SID</replaceable>/sapreorg/KERNEL/UNIX/INSTTOOL.SH</userinput></screen> <screen>&prompt.root; <userinput>/oracle/<replaceable>SID</replaceable>/sapreorg/KERNEL/UNIX/INSTTOOL.SH</userinput></screen>
@ -1907,7 +1908,7 @@ options SEMUME=100 #number of UNDO keys</programlisting>
我们有6个而不仅仅是3个EXPORT CDs。 我们有6个而不仅仅是3个EXPORT CDs。
基于这点,安装模板<filename>CENTRDB.R3S</filename>是用来安装一个标准的中央环境 基于这点,安装模板<filename>CENTRDB.R3S</filename>是用来安装一个标准的中央环境
<application>&r3;</application>和数据库而不是IDES中央环境 <application>&r3;</application>和数据库而不是IDES中央环境
所以从<filename class="directory">EXPORT1</filename>目录拷贝相应的<filename>CENTRDB.R3S</filename> 所以从<filename class="directory">EXPORT1</filename>目录复制相应的<filename>CENTRDB.R3S</filename>
否则<command>R3SETUP</command>只要求3个EXPORT CDs。 否则<command>R3SETUP</command>只要求3个EXPORT CDs。
</para> </para>
@ -2106,7 +2107,7 @@ options SEMUME=100 #number of UNDO keys</programlisting>
</tgroup> </tgroup>
</informaltable> </informaltable>
<para>如果没有把CD拷贝到不同的位置,那么<application>&sap;</application>安装程序就不能 <para>如果没有把CD复制到不同的位置,那么<application>&sap;</application>安装程序就不能
找到需要的CD通过CD上的<filename>LABEL.ASC</filename>来辨别), 找到需要的CD通过CD上的<filename>LABEL.ASC</filename>来辨别),
它会要求您挂上CD或键入加载路径。 它会要求您挂上CD或键入加载路径。
</para> </para>
@ -2320,7 +2321,7 @@ options SEMUME=100 #number of UNDO keys</programlisting>
<para>个安装很容易。挂上CD启动安装程序。它就会要求&oracle;home目录的定位 <para>个安装很容易。挂上CD启动安装程序。它就会要求&oracle;home目录的定位
然后拷贝那儿所有的程序。我不删除先前安装的RDBMS。 然后复制那里所有的程序。我不删除先前安装的RDBMS。
</para> </para>
@ -2331,7 +2332,7 @@ options SEMUME=100 #number of UNDO keys</programlisting>
<sect2 id="installingoracle817"> <sect2 id="installingoracle817">
<title>安装&oracle; 8.1.7 Linux压缩包</title> <title>安装&oracle; 8.1.7 Linux压缩包</title>
<para>拷贝<filename>oracle81732.tgz</filename>到您要安装的目录, <para>把 <filename>oracle81732.tgz</filename> 复制到您要安装的目录,
然后解压到<filename>/oracle/<replaceable>SID</replaceable>/817_32/</filename>。 然后解压到<filename>/oracle/<replaceable>SID</replaceable>/817_32/</filename>。
</para> </para>
</sect2> </sect2>

View file

@ -2,7 +2,7 @@
The FreeBSD Documentation Project The FreeBSD Documentation Project
The FreeBSD Simplified Chinese Project The FreeBSD Simplified Chinese Project
Original Revision: 1.53 Original Revision: 1.65
$FreeBSD$ $FreeBSD$
--> -->
@ -109,7 +109,7 @@
<title>未涉及的内容</title> <title>未涉及的内容</title>
<para>本章涵盖了与 <acronym>MAC</acronym> 框架有关的诸多方面的安全问题; <para>本章涵盖了与 <acronym>MAC</acronym> 框架有关的诸多方面的安全问题;
尽管如此, 本章将不涉及新 <acronym>MAC</acronym> 安全策略模块的开发成果。 而新的 <acronym>MAC</acronym> 安全策略模块的开发成果则不会涉及
<acronym>MAC</acronym> 框架中所包含的一部分安全策略模块, <acronym>MAC</acronym> 框架中所包含的一部分安全策略模块,
具有一些用于测试及新模块开发的特定属性, 具有一些用于测试及新模块开发的特定属性,
其中包括 &man.mac.test.4;、 &man.mac.stub.4; 其中包括 &man.mac.test.4;、 &man.mac.stub.4;
@ -134,6 +134,14 @@
可以通过使用区间来实施 need-to-know 安全策略。</para> 可以通过使用区间来实施 need-to-know 安全策略。</para>
</listitem> </listitem>
<listitem>
<para><emphasis>高水位线</emphasis>(high water mark)
高水位线策略是一种允许提高安全级别, 以期访问更高级别的信息的安全策略。
在多数情况下, 当进程结束时, 又会回到原先的安全级别。
目前, &os; <acronym>MAC</acronym>
框架尚未提供这样的策略, 在这里介绍其定义主要是希望给您一个完整的概念。</para>
</listitem>
<listitem> <listitem>
<para><emphasis>完整性</emphasis> 作为一个关键概念, <para><emphasis>完整性</emphasis> 作为一个关键概念,
完整性是数据可信性的一种程度。 完整性是数据可信性的一种程度。
@ -155,6 +163,14 @@
若程度增加, 其安全性也相应增加。</para> 若程度增加, 其安全性也相应增加。</para>
</listitem> </listitem>
<listitem>
<para><emphasis>低水位线</emphasis> (low water mark)
低水位线策略允许降低安全级别, 以访问安全性较差的信息。
多数情况下, 在进程结束时, 又会回到原先的安全级别。
目前在 &os; 中唯一实现这一安全策略的是
&man.mac.lomac.4;。</para>
</listitem>
<listitem> <listitem>
<para><emphasis>多重标签 (multilabel)</emphasis> <option>multilabel</option> <para><emphasis>多重标签 (multilabel)</emphasis> <option>multilabel</option>
属性是一个文件系统选项。 该选项可在单用户模式下通过 属性是一个文件系统选项。 该选项可在单用户模式下通过
@ -458,7 +474,7 @@ test: biba/high</screen>
:passwordtime=91d:\ :passwordtime=91d:\
:umask=022:\ :umask=022:\
:ignoretime@:\ :ignoretime@:\
:label=partition/13,mls/5,biba/10(5-15),lomac10[2]:</programlisting> :label=partition/13,mls/5,biba/10(5-15),lomac/10[2]:</programlisting>
<para><literal>label</literal> 选项用以设定用户分级默认标签, <para><literal>label</literal> 选项用以设定用户分级默认标签,
该标签将由 <acronym>MAC</acronym> 执行。 该标签将由 <acronym>MAC</acronym> 执行。
@ -667,6 +683,56 @@ test: biba/high</screen>
</sect2> </sect2>
</sect1> </sect1>
<sect1 id="mac-planning">
<title>规划安全配置</title>
<para>在实施新技术时, 首先进行规划都是非常好的习惯。
在这段时间, 管理员一般都应 <quote>进行全面的考察</quote>
这至少应包括下列因素:</para>
<itemizedlist>
<listitem>
<para>方案实施的必要条件;</para>
</listitem>
<listitem>
<para>方案实施的目标;</para>
</listitem>
</itemizedlist>
<para>就实施 <acronym>MAC</acronym> 而言, 这包括:</para>
<itemizedlist>
<listitem>
<para>如何在目标系统上对信息和资源进行分类。</para>
</listitem>
<listitem>
<para>需要限制哪类信息或资源的访问, 以及应采用何种限制。</para>
</listitem>
<listitem>
<para>需要使用哪些 <acronym>MAC</acronym> 模块来完成这些目标。</para>
</listitem>
</itemizedlist>
<para>尽管重新配置并修改系统资源和安全配置是可行的,
但查找整个系统并修复暨存的文件和用户帐号并不是一件轻而易举的事情。
规划有助于完成无问题且有效的可信系统实施。 <emphasis>事先</emphasis>
对采用 <acronym>MAC</acronym> 的可信系统, 以及其配置做试运行十分有益,
因为这对实施的成败至关重要。
草率散漫地配置 <acronym>MAC</acronym> 通常是导致失败的祸根。</para>
<para>不同的环境可能会有不同的需求。
建立多层次而完备的安全配置, 可以减少系统正式运转之后所需要的微调。
同样地, 接下来的章节将介绍管理员能够使用的各种不同的模块;
描述它们的使用和配置; 除此之外还有一些关于它们最适合的情景的介绍。
例如, web 服务器可能希望使用 &man.mac.biba.4; 和
&man.mac.bsdextended.4; 策略, 而其他情况下,
例如一台机器上只有少量的本地用户时, &man.mac.partition.4;
则是不错的选择。</para>
</sect1>
<sect1 id="mac-modules"> <sect1 id="mac-modules">
<title>模块配置</title> <title>模块配置</title>
@ -759,13 +825,13 @@ test: biba/high</screen>
使得管理员能够建立一种类似防火墙的规则集, 使得管理员能够建立一种类似防火墙的规则集,
以文件系统层次结构中的保护文件、 实用程序,以及目录。 以文件系统层次结构中的保护文件、 实用程序,以及目录。
在尝试访问文件系统对象时, 会遍历规则表, 在尝试访问文件系统对象时, 会遍历规则表,
直至找到匹配的规则, 或到达表尾。 这一行为可以通过使用 直至找到匹配的规则, 或到达表尾。 这一行为可以通过修改
&man.sysctl.8; 参数, &man.sysctl.8; 参数,
security.mac.bsdextended.firstmatch_enabled 来进行设置。 security.mac.bsdextended.firstmatch_enabled 来进行设置。
与 &os; 中的其他防火墙设置类似, 也可以建一个文件来配置访问控制策略, 与 &os; 中的其他防火墙设置类似, 也可以建一个文件来配置访问控制策略,
并通过 &man.rc.conf.5; 变量的配置在系统引导时加载它。</para> 并通过 &man.rc.conf.5; 变量的配置在系统引导时加载它。</para>
<para>规则表可以通过工具 &man.ugidfw.8; 工具来创建 <para>规则表可以通过工具 &man.ugidfw.8; 工具来输入
其语法类似 &man.ipfw.8;。 此外还可以通过使用 其语法类似 &man.ipfw.8;。 此外还可以通过使用
&man.libugidfw.3; 库来开发其他的工具。</para> &man.libugidfw.3; 库来开发其他的工具。</para>
@ -981,100 +1047,6 @@ test: biba/high</screen>
</sect2> </sect2>
</sect1> </sect1>
<sect1 id="mac-labelingpolicies">
<title>包含标签功能的 MAC 策略</title>
<para>接下来的几节中, 将讨论使用标签的 <acronym>MAC</acronym>
策略。</para>
<para>这一章从此处开始将集中于对
&man.mac.biba.4;、 &man.mac.lomac.4;、
&man.mac.partition.4; 以及 &man.mac.mls.4; 的介绍。</para>
<note>
<para>此处提供的仅仅是示范的配置, 不应用于在实际的生产环境中实施。
这份文档的目标是在展示配置写法的同时, 以实例的形式,
对如何实施和进行测试予以介绍。</para>
</note>
<para>要让配置正确工作, 首先需要进行一些准备工作。</para>
<sect2 id="mac-prep">
<title>准备使用标签策略</title>
<para>下述修改需要在
<filename>login.conf</filename> 文件上实施:</para>
<itemizedlist>
<listitem>
<para>需要增加一个 <literal>insecure</literal> 级, 或其他类似类型的分级。
这里, <literal>insecure</literal> 级并不是必需的,
只是作为例子加以展示; 不同的配置完全可以使用其他的分级名称。</para>
</listitem>
<listitem>
<para><literal>insecure</literal> 级应包含下列配置和定义。
其中的许多内容都可以根据需要修改,
但定义了默认标签的行都是必需的, 您应留下它们。</para>
<programlisting>insecure:\
:copyright=/etc/COPYRIGHT:\
:welcome=/etc/motd:\
:setenv=MAIL=/var/mail/$,BLOCKSIZE=K:\
:path=~/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:\
:manpath=/usr/share/man /usr/local/man:\
:nologin=/usr/sbin/nologin:\
:cputime=1h30m:\
:datasize=8M:\
:vmemoryuse=100M:\
:stacksize=2M:\
:memorylocked=4M:\
:memoryuse=8M:\
:filesize=8M:\
:coredumpsize=8M:\
:openfiles=24:\
:maxproc=32:\
:priority=0:\
:requirehome:\
:passwordtime=91d:\
:umask=022:\
:ignoretime@:\
:label=partition/13,mls/5,biba/10:</programlisting>
<para>需要在
&man.login.conf.5; 上执行 &man.cap.mkdb.1; 之后,
用户才能够切换到新的分级。</para>
<para><username>root</username> 用户名也应出现在某个登录级中;
否则, <username>root</username> 执行每一个命令的时候,
都需要使用 <command>setpmac</command>。</para>
<warning>
<para>重建 <filename>login.conf</filename>
数据库可能会导致 daemon 级在稍后发生某些错误。
简单地去掉注释掉 daemon 的注释符并重建数据库,
会有助于消除这类问题。</para>
</warning>
</listitem>
<listitem>
<para>确保将要使用
<acronym>MAC</acronym> 标签的所有分区, 都能够支持
<option>multilabel</option>。 我们必须这样做,
因为这里的很多例子中都包含了不同的、 用于测试目的的标签。
作为预防性措施之一, 您应复查
<command>mount</command> 命令的输出结果。</para>
</listitem>
<listitem>
<para>把将被应用更高级别的安全机制的那些用户转到新的用户 class 中。
运行 &man.pw.8;
或 &man.vipw.8; 可以完成这样的任务。</para>
</listitem>
</itemizedlist>
</sect2>
</sect1>
<sect1 id="mac-partition"> <sect1 id="mac-partition">
<title>MAC partition (分区) 模块</title> <title>MAC partition (分区) 模块</title>
@ -1257,21 +1229,34 @@ test: biba/high</screen>
<screen>&prompt.root; <userinput>getfmac test</userinput></screen> <screen>&prompt.root; <userinput>getfmac test</userinput></screen>
<para>这是 <acronym>MLS</acronym> 策略特性的一个摘要。 <para>以上是对于 <acronym>MLS</acronym> 策略提供功能的概要。
另一种方法是建立一个主策略文件, 另一种做法是在 <filename class="directory">/etc</filename>
把它放到 <filename class="directory">/etc</filename> 中建立一个主策略文件, 并在其中指定 <acronym>MLS</acronym> 策略信息,
指定 <acronym>MLS</acronym> 策略信息, 作为 <command>setfmac</command> 命令的输入。 这种方法,
并作为 <command>setfmac</command> 命令的输入。 将在其他策略之后进行介绍。</para>
这一方法将在其他策略之后进行介绍。</para>
<para>观察: 拥有较低 clearance 的对象不能够观察较高 clearance 的进程。 <sect2>
基本的策略是在每一个不应被读取的对象上应用 <literal>mls/high</literal> <title>规划托管敏感性</title>
即使需要在其上进行写操作。 在每所有不应被写的对象上应用
<literal>mls/low</literal> 即使需要在其上进行度操作。 <para>通过使用多级安全策略模块,
最后, 在其他对象上应用 管理员可以规划如何控制敏感信息的流向。 默认情况下,
<literal>mls/equal</literal>。 所有标记为 由于其默认的禁止向上读以及向下写的性质,
<literal>insecure</literal> 的用户应被设置为 系统会默认将所有对象置于较低的状态。 这样,
<literal>mls/low</literal>。</para> 所有的对象都可以访问,
而管理员则可以在配置阶段慢慢地进行提高信息的敏感度这样的修改。</para>
<para>除了前面介绍的三种基本标签选项之外,
管理员还可以根据需要将用户和用户组进行分组,
以阻止它们之间的信息流。 一些人们比较熟悉的信息限界词汇, 如
<literal>机密</literal>、 <literal>秘密</literal>
以及 <literal>绝密</literal> 可以方便您理解这一概念。
管理员也可以简单地根据项目级别建不同的分组。
无论采用何种分类方法, 在实施限制性的策略之前,
都必须首先想好如何进行规划。</para>
<para>这个安全策略模块最典型的用例是电子商务的 web 服务器,
其上的文件服务保存公司的重要信息以及金融机构的情况。
对于只有两三个用户的个人工作站而言, 则可能不甚适用。</para>
</sect1> </sect1>
<sect1 id="mac-biba"> <sect1 id="mac-biba">
@ -1372,9 +1357,35 @@ test: biba/high</screen>
&prompt.root; <userinput>getfmac test</userinput> &prompt.root; <userinput>getfmac test</userinput>
test: biba/low</screen> test: biba/low</screen>
<para>观察: 较低完整性级别的 subject 不能向较高完整性级别的 subject 写; <sect2>
较高完整性级别的 subject 也不能观察或读取较低完整性级别的对象。 <title>规划托管完整性</title>
设置最低级别的 label 能够使 subject 无法访问它。</para>
<para>与敏感性不同, 完整性是要确保不受信方不能对信息进行篡改。
这包括了在 subject 以及 object 之间传递的信息。
这能够确保用户只能修改甚至访问需要他们的信息。</para>
<para>&man.mac.biba.4; 安全策略模块允许管理员指定用户能够看到和执行的文件和程序,
并确保这些文件能够为系统及用户或用户组所信任, 而免受其他威胁。</para>
<para>在最初的规划阶段, 管理员必须做好将用户分成不同的等级、
级别和区域的准备。 在启动前后, 包括数据以及程序和使用工具在内的对象,
用户都会无法访问。 一旦启用了这个策略模块, 系统将默认使用高级别的标签,
而划分用户级别和等级的工作则交由管理员来进行配置。
与前面介绍的级别限界不同, 好的规划方法可能还包括 topic。
例如, 只允许开发人员修改代码库、 使用源代码编译器,
以及其他开发工具, 而其他用户则分入其他类别,
如测试人员、 设计人员, 以及普通用户,
这些用户可能只拥有读这些资料的权限。</para>
<para>通过其自然的安全控制, 完整性级别较低的主体,
就会无法向完整性级别高的主体进行写操作; 而完整性级别较高的主体,
也不能观察或读较低完整性级别的对象。 通过将对象的标签设为最低级,
可以阻止所有主体对其进行的访问操作。
这一安全策略模块预期的应用场合包括受限的 web 服务器、
开发和测试机, 以及源代码库。 而对于个人终端、
作为路由器的计算机, 以及网络防火墙而言,
它的用处就不大了。</para>
</sect2>
</sect1> </sect1>
<sect1 id="mac-lomac"> <sect1 id="mac-lomac">
@ -1424,10 +1435,10 @@ test: biba/low</screen>
</sect1> </sect1>
<sect1 id="mac-implementing"> <sect1 id="mac-implementing">
<title>通过使用 MAC 来实现安全的环境</title> <title>MAC Jail 中的 Nagios</title>
<indexterm> <indexterm>
<primary>MAC 实现举例</primary> <primary>MAC Jail 中的 Nagios</primary>
</indexterm> </indexterm>
<para>下面给出了通过多种 <acronym>MAC</acronym> 模块, <para>下面给出了通过多种 <acronym>MAC</acronym> 模块,
@ -1438,7 +1449,11 @@ test: biba/low</screen>
<para>在开始这些操作之前, 必须在每一个文件系统上设置 <para>在开始这些操作之前, 必须在每一个文件系统上设置
<literal>multilabel</literal> 选项, <literal>multilabel</literal> 选项,
这些操作在这一章开始的部分进行了介绍。 不完成这些操作, 这些操作在这一章开始的部分进行了介绍。 不完成这些操作,
将导致错误的结果。</para> 将导致错误的结果。 首先, 请确认已经安装了
<filename role="port">net-mngt/nagios-plugins</filename>、
<filename role="port">net-mngt/nagios</filename>
<filename role="port">www/apache13</filename> 这些 ports
并对其进行了配置, 且运转正常。</para>
<sect2> <sect2>
<title>创建一个 insecure (不安全) 用户 Class</title> <title>创建一个 insecure (不安全) 用户 Class</title>
@ -1468,11 +1483,11 @@ test: biba/low</screen>
:passwordtime=91d:\ :passwordtime=91d:\
:umask=022:\ :umask=022:\
:ignoretime@:\ :ignoretime@:\
:label=partition/13,mls/5:</programlisting> :label=biba/10:</programlisting>
<para>并在 default 用户 class 中加入:</para> <para>并在 default 用户 class 中加入:</para>
<programlisting>:label=mls/equal,biba/equal,partition/15:</programlisting> <programlisting>:label=biba/high:</programlisting>
<para>一旦完成上述操作, 就需要运行下面的命令来重建数据库:</para> <para>一旦完成上述操作, 就需要运行下面的命令来重建数据库:</para>
@ -1480,19 +1495,23 @@ test: biba/low</screen>
</sect2> </sect2>
<sect2> <sect2>
<title>配合正确的模块启动</title> <title>引导配置</title>
<para>在 <filename>/boot/loader.conf</filename> 中加入下面的配置, <para>现在暂时还不要重新启动, 我们还需要在
以保证系统初始化过程中加载那些模块:</para> <filename>/boot/loader.conf</filename> 中增加下面几行,
以便让模块随系统初始化一同加载:</para>
<programlisting>mac_biba_load="YES" <programlisting>mac_biba_load="YES"
mac_mls_load="YES" mac_biba_load="YES"
mac_seeotheruids_load="YES" mac_seeotheruids_load="YES"</programlisting>
mac_partition_load="YES"</programlisting>
</sect2> </sect2>
<sect2> <sect2>
<title>将所有用户设置为不安全的</title> <title>配置用户</title>
<para>使用下面的命令将 <username>root</username> 设为属于默认的 class</para>
<screen>&prompt.root; <userinput>pw usermod root -L default</userinput></screen>
<para>所有非 <username>root</username> 或系统的用户, <para>所有非 <username>root</username> 或系统的用户,
现在需要一个登录 class。 登录 class 是必须的, 现在需要一个登录 class。 登录 class 是必须的,
@ -1500,347 +1519,184 @@ mac_partition_load="YES"</programlisting>
下面的 <command>sh</command> 脚本应能完成这个工作:</para> 下面的 <command>sh</command> 脚本应能完成这个工作:</para>
<screen>&prompt.root; <userinput>for x in `awk -F: '($3 &gt;= 1001) &amp;&amp; ($3 != 65534) { print $1 }' \</userinput> <screen>&prompt.root; <userinput>for x in `awk -F: '($3 &gt;= 1001) &amp;&amp; ($3 != 65534) { print $1 }' \</userinput>
<userinput>/etc/passwd`; do pw usermod $x -L insecure; done;</userinput></screen> <userinput>/etc/passwd`; do pw usermod $x -L default; done;</userinput></screen>
<para>改完后, 需要在 <filename>/etc/master.passwd</filename> 上运行 <para>将 <username>nagios</username> 和
<command>cap_mkdb</command> 命令。</para> <username>www</username> 这两个用户归入不安全 class</para>
<screen>&prompt.root; <userinput>pw usermod nagios -L default</userinput></screen>
<screen>&prompt.root; <userinput>pw usermod www -L default</userinput></screen>
</sect2> </sect2>
<sect2> <sect2>
<title>完成配置</title> <title>创建上下文文件</title>
<para>现在需要创建一个 contexts 文件; <para>接下来需要创建一个上下文文件; 您可以把下面的实例放到
下面的例子来自 Robert Watson 的策略示例, 应放到
<filename>/etc/policy.contexts</filename> 中。</para> <filename>/etc/policy.contexts</filename> 中。</para>
<programlisting># 这是系统中的默认 BIBA/MLS 策略。 <programlisting># This is the default BIBA policy for this system.
.* biba/high,mls/high # System:
/sbin/dhclient biba/high(low),mls/high(low) /var/run biba/equal
/dev(/.*)? biba/equal,mls/equal /var/run/* biba/equal
# This is not an exhaustive list of all "privileged" devices.
/dev/mdctl biba/high,mls/high
/dev/pci biba/high,mls/high
/dev/k?mem biba/high,mls/high
/dev/io biba/high,mls/high
/dev/agp.* biba/high,mls/high
(/var)?/tmp(/.*)? biba/equal,mls/equal
/tmp/\.X11-unix biba/high(equal),mls/high(equal)
/tmp/\.X11-unix/.* biba/equal,mls/equal
/proc(/.*)? biba/equal,mls/equal
/mnt.* biba/low,mls/low
(/usr)?/home biba/high(low),mls/high(low)
(/usr)?/home/.* biba/low,mls/low
/var/mail(/.*)? biba/low,mls/low
/var/spool/mqueue(/.*)? biba/low,mls/low
(/mnt)?/cdrom(/.*)? biba/high,mls/high
(/usr)?/home/(ftp|samba)(/.*)? biba/high,mls/high
/var/log/sendmail\.st biba/low,mls/low
/var/run/utmp biba/equal,mls/equal
/var/log/(lastlog|wtmp) biba/equal,mls/equal</programlisting>
<para>这个策略将通过在信息的上下行流上, /dev biba/equal
根据左边列出的工具和目录实施限制来强制安全。</para> /dev/* biba/equal
<para>可以通过下面的命令将其读入我们的系统:</para> /var biba/equal
/var/spool biba/equal
/var/spool/* biba/equal
/var/log biba/equal
/var/log/* biba/equal
/tmp biba/equal
/tmp/* biba/equal
/var/tmp biba/equal
/var/tmp/* biba/equal
/var/spool/mqueue biba/equal
/var/spool/clientmqueue biba/equal
# For Nagios:
/usr/local/etc/nagios
/usr/local/etc/nagios/* biba/10
/var/spool/nagios biba/10
/var/spool/nagios/* biba/10
# For apache
/usr/local/etc/apache biba/10
/usr/local/etc/apache/* biba/10</programlisting>
<para>这个策略通过在信息流上设置限制来强化安全。
在这个配置中, 包括 <username>root</username> 和其他用户在内的用户,
都不允许访问 <application>Nagios</application>。 作为
<application>Nagios</application> 一部分的配置文件和进程,
都是完全独立的, 也称为 jailed。</para>
<para>接下来可以用下面的命令将其读入系统:</para>
<screen>&prompt.root; <userinput>setfsmac -ef /etc/policy.contexts /</userinput> <screen>&prompt.root; <userinput>setfsmac -ef /etc/policy.contexts /</userinput>
&prompt.root; <userinput>setfsmac -ef /etc/policy.contexts /usr</userinput></screen> &prompt.root; <userinput>setfsmac -ef /etc/policy.contexts /</userinput></screen>
<note> <note>
<para>上述文件系统布局, 可能随环境而略有不同。</para> <para>随环境不同前述的文件系统布局可能会有所不同;
不过无论如何, 都只能在一个文件系统上运行它。</para>
</note> </note>
<para>在 <filename>/etc/mac.conf</filename> 文件中的 main <para>在 <filename>/etc/mac.conf</filename> 文件中的 main
小节需要进行下面的修改:</para> 小节需要进行下面的修改:</para>
<programlisting>default_labels file ?biba,?mls <programlisting>default_labels file ?biba
default_labels ifnet ?biba,?mls default_labels ifnet ?biba
default_labels process ?biba,?mls,?partition default_labels process ?biba
default_labels socket ?biba,?mls</programlisting> default_labels socket ?biba</programlisting>
</sect2> </sect2>
<sect2> <sect2>
<title>对配置进行测试</title> <title>启用网络</title>
<para>在
<filename>/boot/loader.conf</filename> 中增加下列内容:</para>
<programlisting>security.mac.biba.trust_all_interfaces=1</programlisting>
<para>将下述内容加入 <filename>rc.conf</filename> 中的网络接口配置。
如果主 Internet 配置是通过 <acronym>DHCP</acronym> 完成的,
则需要在每次系统启动之后手工执行类似的配置:</para>
<programlisting>maclabel biba/equal</programlisting>
</sect2>
<sect2>
<title>测试配置</title>
<indexterm> <indexterm>
<primary>MAC 配置测试</primary> <primary>MAC Configuration Testing (MAC 配置测试)</primary>
</indexterm> </indexterm>
<para>使用 <command>adduser</command> 命令来增加用户, <para>首先要确认 web 服务以及
并把这个用户放到 <literal>insecure</literal> <application>Nagios</application> 不会随系统的初始化和重启过程而自动启动。
class 中, 以用于测试。</para> 在此之前, 请在此确认
<username>root</username> 用户不能访问 <application>Nagios</application>
配置目录中的任何文件 如果 <username>root</username> 能够在 <filename>/var/spool/nagios</filename>
中运行 &man.ls.1; 则表示配置有误。 如果配置正确的话,
您会收到一条 <quote>permission denied</quote> 错误信息。</para>
<para>下面的例子中混合了 <para>如果一切正常, <application>Nagios</application>、
<username>root</username> 和普通用户 tests 的测试结果, <application>Apache</application> 以及
并使用提示符来区别它们。</para> <application>Sendmail</application> 就可以按照适应安全策略的方式启动了。
下面的命令将完成此工作:</para>
<sect3> <screen>&prompt.root; <userinput>cd /etc/mail &amp;&amp; make stop &amp;&amp; \
<title>基本的标签测试</title> setpmac biba/equal make start &amp;&amp; setpmac biba/10 apachectl start &amp;&amp; \
setpmac biba/10 /usr/local/etc/rc.d/nagios.sh forcestart</userinput></screen>
<screen>&prompt.user; <userinput>getpmac</userinput> <para>再次检查是否一切正常。 如果不是的话, 请检查日志文件和错误信息。
biba/15(15-15),mls/15(15-15),partition/15 此外, 还可以用 &man.sysctl.8; 来临时禁用 &man.mac.biba.4;
&prompt.root; <userinput>setpmac partition/15,mls/equal top</userinput></screen> 安全策略模块的强制措施, 并象之前那样进行配置和启动服务。</para>
<note> <note>
<para>在启动其他 top 进程之前应该首先杀掉我们的这个 top 进程。</para> <para><username>root</username> 用户可以放心大胆地修改安全强制措施,
并编辑配置文件。 下面的命令可以对安全策略进行降级, 并启动一个新的
shell</para>
<screen>&prompt.root; <userinput>setpmac biba/10 csh</userinput></screen>
<para>要阻止这种情况发生,
就需要配置 &man.login.conf.5; 中许可的命令范围了。 如果 &man.setpmac.8;
尝试执行超越许可范围的命令, 则会返回一个错误, 而不是执行命令。
在这个例子中, 可以把 root 设为
<literal>biba/high(high-high)</literal>。</para>
</note> </note>
</sect3>
<sect3>
<title>MAC Seeotheruids 测试</title>
<screen>&prompt.user; <userinput>ps Zax</userinput>
biba/15(15-15),mls/15(15-15),partition/15 1096 #C: S 0:00.03 -su (bash)
biba/15(15-15),mls/15(15-15),partition/15 1101 #C: R+ 0:00.01 ps Zax</screen>
<para>我们应该看不到其他用户的进程。</para>
</sect3>
<sect3>
<title>MAC Partition 测试</title>
<para>为其他测试禁用 <acronym>MAC</acronym>
<literal>seeotheruids</literal> 策略:</para>
<screen>&prompt.root; <userinput>sysctl security.mac.seeotheruids.enabled=0</userinput>
&prompt.user; <userinput>ps Zax</userinput>
LABEL PID TT STAT TIME COMMAND
biba/equal(low-high),mls/equal(low-high),partition/15 1122 #C: S+ 0:00.02 top
biba/15(15-15),mls/15(15-15),partition/15 1096 #C: S 0:00.05 -su (bash)
biba/15(15-15),mls/15(15-15),partition/15 1123 #C: R+ 0:00.01 ps Zax</screen>
<para>现在所有的用户都应能够看到他们的 partition 中的所有进程了。</para>
</sect3>
<sect3>
<title>测试 Biba 和 MLS 标签</title>
<screen>&prompt.root; <userinput>setpmac partition/15,mls/equal,biba/high\(high-high\) top</userinput>
&prompt.user; <userinput>ps Zax</userinput>
LABEL PID TT STAT TIME COMMAND
biba/high(high-high),mls/equal(low-high),partition/15 1251 #C: S+ 0:00.02 top
biba/15(15-15),mls/15(15-15),partition/15 1096 #C: S 0:00.06 -su (bash)
biba/15(15-15),mls/15(15-15),partition/15 1157 #C: R+ 0:00.00 ps Zax</screen>
<para>Biba 策略允许我们读取标签为较高标签的对象。</para>
<screen>&prompt.root; <userinput>setpmac partition/15,mls/equal,biba/low top</userinput>
&prompt.user; <userinput>ps Zax</userinput>
LABEL PID TT STAT TIME COMMAND
biba/15(15-15),mls/15(15-15),partition/15 1096 #C: S 0:00.07 -su (bash)
biba/15(15-15),mls/15(15-15),partition/15 1226 #C: R+ 0:00.01 ps Zax</screen>
<para>Biba 策略不允许读取低标签的对象;
但 <acronym>MLS</acronym> 允许此类操作。</para>
<screen>&prompt.user; <userinput>ifconfig bge0 | grep maclabel</userinput>
maclabel biba/low(low-low),mls/low(low-low)
&prompt.user; <userinput>ping -c 1 192.0.34.166</userinput>
PING 192.0.34.166 (192.0.34.166): 56 data bytes
ping: sendto: Permission denied</screen>
<para>由于这个原因, 用户将无法 ping
<hostid role="domainname">example.com</hostid>
或其他主机。</para>
<para>要防止发生这类错误, 需要运行下面的命令:</para>
<screen>&prompt.root; <userinput>sysctl security.mac.biba.trust_all_interfaces=1</userinput></screen>
<para>这将把默认的接口标签置为不安全模式,
这样就不会强制使用 Biba 策略了。</para>
<screen>&prompt.root; <userinput>ifconfig bge0 maclabel biba/equal\(low-high\),mls/equal\(low-high\)</userinput>
&prompt.user; <userinput>ping -c 1 192.0.34.166</userinput>
PING 192.0.34.166 (192.0.34.166): 56 data bytes
64 bytes from 192.0.34.166: icmp_seq=0 ttl=50 time=204.455 ms
--- 192.0.34.166 ping statistics ---
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max/stddev = 204.455/204.455/204.455/0.000 ms</screen>
<para>通过设置更为正确的标签, 我们就能够发出
<command>ping</command> 请求了。</para>
<para>现在建立几个文件来测试一下读写操作:</para>
<screen>&prompt.root; <userinput>touch test1 test2 test3 test4 test5</userinput>
&prompt.root; <userinput>getfmac test1</userinput>
test1: biba/equal,mls/equal
&prompt.root; <userinput>setfmac biba/low test1 test2; setfmac biba/high test4 test5; \
setfmac mls/low test1 test3; setfmac mls/high test2 test4</userinput>
&prompt.root; <userinput>setfmac mls/equal,biba/equal test3 &amp;&amp; getfmac test?</userinput>
test1: biba/low,mls/low
test2: biba/low,mls/high
test3: biba/equal,mls/equal
test4: biba/high,mls/high
test5: biba/high,mls/equal
&prompt.root; <userinput>chown testuser:testuser test?</userinput></screen>
<para>所有这些文件应属于
<username>testuser</username> 用户。
现在测试一下读操作:</para>
<screen>&prompt.user; <userinput>ls</userinput>
test1 test2 test3 test4 test5
&prompt.user; <userinput>ls test?</userinput>
ls: test1: Permission denied
ls: test2: Permission denied
ls: test4: Permission denied
test3 test5</screen>
<para>没有允许我们 observe pairs 例如:
<literal>(biba/low,mls/low)</literal>
<literal>(biba/low,mls/high)</literal> 以及
<literal>(biba/high,mls/high)</literal>。
因此, 很显然读操作应该被拒绝。
现在测试一下写操作:</para>
<screen>&prompt.user; <userinput>for i in `echo test*`; do echo 1 &gt; $i; done</userinput>
-su: test1: Permission denied
-su: test4: Permission denied
-su: test5: Permission denied</screen>
<para>和读操作的尝试类似, write pairs 不应允许这类操作; 例如:
<literal>(biba/low,mls/high)</literal> 和
<literal>(biba/equal,mls/equal)</literal>。</para>
<screen>&prompt.user; <userinput>cat test?</userinput>
cat: test1: Permission denied
cat: test2: Permission denied
1
cat: test4: Permission denied</screen>
<para>现在以 <username>root</username> 身份进行:</para>
<screen>&prompt.root; <userinput>cat test2</userinput>
1</screen>
</sect3>
</sect2> </sect2>
</sect1> </sect1>
<sect1 id="MAC-examplehttpd"> <sect1 id="mac-userlocked">
<title>另一个例子: 使用 MAC 来约束 Web 服务器</title> <title>User Lock Down</title>
<para>将配置一个独立的位置来保存 web 数据 <para>这个例子针对的是一个相对较小的存储系统,
并只允许特定的用户来访问。 这样 其用户数少于五十。 用户能够在其上登录,
拥有 <literal>biba/high</literal> 的进程就能够访问 web 数据了。</para> 除了存储数据之外, 还可以访问一些其他资源。</para>
<para>首先需要创建一个用于保存 web 数据的目录:</para> <para>在这个场景中, &man.mac.bsdextended.4; 可以与
&man.mac.seeotheruids.4; 并存, 以达到禁止访问非授权资源,
同时隐藏其他用户的进程的目的。</para>
<screen>&prompt.root; <userinput>mkdir /usr/home/cvs</userinput></screen> <para>首先, 在
<filename>/boot/loader.conf</filename> 中加入:</para>
<para>接下来使用 <command>cvs</command> 来对其进行初始化:</para> <programlisting>mac_seeotheruids_enabled="YES"</programlisting>
<screen>&prompt.root; <userinput>cvs -d /usr/home/cvs init</userinput></screen> <para>随后, 可以通过下述 rc.conf 变量来启用 &man.mac.bsdextended.4;
安全策略模块:</para>
<para>第一件事是启用 <literal>biba</literal> <programlisting>ugidfw_enable="YES"</programlisting>
策略, 因此应把 <literal>mac_biba_enable="YES"</literal>
加入到 <filename>/boot/loader.conf</filename>。
当然, 这样做的前提是在内核中启用了 <acronym>MAC</acronym> 支持。</para>
<para>从现在开始, 整个系统中的所有对象, <para>默认规则保存在
都会默认设置为 <literal>biba/high</literal>。</para> <filename>/etc/rc.bsdextended</filename> 中,
并在系统初始化时加载; 但是, 其中的默认项可能需要进行一些改动。
因为这台机器只为获得了授权的用户提供服务, 因此除了最后两项之外,
其它内容都应保持注释的状态。 这两项规则将默认强制加载属于用户的系统对象。</para>
<para>必须在 <filename>login.conf</filename> 中的 default (默认) 用户 <para>在这台机器上添加需要的用户并重新启动。 出于测试的目的,
class 上进行下列修改:</para> 请在两个控制台上分别以不同的用户身份登录。
运行 <command>ps aux</command> 命令来看看是否能看到其他用户的进程。
此外, 在其他用户的主目录中运行 &man.ls.1; 命令,
如果配置正确, 则这个命令会失败。</para>
<programlisting>:ignoretime@:\ <para>不要尝试以 <username>root</username> 用户的身份进行测试,
:umask=022:\ 除非您已经修改了特定的 <command>sysctl</command> 来阻止超级用户的访问。</para>
:label=biba/high:</programlisting>
<para>现在每个用户都需要放到 default class 中;
类似下面的命令:</para>
<screen>&prompt.root; <userinput>for x in `awk -F: '($3 &gt;= 1001) &amp;&amp; ($3 != 65534) { print $1 }' \</userinput>
<userinput>/etc/passwd`; do pw usermod $x -L default; done;</userinput></screen>
<para>可以很快地完成这个工作。</para>
<para>接下来建立另一个 class web 它是 default 的一个副本,
但将标签设置为 <literal>biba/10</literal>。</para>
<para>建立一个用于在 <application>cvs</application> 中的主 web
库的数据上工作的用户。 这个用户必须被放到我们新建立的那个登录
class <username>web</username> 中。</para>
<para>由于所有地方的默认值都是 <literal>biba/high</literal>
因此库也是一样的。 web 数据必须同样地被用户读写;
然而, 由于我们的 web 服务器将要提供
<literal>biba/high</literal> 用户需要访问的数据,
因此必须将所有这些数据降级。</para>
<para>完成这些事情的最好工具是 &man.sh.1; 和
&man.cron.8; 它们已经由 &os; 提供了。
下面的脚本将完成全部所需的工作:</para>
<programlisting>PATH=/bin:/usr/bin:/usr/local/bin; export PATH;
CVSROOT=/home/repo; export CVSROOT;
cd /home/web;
cvs -qR checkout -P htdocs;
exit;</programlisting>
<note> <note>
<para>很多时候, <command>cvs</command> <para>在添加新用户时, 他们的 &man.mac.bsdextended.4
Id tag 必须放到 web 站点的数据文件中。</para> 规则不会自动出现在规则集表中。 要迅速更新规则集,
只需简单地使用 &man.kldunload.8; 和 &man.kldload.8;
工具来卸载并重新加载安全策略模块。</para>
</note> </note>
<para>现在可以把这个脚本放到
<username>web</username> 的主目录中, 并增加下面的
&man.crontab.1; 项:</para>
<programlisting># Check out the web data as biba/low every twelve hours:
0 */12 * * * web /home/web/checkout.sh</programlisting>
<para>这样, 这台机器上每十二小时都会检出一次
<acronym>HTML</acronym> 源代码。</para>
<para>Web 服务器的默认启动方式也必须进行修改,
以便以 <literal>biba/low</literal> 来启动服务。
这可以通过对
<filename>/usr/local/etc/rc.d/apache.sh</filename>
脚本进行下面的修改来完成:</para>
<programlisting>command="setpmac biba/low /usr/local/sbin/httpd"</programlisting>
<para><application>Apache</application> 配置必须进行修改,
以便在 <literal>biba/10</literal> 策略下工作。
因为这时软件必须配置为在设置了 <literal>biba/10</literal>
的目录中记录日志, 否则将返回 <errorname>access denied</errorname>
错误。</para>
<note>
<para>完全按照上面的例子进行配置的话,
<literal>docroot</literal> 应被设置为
<filename>/home/web/htdocs</filename> 否则,
<application>Apache</application>
将无法查找其提供文档的目录。</para>
</note>
<para>同时, 也需要修改一些其他的配置变量,
包括 <acronym>PID</acronym> 文件,
<literal>Scoreboardfile</literal>
<literal>DocumentRoot</literal>、 日志文件的位置,
以及其他需要写权限的配置。
使用 <literal>biba</literal> 时,
所有发生在 <emphasis>没有</emphasis> 配置为
<literal>biba/low</literal> 的写操作都会失败。</para>
<!--
PROBLEM: CAN THIS WORK? OR SHOULD IT BE start_precmd? More testing need here.
-->
</sect1> </sect1>
<!--
XXX
<sect1 id="mac-examplesandbox">
<title>An Example of a MAC Sandbox</title>
<para>An example of placing users in a sandbox using
<acronym>MAC</acronym> should go here.</para>
</sect1>
-->
<sect1 id="mac-troubleshoot"> <sect1 id="mac-troubleshoot">
<title>MAC 框架的故障排除</title> <title>MAC 框架的故障排除</title>
@ -1973,6 +1829,14 @@ XXX
仔细检查 <filename>login.conf</filename> 仔细检查 <filename>login.conf</filename>
以确保所有的 <option>label</option> 选项都已经删除, 然后使用 以确保所有的 <option>label</option> 选项都已经删除, 然后使用
<command>cap_mkdb</command> 命令来重建数据库。</para> <command>cap_mkdb</command> 命令来重建数据库。</para>
<para>这种情况也可能在通过策略来限制访问
<filename>master.passwd</filename> 文件或对应的那个数据库时发生。
这主要是由于管理员修改受某一 label 限制的文件,
而与系统级的通用策略发生了冲突。 这时,
用户信息将由系统直接读取, 而在文件继承了新的 label
之后则会拒绝访问。 此时, 只需使用
&man.sysctl.8; 禁用这一策略, 一切就会恢复正常了。</para>
</sect2> </sect2>
</sect1> </sect1>
</chapter> </chapter>

View file

@ -2,7 +2,7 @@
The FreeBSD Documentation Project The FreeBSD Documentation Project
The FreeBSD Chinese Documentation Project The FreeBSD Chinese Documentation Project
Original Revision: 1.412 Original Revision: 1.416
$FreeBSD$ $FreeBSD$
--> -->
@ -519,7 +519,7 @@ Warning: Permanently added 'anoncvs.freebsd.org' (DSA) to the list of known host
<title>为什么我该使用 <application>CTM</application>?</title> <title>为什么我该使用 <application>CTM</application>?</title>
<para><application>CTM</application> 会给您一份 FreeBSD <para><application>CTM</application> 会给您一份 FreeBSD
源代码树的本地拷贝。代码树有很多的 源代码树的本地副本。 代码树有很多的
<quote>flavors</quote> 可用。不管您是希望跟踪完整的 CVS 树还是只是一个分支, <quote>flavors</quote> 可用。不管您是希望跟踪完整的 CVS 树还是只是一个分支,
<application>CTM</application> 都会给您提供信息。 <application>CTM</application> 都会给您提供信息。
如果您是 FreeBSD 上的一个活跃的开发者,但是缺乏或者不存在 TCP/IP 连接,或者只是希望把变化自动发送给您, 如果您是 FreeBSD 上的一个活跃的开发者,但是缺乏或者不存在 TCP/IP 连接,或者只是希望把变化自动发送给您,
@ -543,7 +543,7 @@ Warning: Permanently added 'anoncvs.freebsd.org' (DSA) to the list of known host
<quote>current</quote> 级别)。</para> <quote>current</quote> 级别)。</para>
<para><application>CTM</application> 程序从版本 2.0 发布以来 <para><application>CTM</application> 程序从版本 2.0 发布以来
已经是 FreeBSD 的一部分了,如果您有一份源代码拷贝的话它位于 已经是 FreeBSD 的一部分了,如果您安装了源代码副本的话, 它位于
<filename>/usr/src/usr.sbin/ctm</filename>。</para> <filename>/usr/src/usr.sbin/ctm</filename>。</para>
<para>您喂给 <application>CTM</application> 的 <quote>deltas</quote> <para>您喂给 <application>CTM</application> 的 <quote>deltas</quote>
@ -602,7 +602,7 @@ Warning: Permanently added 'anoncvs.freebsd.org' (DSA) to the list of known host
然而现在已经不这样做了。</para> 然而现在已经不这样做了。</para>
<para>因为代码树有数十兆字节,您应该更喜欢从手头上已经有的东西开始。如果您有一张 <para>因为代码树有数十兆字节,您应该更喜欢从手头上已经有的东西开始。如果您有一张
-RELEASE CD 光盘,您可以从里面拷贝或者解压缩一份初始代码出来。 -RELEASE CD 光盘,您可以从里面复制或者解压缩一份初始代码出来。
这会节省非常多的数据传输量。</para> 这会节省非常多的数据传输量。</para>
<para>您会发现这些<quote>初始的</quote> deltas 名字的数字后面都有个 <para>您会发现这些<quote>初始的</quote> deltas 名字的数字后面都有个
@ -644,7 +644,7 @@ Warning: Permanently added 'anoncvs.freebsd.org' (DSA) to the list of known host
<para>如果这些 deltas 很难重新下载的话不要删除它们。 <para>如果这些 deltas 很难重新下载的话不要删除它们。
有些东西坏掉的时候您会想到保留它们的。 有些东西坏掉的时候您会想到保留它们的。
即使您只有软盘,也请考虑使用 即使您只有软盘,也请考虑使用
<command>fdwrite</command> 来做一份拷贝。</para> <command>fdwrite</command> 来做一份副本。</para>
</sect2> </sect2>
<sect2> <sect2>
@ -2302,9 +2302,12 @@ doc/zh_*</screen>
<screen>&prompt.root; <userinput>portsnap extract</userinput></screen> <screen>&prompt.root; <userinput>portsnap extract</userinput></screen>
<note> <note>
<para>在默认安装中, 并不会自动建立 <para>默认安装时, 并不会自动创建
<filename role="directory">/usr/ports</filename>。 在使用 <filename role="directory">/usr/ports</filename> 这个目录。
<command>portsnap</command> 之前应该先建立它。</para> 如果您使用 &os;&nbsp;6.0-RELEASE 在首次使用
<command>portsnap</command> 之前应手工创建这个目录。
在更高版本的 &os; 和 <application>Portsnap</application> 中,
这个操作会由 <command>portsnap</command> 命令自动完成。<para>
</note> </note>
</sect2> </sect2>
@ -2343,16 +2346,16 @@ doc/zh_*</screen>
<para>此外, 强烈建议不要将 <para>此外, 强烈建议不要将
<command>portsnap update</command> 作为 <command>portsnap update</command> 作为
<command>cron</command> 任务来运行, 因为它可能给正在同时进行的 port <command>cron</command> 任务来运行, 因为它可能给正在同时进行的 port
安装带来大问题。 不过, 更新 ports 的 INDEX 文件一般并无大碍, 这可以通过 安装带来大问题。 不过, 更新 ports 的 <filename>INDEX</filename> 文件一般并无大碍, 这可以通过
<command>portsnap</command>的 <command>portsnap</command>的
<option>-I</option> 参数来实现 (显然, 如果 <option>-I</option> 参数来实现 (显然, 如果
<command>portsnap -I update</command> 是通过 <command>portsnap -I update</command> 是通过
<command>cron</command> 来运行的, 就需要在之后执行不带 <option>-I</option> 的 <command>cron</command> 来运行的, 在之后还需要执行不带 <option>-I</option> 的
<command>portsnap update</command> 来更新 ports tree 余下的部分。)</para> <command>portsnap update</command> 来更新 ports tree 余下的部分。)</para>
<para>可以在 <filename>/etc/crontab</filename> <para>可以在 <filename>/etc/crontab</filename>
中加入下列设置, 以便让 <command>portsnap</command> 更新其压缩快照, 以及位于 中加入下列设置, 以便让 <command>portsnap</command> 更新其压缩快照, 以及位于
<filename>/usr/ports/</filename> 中的 INDEX 文件, <filename>/usr/ports/</filename> 中的 <filename>INDEX</filename> 文件,
并在有 port 过期时发出邮件通知:</para> 并在有 port 过期时发出邮件通知:</para>
<programlisting>0 3 * * * root portsnap -I cron update &amp;&amp; pkg_version -vIL=</programlisting> <programlisting>0 3 * * * root portsnap -I cron update &amp;&amp; pkg_version -vIL=</programlisting>

View file

@ -2,7 +2,7 @@
The FreeBSD Documentation Project The FreeBSD Documentation Project
The FreeBSD Simplified Chinese Documentation Project The FreeBSD Simplified Chinese Documentation Project
Original Revision: 1.253 Original Revision: 1.256
$FreeBSD$ $FreeBSD$
--> -->
@ -559,10 +559,10 @@ docbook =
<procedure> <procedure>
<title>Portsnap 方式</title> <title>Portsnap 方式</title>
<para>&man.portsnap.8; 是另一种用于发布 <para><application>Portsnap</application> 是另一种用于发布
Ports 套件的方法。 它最早从 &os;&nbsp;6.0 开始引入。 Ports 套件的方法。 它最早从 &os;&nbsp;6.0 开始引入。
在较早的系统中, 您可以通过 <filename 在较早的系统中, 您可以通过 <filename
role="package">sysutils/portsnap</filename> port 来安装它:</para> role="package">sysutils/portsnap</filename> package 来安装它:</para>
<screen>&prompt.root; <userinput>pkg_add -r portsnap</userinput></screen> <screen>&prompt.root; <userinput>pkg_add -r portsnap</userinput></screen>
@ -571,8 +571,14 @@ docbook =
功能的详细描述。</para> 功能的详细描述。</para>
<step> <step>
<para>如果没有的话, 建立一个空的 <filename <para>如果您使用 &os;&nbsp;6.1-RELEASE 或,
role="directory">/usr/ports</filename> 目录。</para> 或通过 port 或 package 安装了较新版本的 <application>Portsnap</application>
的话, 可以直接跳过这一步。 <filename
role="directory">/usr/ports</filename> 将在首次使用 &man.portsnap.8;
命令时自动创建。 而如果您使用的是较早期版本的
<application>Portsnap</application>
就只能手工创建空的 <filename
role="directory">/usr/ports</filename> 目录了。</para>
<screen>&prompt.root; <userinput>mkdir /usr/ports</userinput></screen> <screen>&prompt.root; <userinput>mkdir /usr/ports</userinput></screen>
</step> </step>
@ -809,9 +815,9 @@ docbook =
<note> <note>
<para>使用 <command>make <para>使用 <command>make
install clean</command> 可以代替 <command>make</command>、 install clean</command> 可以一步完成 <command>make</command>、
<command>make install</command> 和 <command>make clean</command> <command>make install</command> 和 <command>make clean</command>
这三个分开的步骤。</para> 这三个分开的步骤的工作。</para>
</note> </note>
<note> <note>

View file

@ -850,10 +850,10 @@ set nbns 203.14.100.5</programlisting>
<term>Line 15:</term> <term>Line 15:</term>
<listitem> <listitem>
<para>Your ISP will not normally require that you log into <para>如果您使用的是 PAP 或 CHAP 一般来说 ISP
the server if you are using PAP or CHAP. You must 就不会要求您登录服务器了。 这时,
therefore disable your <quote>set login</quote> 就必须禁用 <quote>set login</quote>
string.</para> 设置。</para>
</listitem> </listitem>
</varlistentry> </varlistentry>
</variablelist> </variablelist>
@ -1666,7 +1666,7 @@ OK
这通常是 <acronym>ISP</acronym> 等待您这一端发起协商时发生了错误。 这通常是 <acronym>ISP</acronym> 等待您这一端发起协商时发生了错误。
此时, 使用 <command>~p</command> 命令将强制 ppp 开始发送配置信息。</para> 此时, 使用 <command>~p</command> 命令将强制 ppp 开始发送配置信息。</para>
<para>如果您没有看到登提示, 则很可能需要使用 <para>如果您没有看到登提示, 则很可能需要使用
<acronym>PAP</acronym> 或 <acronym>PAP</acronym> 或
<acronym>CHAP</acronym> 验证来代替前面例子中的 <acronym>CHAP</acronym> 验证来代替前面例子中的
&unix; 风格验证。 要使用 &unix; 风格验证。 要使用
@ -1864,18 +1864,18 @@ ppp_profile="name_of_service_provider"</programlisting>
</sect1> </sect1>
<sect1 id="pppoa"> <sect1 id="pppoa">
<title>Using <application>PPP</application> over ATM (PPPoA)</title> <title>使用 ATM 上的 <application>PPP</application> (PPPoA)</title>
<indexterm><primary>PPP</primary><secondary>over ATM</secondary></indexterm> <indexterm><primary>PPP</primary><secondary>over ATM</secondary></indexterm>
<indexterm> <indexterm>
<primary>PPPoA</primary> <primary>PPPoA</primary>
<see>基于ATM的PPP</see> <see>基于ATM的PPP</see>
</indexterm> </indexterm>
<para>以下将介绍如何设置基于ATM的PPP(PPPoA). <para>以下将介绍如何设置基于ATM的PPP(PPPoA)
PPPoA是欧洲DSL提供商的普遍选择 .</para> PPPoA是欧洲DSL提供商的普遍选择</para>
<sect2> <sect2>
<title>使用带有一个Alcatel &speedtouch;USB的PPPoA </title> <title>使用 Alcatel &speedtouch;USB 的 PPPoA</title>
<para>针对这一设备的 PPPoA 支持, 在 <para>针对这一设备的 PPPoA 支持, 在
FreeBSD 中是作为 port 提供的, 因为其固件使用了 <ulink FreeBSD 中是作为 port 提供的, 因为其固件使用了 <ulink
@ -1883,13 +1883,13 @@ ppp_profile="name_of_service_provider"</programlisting>
因而不能与 FreeBSD 的基本系统一起免费地再发布。</para> 因而不能与 FreeBSD 的基本系统一起免费地再发布。</para>
<para>使用 <link <para>使用 <link
linkend="ports">Ports Collection</link> 可以非常方便地安装 linkend="ports">Ports 套件</link> 可以非常方便地安装
<filename role="package">net/pppoa</filename> port <filename role="package">net/pppoa</filename> port
之后按照它提供的指使操作就可以了。</para> 之后按照它提供的指使操作就可以了。</para>
<para>和许多 USB 设备类似, 阿尔卡特的 &speedtouch; USB <para>和许多 USB 设备类似, 阿尔卡特的 &speedtouch; USB
需要从主机上下载固件才能够正常工作。 您可以在 &os; 中将此操作自动化, 需要从主机上下载固件才能够正常工作。 在 &os; 中您可以将此操作自动化,
这样当设备插到某个 USB 口的时候就会自动下载固件了。 可以在 在有设备插到某个 USB 口的时候自动下载固件。 可以在
<filename>/etc/usbd.conf</filename> <filename>/etc/usbd.conf</filename>
文件中加入下面的信息来让它自动完成固件的传送。 注意, 必须以 文件中加入下面的信息来让它自动完成固件的传送。 注意, 必须以
<username>root</username> 用户的身份编辑它。</para> <username>root</username> 用户的身份编辑它。</para>

View file

@ -1,15 +1,14 @@
<!-- <!--
The FreeBSD Chinese Documentation Project The FreeBSD Chinese Documentation Project
Original Revision: 1.30 Original Revision: 1.31
$FreeBSD$ $FreeBSD$
--> -->
<preface id="book-preface"> <preface id="book-preface">
<title>前言</title> <title>前言</title>
<bridgehead id="preface-audience" renderas=sect1>Intended <bridgehead id="preface-audience" renderas=sect1>预期的读者</bridgehead>
Audience</bridgehead>
<para>作为 FreeBSD 的新用户,您将会在本手册第一部分找到 FreeBSD <para>作为 FreeBSD 的新用户,您将会在本手册第一部分找到 FreeBSD
的安装方法,同时逐渐引入概念和习俗来加强 &unix; 基础。 的安装方法,同时逐渐引入概念和习俗来加强 &unix; 基础。
@ -56,6 +55,12 @@
RAID-1 和 RAID-5 的卷管理系统——Vinum。</para> RAID-1 和 RAID-5 的卷管理系统——Vinum。</para>
</listitem> </listitem>
<listitem>
<para>这一版新增了 <xref linkend="nanobsd"> NanoBSD。
它介绍了如何使用 NanoBSD 一种用于创建 &os; 适用于嵌入式系统,
以及袖珍闪存 (Compact Flash) 介质等的映像文件的工具。</para>
</listitem>
<listitem> <listitem>
<para>在 <xref linkend="ppp-and-slip">PPP 和 SLIP 一章中增加了排除故障的说明。</para> <para>在 <xref linkend="ppp-and-slip">PPP 和 SLIP 一章中增加了排除故障的说明。</para>
</listitem> </listitem>
@ -342,6 +347,14 @@
描述了一般用户如何紧跟开发过程并从中受益。</para> 描述了一般用户如何紧跟开发过程并从中受益。</para>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry>
<term><emphasis><xref linkend="nanobsd">, NanoBSD</emphasis></term>
<listitem>
<para>介绍了 <application>NanoBSD</application> 工具,
它可以用来为嵌入式应用准备 &os; 系统的映像,
适用于使用袖珍闪存卡, 以及其他类似的存储介质。</para>
</listitem>
</varlistentry>
<!-- Part IV - Network Communications --> <!-- Part IV - Network Communications -->

View file

@ -4053,7 +4053,7 @@ cfA013rose dequeued
</variablelist> </variablelist>
<para>下面是一个例子: 这个命令打印了一个很好的 <para>下面是一个例子: 这个命令打印了一个很好的
&man.ls.1; 手册页面到默认打印机:</para> &man.ls.1; 联机手册到默认打印机:</para>
<screen>&prompt.user; <userinput>zcat /usr/share/man/man1/ls.1.gz | troff -t -man | lpr -t</userinput></screen> <screen>&prompt.user; <userinput>zcat /usr/share/man/man1/ls.1.gz | troff -t -man | lpr -t</userinput></screen>

View file

@ -2,7 +2,7 @@
The FreeBSD Documentation Project The FreeBSD Documentation Project
The FreeBSD Simplified Chinese Project The FreeBSD Simplified Chinese Project
Original Revision: 1.292 Original Revision: 1.293
$FreeBSD$ $FreeBSD$
--> -->
@ -4375,7 +4375,7 @@ Corrected: 2003-09-23 16:42:59 UTC (RELENG_4, 4.9-PRERELEASE)
2003-09-23 16:51:24 UTC (RELENG_4_5, 4.5-RELEASE-p33) 2003-09-23 16:51:24 UTC (RELENG_4_5, 4.5-RELEASE-p33)
2003-09-23 16:52:45 UTC (RELENG_4_4, 4.4-RELEASE-p43) 2003-09-23 16:52:45 UTC (RELENG_4_4, 4.4-RELEASE-p43)
2003-09-23 16:54:39 UTC (RELENG_4_3, 4.3-RELEASE-p39)<co id="co-corrected"> 2003-09-23 16:54:39 UTC (RELENG_4_3, 4.3-RELEASE-p39)<co id="co-corrected">
&os; only: NO<co id="co-only"> <acronym>CVE</acronym> Name: CVE-XXXX-XXXX<co id="co-cve">
For general information regarding FreeBSD Security Advisories, For general information regarding FreeBSD Security Advisories,
including descriptions of the fields above, security branches, and the including descriptions of the fields above, security branches, and the
@ -4450,9 +4450,9 @@ VII. References<co id="co-ref"></programlisting>
<para><literal>Corrected</literal>(修正时间) 一栏给出了发行版本中修正问题的具体日期、时间和时差。</para> <para><literal>Corrected</literal>(修正时间) 一栏给出了发行版本中修正问题的具体日期、时间和时差。</para>
</callout> </callout>
<callout arearefs="co-only"> <callout arearefs="co-cve">
<para><literal>&os; only</literal>(仅 &os;) 一栏说明了漏洞是否只影响 <para>在公共漏洞数据库 (Common Vulnerabilities Database) 系统中预留的,
&os; 还是也影响一些其它操作系统。</para> 用于查看漏洞的标识信息。</para>
</callout> </callout>
<callout arearefs="co-backround"> <callout arearefs="co-backround">

View file

@ -334,7 +334,7 @@
<indexterm><primary>skeleton directory</primary></indexterm> <indexterm><primary>skeleton directory</primary></indexterm>
<para>&man.adduser.8; 是一个简单的添加新用户的命令. 它为用户创建 <para>&man.adduser.8; 是一个简单的添加新用户的命令. 它为用户创建
<filename>passwd</filename> 和 <filename>group</filename> <filename>passwd</filename> 和 <filename>group</filename>
文件。 它也为新用户创建一个主目录, 它拷贝一个默认的配置文件 文件。 它也为新用户创建一个主目录, 之后, 它会复制一组默认的配置文件
(<quote>dotfiles</quote>) 从 <filename>/usr/share/skel</filename> (<quote>dotfiles</quote>) 从 <filename>/usr/share/skel</filename>
这个目录, 然后给新用户发送一封带欢迎信息的邮件。</para> 这个目录, 然后给新用户发送一封带欢迎信息的邮件。</para>

View file

@ -212,12 +212,12 @@ FreeBSD
</indexterm> </indexterm>
<para>解决这个问题的传统方法是建立镜象 <para>解决这个问题的传统方法是建立镜象
<emphasis>镜象</emphasis>, 在不同的物理硬件上对数据做两个拷贝 <emphasis>镜象</emphasis>, 在不同的物理硬件上对数据做两个副本
由于<acronym>RAID</acronym> 的出现levels, 所以这个技术也被叫做 由于<acronym>RAID</acronym> 的出现levels, 所以这个技术也被叫做
<acronym>第一级RAID</acronym> 或者 <acronym>第一级RAID</acronym> 或者
<acronym>RAID-1</acronym>. 任何写到卷的数据也会被写到镜象上,所 <acronym>RAID-1</acronym>. 任何写到卷的数据也会被写到镜象上,所
以可以从任何一个拷贝读取数据,如果其中有一个失败了,数据就可以 以可以从任何一个副本读取数据, 如果其中有一个出现故障,
其他驱动器上访问到。</para> 数据也还可以从其他驱动器上访问到。</para>
<para>镜象有两个问题:</para> <para>镜象有两个问题:</para>

View file

@ -66,7 +66,7 @@
</listitem> </listitem>
<listitem> <listitem>
<para>如何为您的系统设置图形登 <para>如何为您的系统设置图形登
(<application>XDM</application>)。</para> (<application>XDM</application>)。</para>
</listitem> </listitem>
</itemizedlist> </itemizedlist>
@ -673,7 +673,7 @@ EndSection</programlisting>
<para>这样会起作用,但是当 X 会话结束后就会丢失, <para>这样会起作用,但是当 X 会话结束后就会丢失,
除非它被添加到启动文件 (<filename>~/.xinitrc</filename> 中, 除非它被添加到启动文件 (<filename>~/.xinitrc</filename> 中,
针对一个寻常的 <command>startx</command> 会话,或者当您通过一个类似 针对一个寻常的 <command>startx</command> 会话,或者当您通过一个类似
<application>XDM</application> 的图形登陆管理器登陆时添加到 <application>XDM</application> 的图形登录管理器登录时添加到
<filename>~/.xsession</filename> 中)。 <filename>~/.xsession</filename> 中)。
第三种方法是使用新的 第三种方法是使用新的
<filename>/usr/X11R6/etc/fonts/local.conf</filename> 文件: 查看 <filename>/usr/X11R6/etc/fonts/local.conf</filename> 文件: 查看
@ -708,14 +708,14 @@ EndSection</programlisting>
<para>现在,为 &truetype; 字体创建一个目录 (比如, <para>现在,为 &truetype; 字体创建一个目录 (比如,
<filename>/usr/X11R6/lib/X11/fonts/TrueType</filename>) <filename>/usr/X11R6/lib/X11/fonts/TrueType</filename>)
然后把所有的 &truetype; 字体拷贝到这个目录。记住您不能直接从 然后把所有的 &truetype; 字体复制到这个目录。记住您不能直接从
&macintosh; 计算机中提取 &truetype; 字体; &macintosh; 计算机中提取 &truetype; 字体;
能被 X11 使用的必须是 能被 X11 使用的必须是
&unix;/&ms-dos;/&windows; 格式的。 &unix;/&ms-dos;/&windows; 格式的。
一旦您已经拷贝了这些文件到这个目录,使 一旦您已经将这些文件复制到了这个目录, 就可以
<application>ttmkfdir</application> 来创建一个 <application>ttmkfdir</application> 来创建
<filename>fonts.dir</filename> 文件,以便让X字体引擎知道 <filename>fonts.dir</filename> 文件,
您已经安装了这些新文件。 以便让X字体引擎知道您已经安装了这些新文件。
<command>ttmkfdir</command> 可以在 FreeBSD <command>ttmkfdir</command> 可以在 FreeBSD
Ports Collection Ports Collection
<filename role="package">x11-fonts/ttmkfdir</filename> 中找到。</para> <filename role="package">x11-fonts/ttmkfdir</filename> 中找到。</para>
@ -969,7 +969,7 @@ EndSection</programlisting>
<indexterm><primary>X Display Manager</primary></indexterm> <indexterm><primary>X Display Manager</primary></indexterm>
<para>X 显示管理器(<application>XDM</application>) <para>X 显示管理器(<application>XDM</application>)
是一个X视窗系统用于进行登会话管理的可选项。 是一个X视窗系统用于进行登会话管理的可选项。
这个可以应用于多种情况下,包括小 这个可以应用于多种情况下,包括小
<quote>X Terminals</quote> <quote>X Terminals</quote>
桌面,大网络显示服务器。既然 X 视窗系统不受网络和协议的限制, 桌面,大网络显示服务器。既然 X 视窗系统不受网络和协议的限制,
@ -977,17 +977,17 @@ EndSection</programlisting>
就会有很多的可配置项。 就会有很多的可配置项。
<application>XDM</application> <application>XDM</application>
提供了一个选择要连接到哪个显示服务器的图形接口, 提供了一个选择要连接到哪个显示服务器的图形接口,
只要键入如登用户名和密码这样的验证信息。</para> 只要键入如登用户名和密码这样的验证信息。</para>
<para>您也可以把 <application>XDM</application> 想象成与 <para>您也可以把 <application>XDM</application> 想象成与
&man.getty.8 工具一样(see <xref linkend="term-config"> for &man.getty.8 工具一样(see <xref linkend="term-config"> for
details)。为用户提供了同样功能。它可以完成系统的登任务, details)。为用户提供了同样功能。它可以完成系统的登任务,
然后为用户运行一个会话管理器 然后为用户运行一个会话管理器
(通常是一个 X 视窗管理器)。接下来 <application>XDM</application> (通常是一个 X 视窗管理器)。接下来 <application>XDM</application>
就等待这个程序退出,发出信号用户已经登完成,应当退出屏幕。 就等待这个程序退出,发出信号用户已经登完成,应当退出屏幕。
这时, 这时,
<application>XDM</application> <application>XDM</application>
就可以为下一个登陆用户显示登陆和可选择屏幕。</para> 就可以为下一个登录用户显示登录和可选择屏幕。</para>
</sect2> </sect2>
<sect2> <sect2>
@ -1049,12 +1049,12 @@ EndSection</programlisting>
<row> <row>
<entry><filename>Xsession</filename></entry> <entry><filename>Xsession</filename></entry>
<entry>用于登的默认的会话脚本。</entry> <entry>用于登的默认的会话脚本。</entry>
</row> </row>
<row> <row>
<entry><filename>Xsetup_</filename>*</entry> <entry><filename>Xsetup_</filename>*</entry>
<entry>登之前用于加载应用程序的脚本。</entry> <entry>登之前用于加载应用程序的脚本。</entry>
</row> </row>
<row> <row>
@ -1081,7 +1081,7 @@ EndSection</programlisting>
这些文件的更详细的语法和用法在 这些文件的更详细的语法和用法在
&man.xdm.1; 中将有详细描述。</para> &man.xdm.1; 中将有详细描述。</para>
<para>默认的配置是一个矩形的登窗口,上面有机器的名称, <para>默认的配置是一个矩形的登窗口,上面有机器的名称,
<quote>Login:</quote> 和 <quote>Login:</quote> 和
<quote>Password:</quote>。如果您想设计您自己个性化的 <quote>Password:</quote>。如果您想设计您自己个性化的
<application>XDM</application> 屏幕,这是一个很好的起点。</para> <application>XDM</application> 屏幕,这是一个很好的起点。</para>
@ -1100,8 +1100,8 @@ EndSection</programlisting>
<sect3> <sect3>
<title>Xresources</title> <title>Xresources</title>
<para>这是一个默认的用来显示选项和登屏幕的应用程序文件。这 <para>这是一个默认的用来显示选项和登屏幕的应用程序文件。这
就是您能够定制登程序的外观的地方。这个格式与 就是您能够定制登程序的外观的地方。这个格式与
X11 文档中描述的默认应用 X11 文档中描述的默认应用
程序文件是一样的。</para> 程序文件是一样的。</para>
</sect3> </sect3>
@ -1114,7 +1114,7 @@ EndSection</programlisting>
<sect3> <sect3>
<title>Xsession</title> <title>Xsession</title>
<para>这是一个用户登后针对 <para>这是一个用户登后针对
<application>XDM</application> 的默认会话脚本。通常,在 <application>XDM</application> 的默认会话脚本。通常,在
<filename>~/.xsession</filename> <filename>~/.xsession</filename>
中每个用户将有一个可定制的会话脚本。</para> 中每个用户将有一个可定制的会话脚本。</para>
@ -1122,7 +1122,7 @@ EndSection</programlisting>
<sect3> <sect3>
<title>Xsetup_*</title> <title>Xsetup_*</title>
<para>在显示选择者或登接口之前,这些将被自动运行。 <para>在显示选择者或登接口之前,这些将被自动运行。
这是一个每个显示都要用到的脚本,叫做 这是一个每个显示都要用到的脚本,叫做
<filename>Xsetup_</filename> <filename>Xsetup_</filename>
后面会跟一个本地显示的数字(比如 后面会跟一个本地显示的数字(比如
@ -1431,13 +1431,13 @@ DisplayManager.requestPort: 0</screen>
<indexterm><primary>KDE</primary> <indexterm><primary>KDE</primary>
<secondary>display manager</secondary></indexterm> <secondary>display manager</secondary></indexterm>
<para>一个多用户系统的系统管理员可能希望给用户提供一个图形化的登界面, <para>一个多用户系统的系统管理员可能希望给用户提供一个图形化的登界面,
像前面描述的一样,可以使用 <link linkend="x-xdm">xdm</link>。 像前面描述的一样,可以使用 <link linkend="x-xdm">xdm</link>。
然而, 然而,
<application>KDE</application> 提供了另一种选择, <application>KDE</application> 提供了另一种选择,
<application>kdm</application> <application>kdm</application>
它看起来很吸引人,还包含很多登选项。 它看起来很吸引人,还包含很多登选项。
特别的,用户可以很容易地(通过一个菜单) 选择登后使用哪个桌面环境 特别的,用户可以很容易地(通过一个菜单) 选择登后使用哪个桌面环境
(<application>KDE</application> (<application>KDE</application>
<application>GNOME</application>或其他)。</para> <application>GNOME</application>或其他)。</para>