1.127 -> 1.128	linuxemu/chapter.sgml
	1.387 -> 1.409	mirrors/chapter.sgml
	1.72 -> 1.78	network-servers/chapter.sgml

Whitespace cleanups.

Obtained from:	The FreeBSD Russian Documentation Project
This commit is contained in:
Dmitry Morozovsky 2006-02-18 18:08:06 +00:00
parent b5a791a740
commit f8f0e11e47
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=27181
3 changed files with 418 additions and 241 deletions

View file

@ -2,9 +2,9 @@
The FreeBSD Russian Documentation Project The FreeBSD Russian Documentation Project
$FreeBSD$ $FreeBSD$
$FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/linuxemu/chapter.sgml,v 1.21 2006/01/30 16:20:05 gad Exp $ $FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/linuxemu/chapter.sgml,v 1.24 2006/02/18 17:42:08 marck Exp $
Original revision: 1.127 Original revision: 1.128
--> -->
<chapter id="linuxemu"> <chapter id="linuxemu">
@ -274,7 +274,7 @@ libc.so.4 (DLL Jump 4.5pl26) =&gt; /lib/libc.so.4.6.29</screen>
<blockquote> <blockquote>
<note> <note>
<para>Учтите, что если у вас уже есть совместно используемая библиотека <para>Учтите, что если у вас уже есть совместно используемая библиотека
Linux с соответствующим первому столбцу результатов Linux с соответствующим первому столбцу результатов
<command>ldd</command> основным номером версии, вам не <command>ldd</command> основным номером версии, вам не
обязательно копировать файл, указанный в последнем столбце, обязательно копировать файл, указанный в последнем столбце,
в вашу систему. Уже существующий файл должен подойти. в вашу систему. Уже существующий файл должен подойти.
@ -294,7 +294,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>Если версии немного отличаются в последней цифре, <para>Если версии немного отличаются в последней цифре,
копировать <filename>/lib/libc.so.4.6.29</filename> копировать <filename>/lib/libc.so.4.6.29</filename>
необязательно, так как программа, скорее всего, будет необязательно, так как программа, скорее всего, будет
нормально работать и с немного устаревшей версией. нормально работать и с немного устаревшей версией.
Тем не менее, вы можете заменить Тем не менее, вы можете заменить
@ -335,14 +335,14 @@ ELF binary type not known
Abort</screen> Abort</screen>
<para>Чтобы помочь ядру FreeBSD отличить ELF-файл FreeBSD от <para>Чтобы помочь ядру FreeBSD отличить ELF-файл FreeBSD от
двоичного файла Linux, используется утилита &man.brandelf.1;:</para> двоичного файла Linux, используется утилита &man.brandelf.1;:</para>
<screen>&prompt.user; <userinput>brandelf -t Linux моя-linux-elf-программа</userinput></screen> <screen>&prompt.user; <userinput>brandelf -t Linux моя-linux-elf-программа</userinput></screen>
<indexterm><primary>GNU toolchain</primary></indexterm> <indexterm><primary>GNU toolchain</primary></indexterm>
<para>В настоящее время набор инструментальных средств GNU <para>В настоящее время набор инструментальных средств GNU
(GNU toolchain) помещает необходимую маркировочную информацию (GNU toolchain) помещает необходимую маркировочную информацию
в двоичные ELF-файлы автоматически, поэтому необходимость в двоичные ELF-файлы автоматически, поэтому необходимость
в этом действии возникает всё реже.</para> в этом действии возникает всё реже.</para>
</sect2> </sect2>
@ -441,7 +441,7 @@ multi on</programlisting>
<para>Скрипты командной оболочки, которые <para>Скрипты командной оболочки, которые
<application>&mathematica;</application> создала во <application>&mathematica;</application> создала во
время установки должны быть измененены перед тем, как время установки, должны быть изменены перед тем, как
вы сможете использовать их. Если вы выбрали вы сможете использовать их. Если вы выбрали
<filename role="directory">/usr/local/bin</filename> в <filename role="directory">/usr/local/bin</filename> в
качестве директории для помещения исполняемых файлов качестве директории для помещения исполняемых файлов
@ -480,7 +480,7 @@ done</programlisting>
<application>&mathematica;</application> на разных машинах.</para> <application>&mathematica;</application> на разных машинах.</para>
<para>При регистрации по электронной почте, по телефону или по факсу <para>При регистрации по электронной почте, по телефону или по факсу
вы сообщаете <quote>machine ID</quote>, а в ответ вы сообщаете <quote>machine ID</quote>, а в ответ
получаете пароль, состоящий из нескольких групп чисел.</para> получаете пароль, состоящий из нескольких групп чисел.</para>
</sect2> </sect2>
@ -647,16 +647,16 @@ LOG=/var/log/lmgrd.log
case "$1" in case "$1" in
start) start)
lmgrd -c ${LICENSE_FILE} 2&gt;&gt; ${LOG} 1&gt;&2 lmgrd -c ${LICENSE_FILE} 2&gt;&gt; ${LOG} 1&gt;&2
echo -n " lmgrd" echo -n " lmgrd"
;; ;;
stop) stop)
lmgrd -c ${LICENSE_FILE} -x lmdown 2&gt;&gt; ${LOG} 1&gt;&2 lmgrd -c ${LICENSE_FILE} -x lmdown 2&gt;&gt; ${LOG} 1&gt;&2
;; ;;
*) *)
echo "Usage: `basename $0` {start|stop}" 1&gt;&2 echo "Usage: `basename $0` {start|stop}" 1&gt;&2
exit 64 exit 64
;; ;;
esac esac
exit 0 exit 0
@ -813,14 +813,14 @@ case "$1" in
fi fi
;; ;;
stop) stop)
if [ -f /usr/local/etc/lmdown_TMW ]; then if [ -f /usr/local/etc/lmdown_TMW ]; then
/compat/linux/bin/sh /usr/local/etc/lmdown_TMW &gt; /dev/null 2&gt;&amp;1 /compat/linux/bin/sh /usr/local/etc/lmdown_TMW &gt; /dev/null 2&gt;&amp;1
fi fi
;; ;;
*) *)
echo "Usage: $0 {start|stop}" echo "Usage: $0 {start|stop}"
exit 1 exit 1
;; ;;
esac esac
exit 0</programlisting> exit 0</programlisting>
@ -971,14 +971,14 @@ exit 0</programlisting>
<title>Установка Linux&ndash;среды</title> <title>Установка Linux&ndash;среды</title>
<para>Удостоверьтесь, что порты <para>Удостоверьтесь, что порты
<filename role='package'>emulators/linux_base</filename> и <filename role='package'>emulators/linux_base</filename> и
<filename role='package'>devel/linux_devtools</filename> установлены <filename role='package'>devel/linux_devtools</filename> установлены
на вашей системе. Если у вас возникнут трудности с этими портами, на вашей системе. Если у вас возникнут трудности с этими портами,
воспользуйтесь пакетами или более ранними их версиями из воспользуйтесь пакетами или более ранними их версиями из
Коллекции Портов.</para> Коллекции Портов.</para>
<para>Если вы хотите использовать интеллектуальный агент (intelligent <para>Если вы хотите использовать интеллектуальный агент (intelligent
agent), придется также установить пакет TCL от Red Hat: agent), придется также установить пакет TCL от Red Hat:
<filename>tcl-8.0.3-20.i386.rpm</filename>. Универсальная команда <filename>tcl-8.0.3-20.i386.rpm</filename>. Универсальная команда
для установки пакетов с помощью официального порта для установки пакетов с помощью официального порта
<application>RPM</application> <application>RPM</application>
@ -1097,7 +1097,7 @@ $ORACLE_HOME/bin</literal></entry>
</tgroup> </tgroup>
</informaltable> </informaltable>
<para>Желательно устанавливать все переменные среды в файле <para>Желательно устанавливать все переменные среды в файле
<filename>.profile</filename>. Вот реальный пример:</para> <filename>.profile</filename>. Вот реальный пример:</para>
<programlisting>ORACLE_BASE=/oracle; export ORACLE_BASE <programlisting>ORACLE_BASE=/oracle; export ORACLE_BASE
@ -1598,7 +1598,7 @@ export PATH</programlisting>
<para>Для этой установки был использован &dell; &poweredge; 2500: <para>Для этой установки был использован &dell; &poweredge; 2500:
двухпроцессорная плата с двумя процессорами &pentium;&nbsp;III двухпроцессорная плата с двумя процессорами &pentium;&nbsp;III
1000&nbsp;MHz (256&nbsp;Кбайт кеш), 2&nbsp;Гбайта PC133 ECC SDRAM, 1000&nbsp;MHz (256&nbsp;Кбайт кэш), 2&nbsp;Гбайта PC133 ECC SDRAM,
PERC/3 DC PCI RAID-контроллер со 128&nbsp;Мбайтами и приводом PERC/3 DC PCI RAID-контроллер со 128&nbsp;Мбайтами и приводом
EIDE DVD-ROM. К RAID-контроллеру подключены два диска по EIDE DVD-ROM. К RAID-контроллеру подключены два диска по
18&nbsp;Гбайт (зеркалированы) и четыре диска по 36&nbsp;Гбайт 18&nbsp;Гбайт (зеркалированы) и четыре диска по 36&nbsp;Гбайт
@ -2070,14 +2070,14 @@ sapgw00s 4800/tcp # SAP Secure Gateway 4800 + Instance-Number</programlistin
производственной системы (хотя это и сработало для системы производственной системы (хотя это и сработало для системы
IDES безо всяких проблем). Необходимы следующие локали:</para> IDES безо всяких проблем). Необходимы следующие локали:</para>
<programlisting>de_DE.ISO-8859-1 <programlisting>de_DE.ISO8859-1
en_US.ISO-8859-1</programlisting> en_US.ISO8859-1</programlisting>
<para>Создайте ссылки следующим образом:</para> <para>Создайте ссылки следующим образом:</para>
<screen>&prompt.root; <userinput>cd /compat/linux/usr/share/locale</userinput> <screen>&prompt.root; <userinput>cd /compat/linux/usr/share/locale</userinput>
&prompt.root; <userinput>ln -s de_DE de_DE.ISO-8859-1</userinput> &prompt.root; <userinput>ln -s de_DE de_DE.ISO8859-1</userinput>
&prompt.root; <userinput>ln -s en_US en_US.ISO-8859-1</userinput></screen> &prompt.root; <userinput>ln -s en_US en_US.ISO8859-1</userinput></screen>
<para>Если их не будет, в ходе установки возникнет ряд проблем. <para>Если их не будет, в ходе установки возникнет ряд проблем.
Если их просто проигнорировать (установив <literal>STATUS</literal> Если их просто проигнорировать (установив <literal>STATUS</literal>
@ -2586,7 +2586,8 @@ options SEMUME=100 #
<para><filename>compat-libs-5.2-2.i386.rpm</filename></para> <para><filename>compat-libs-5.2-2.i386.rpm</filename></para>
<para><filename>compat-glibc-5.2-2.0.7.2.i386.rpm</filename></para> <para><filename>compat-glibc-5.2-2.0.7.2.i386.rpm</filename></para>
<para><filename>compat-egcs-5.2-1.0.3a.1.i386.rpm</filename></para> <para><filename>compat-egcs-5.2-1.0.3a.1.i386.rpm</filename></para>
<para><filename>compat-egcs-c++-5.2-1.0.3a.1.i386.rpm</filename></para> <para><filename>compat-binutils-5.2-2.9.1.0.23.1.i386.rpm</filename></para> <para><filename>compat-egcs-c++-5.2-1.0.3a.1.i386.rpm</filename></para>
<para><filename>compat-binutils-5.2-2.9.1.0.23.1.i386.rpm</filename></para>
<para>Дополнительную информацию см. в файлах &sap; Notes или &oracle; <para>Дополнительную информацию см. в файлах &sap; Notes или &oracle;
<filename>Readme</filename>. Если установить эти пакеты не <filename>Readme</filename>. Если установить эти пакеты не
@ -3341,11 +3342,11 @@ options SHMMAXPGS=393216
загрузчик.</para> загрузчик.</para>
<para>Если файл не опознавался системой как двоичный, системный <para>Если файл не опознавался системой как двоичный, системный
вызов &man.execve.2; возвращал ошибку, и текущий командный вызов &man.execve.2; возвращал ошибку, и текущий командный
интерпретатор начинал выполнять файл как скрипт.</para> интерпретатор начинал выполнять файл как скрипт.</para>
<para>По умолчанию скрипт выполнялся <quote>текущим командным <para>По умолчанию скрипт выполнялся <quote>текущим командным
интерпретатором</quote>.</para> интерпретатором</quote>.</para>
<para>Позднее, &man.sh.1; был модифицирован, так, чтобы проверять <para>Позднее, &man.sh.1; был модифицирован, так, чтобы проверять
первые два символа в файле, и если они оказывались первые два символа в файле, и если они оказывались
@ -3354,20 +3355,20 @@ options SHMMAXPGS=393216
эту модификацию).</para> эту модификацию).</para>
<para>FreeBSD сейчас ведет себя по-другому: пробегает по списку <para>FreeBSD сейчас ведет себя по-другому: пробегает по списку
загрузчиков,включающему специальный загрузчик <literal>#!</literal>, загрузчиков,включающему специальный загрузчик <literal>#!</literal>,
который вызывает нужный интерпретатор, указанный после этих символов который вызывает нужный интерпретатор, указанный после этих символов
до следующего пробела, или <filename>/bin/sh</filename>, если до следующего пробела, или <filename>/bin/sh</filename>, если
не нашел подходящего.</para> не нашел подходящего.</para>
<indexterm><primary>ELF</primary></indexterm> <indexterm><primary>ELF</primary></indexterm>
<para>Для поддержки Linux ABI FreeBSD ищет магическое число, <para>Для поддержки Linux ABI FreeBSD ищет магическое число,
соответствующее двоичному файлу ELF (на этой стадии не различаются соответствующее двоичному файлу ELF (на этой стадии не различаются
FreeBSD, &solaris;, Linux или любая другая ОС поддерживающая формат FreeBSD, &solaris;, Linux или любая другая ОС поддерживающая формат
ELF).</para> ELF).</para>
<indexterm><primary>Solaris</primary></indexterm> <indexterm><primary>Solaris</primary></indexterm>
<para>Далее, ELF-загрузчик определяет <quote>марку</quote> (brand) <para>Далее, ELF-загрузчик определяет <quote>марку</quote> (brand)
двоичного файла ELF (специальный комментарий в ELF-файле, двоичного файла ELF (специальный комментарий в ELF-файле,
отсутствующий в двоичных файлах ELF SVR4/&solaris;).</para> отсутствующий в двоичных файлах ELF SVR4/&solaris;).</para>
<para>Соответственно, Linux программы должны быть <para>Соответственно, Linux программы должны быть
@ -3379,7 +3380,7 @@ options SHMMAXPGS=393216
<para>Когда это сделано, загрузчик ELF выявит марку <para>Когда это сделано, загрузчик ELF выявит марку
<literal>Linux</literal> в файле.</para> <literal>Linux</literal> в файле.</para>
<indexterm> <indexterm>
<primary>ELF</primary> <primary>ELF</primary>
<secondary>branding</secondary> <secondary>branding</secondary>
</indexterm> </indexterm>
@ -3394,11 +3395,11 @@ options SHMMAXPGS=393216
поддержки Linux.</para> поддержки Linux.</para>
<para>Вектор системных вызовов Linux содержит, среди прочего, список <para>Вектор системных вызовов Linux содержит, среди прочего, список
записей <literal>sysent[]</literal>, адреса которых находятся в записей <literal>sysent[]</literal>, адреса которых находятся в
модуле ядра.</para> модуле ядра.</para>
<para>При выполнении системного вызова из двоичного файла Linux, <para>При выполнении системного вызова из двоичного файла Linux,
код обработчика разыменовывает указатель на функцию системного вызова код обработчика разыменовывает указатель на функцию системного вызова
из структуры <literal>proc</literal>, и получает точки входа из структуры <literal>proc</literal>, и получает точки входа
системных вызовов Linux, а не FreeBSD.</para> системных вызовов Linux, а не FreeBSD.</para>
@ -3420,7 +3421,7 @@ options SHMMAXPGS=393216
разобраться, что они работают не в Linux.</para> разобраться, что они работают не в Linux.</para>
<para>Фактически, имеется ядро Linux в ядре FreeBSD; различные <para>Фактически, имеется ядро Linux в ядре FreeBSD; различные
базовые функции, реализующие все услуги ядра, идентичны как базовые функции, реализующие все услуги ядра, идентичны как
в записях таблицы системных вызовов FreeBSD, так и в записях в записях таблицы системных вызовов FreeBSD, так и в записях
таблицы системных вызовов Linux: операции с файловой системой, таблицы системных вызовов Linux: операции с файловой системой,
виртуальная память, средства доставки сигналов, виртуальная память, средства доставки сигналов,
@ -3435,7 +3436,7 @@ options SHMMAXPGS=393216
<literal>proc</literal> процесса, выполняющего вызов).</para> <literal>proc</literal> процесса, выполняющего вызов).</para>
<para>Какая же реализация ABI для FreeBSD <quote>родная</quote>? Это <para>Какая же реализация ABI для FreeBSD <quote>родная</quote>? Это
не имеет значения. Единственное различие (на данный момент, в не имеет значения. Единственное различие (на данный момент, в
будущем все может и, вероятно, изменится), пожалуй, в том, что будущем все может и, вероятно, изменится), пожалуй, в том, что
функции системных вызовов FreeBSD зашиты в ядро, а для Linux они функции системных вызовов FreeBSD зашиты в ядро, а для Linux они
могут быть либо статически скомпонованы в ядро, либо получаться могут быть либо статически скомпонованы в ядро, либо получаться
@ -3446,7 +3447,7 @@ options SHMMAXPGS=393216
отсутствует.</para> отсутствует.</para>
<para>В таком случае, почему же иногда говорят об <para>В таком случае, почему же иногда говорят об
<quote>эмуляции Linux</quote>? Чтобы <quote>насолить</quote> <quote>эмуляции Linux</quote>? Чтобы <quote>насолить</quote>
FreeBSD! Фактически, причина в том, что на момент первой реализации FreeBSD! Фактически, причина в том, что на момент первой реализации
не существовало слова, которое бы точнее описывало этот процесс. не существовало слова, которое бы точнее описывало этот процесс.
Нельзя было сказать, что FreeBSD запускает приложения Linux (без Нельзя было сказать, что FreeBSD запускает приложения Linux (без

View file

@ -2,9 +2,9 @@
The FreeBSD Russian Documentation Project The FreeBSD Russian Documentation Project
$FreeBSD$ $FreeBSD$
$FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/mirrors/chapter.sgml,v 1.28 2005/09/25 09:51:47 marck Exp $ $FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/mirrors/chapter.sgml,v 1.31 2006/02/18 17:54:40 marck Exp $
Original revision: 1.387 Original revision: 1.409
--> -->
<appendix id="mirrors"> <appendix id="mirrors">
@ -399,15 +399,6 @@
(éÓÐÏÌØÚÕÊÔÅ <command>cvs login</command> É ××ÅÄÉÔÅ ÐÁÒÏÌØ (éÓÐÏÌØÚÕÊÔÅ <command>cvs login</command> É ××ÅÄÉÔÅ ÐÁÒÏÌØ
<quote>anoncvs</quote> × ÏÔ×ÅÔ ÎÁ ÐÒÉÇÌÁÛÅÎÉÅ.)</para> <quote>anoncvs</quote> × ÏÔ×ÅÔ ÎÁ ÐÒÉÇÌÁÛÅÎÉÅ.)</para>
</listitem> </listitem>
<listitem>
<para><emphasis>û×ÅÃÉÑ</emphasis>:
freebsdanoncvs@anoncvs.se.FreeBSD.org:/home/ncvs
(ÔÏÌØËÏ ssh - ÂÅÚ ÐÁÒÏÌÑ)</para>
<programlisting>SSH HostKey: 1024 a7:34:15:ee:0e:c6:65:cf:40:78:2d:f3:cd:87:bd:a6 root@apelsin.fruitsalad.org
SSH2 HostKey: 1024 21:df:04:03:c7:26:3e:e8:36:1a:50:2d:c7:ae:b8:5f ssh_host_dsa_key.pub</programlisting>
</listitem>
<listitem> <listitem>
<para><emphasis>óûá</emphasis>: <para><emphasis>óûá</emphasis>:
freebsdanoncvs@anoncvs.FreeBSD.org:/home/ncvs freebsdanoncvs@anoncvs.FreeBSD.org:/home/ncvs
@ -464,15 +455,12 @@ SSH2 HostKey: 1024 80:a7:87:fa:61:d9:25:5c:33:d5:48:51:aa:8f:b6:12 ssh_host_dsa_
ÐÒÉÍÅÒÏ× ÉÓÐÏÌØÚÏ×ÁÎÉÑ Anonymous CVS:</para> ÐÒÉÍÅÒÏ× ÉÓÐÏÌØÚÏ×ÁÎÉÑ Anonymous CVS:</para>
<example> <example>
<title>éÚ×ÌÅÞÅÎÉÅ ËÏÄÁ ÉÚ -CURRENT (&man.ls.1;) Ó <title>Извлечение кода из -CURRENT (&man.ls.1;):</title>
ÐÏÓÌÅÄÕÀÝÉÍ ÕÄÁÌÅÎÉÅÍ:</title>
<screen>&prompt.user; <userinput>setenv CVSROOT :pserver:anoncvs@anoncvs.FreeBSD.org:/home/ncvs</userinput> <screen>&prompt.user; <userinput>setenv CVSROOT :pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs</userinput>
&prompt.user; <userinput>cvs login</userinput> &prompt.user; <userinput>cvs login</userinput>
<emphasis>At the prompt, enter the password</emphasis> <quote>anoncvs</quote>. <emphasis>At the prompt, enter the password</emphasis> <quote>anoncvs</quote>.
&prompt.user; <userinput>cvs co ls</userinput> &prompt.user; <userinput>cvs co ls</userinput>
&prompt.user; <userinput>cvs release -d ls</userinput>
&prompt.user; <userinput>cvs logout</userinput>
</screen> </screen>
</example> </example>
@ -487,38 +475,33 @@ Warning: Permanently added 'anoncvs.freebsd.org' (DSA) to the list of known host
</example> </example>
<example> <example>
<title>éÚ×ÌÅÞÅÎÉÅ &man.ls.1; ÉÚ ×ÅÔ×É ÄÌÑ 3.X-STABLE:</title> <title>Извлечение &man.ls.1; из ветви для 6-STABLE:</title>
<screen>&prompt.user; <userinput>setenv CVSROOT :pserver:anoncvs@anoncvs.FreeBSD.org:/home/ncvs</userinput> <screen>&prompt.user; <userinput>setenv CVSROOT :pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs</userinput>
&prompt.user; <userinput>cvs login</userinput> &prompt.user; <userinput>cvs login</userinput>
<emphasis>At the prompt, enter the password</emphasis> <quote>anoncvs</quote>. <emphasis>At the prompt, enter the password</emphasis> <quote>anoncvs</quote>.
&prompt.user; <userinput>cvs co -rRELENG_3 ls</userinput> &prompt.user; <userinput>cvs co -rRELENG_6 ls</userinput>
&prompt.user; <userinput>cvs release -d ls</userinput>
&prompt.user; <userinput>cvs logout</userinput>
</screen> </screen>
</example> </example>
<example> <example>
<title>óÏÚÄÁÎÉÅ ÓÐÉÓËÁ ÉÚÍÅÎÅÎÉÊ &man.ls.1; (× ×ÉÄÅ unified diff)</title> <title>óÏÚÄÁÎÉÅ ÓÐÉÓËÁ ÉÚÍÅÎÅÎÉÊ &man.ls.1; (× ×ÉÄÅ unified diff)</title>
<screen>&prompt.user; <userinput>setenv CVSROOT :pserver:anoncvs@anoncvs.FreeBSD.org:/home/ncvs</userinput> <screen>&prompt.user; <userinput>setenv CVSROOT :pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs</userinput>
&prompt.user; <userinput>cvs login</userinput> &prompt.user; <userinput>cvs login</userinput>
<emphasis>At the prompt, enter the password</emphasis> <quote>anoncvs</quote>. <emphasis>At the prompt, enter the password</emphasis> <quote>anoncvs</quote>.
&prompt.user; <userinput>cvs rdiff -u -rRELENG_3_0_0_RELEASE -rRELENG_3_4_0_RELEASE ls</userinput> &prompt.user; <userinput>cvs rdiff -u -rRELENG_5_3_0_RELEASE -rRELENG_5_4_0_RELEASE ls</userinput>
&prompt.user; <userinput>cvs logout</userinput>
</screen> </screen>
</example> </example>
<example> <example>
<title>ðÏÉÓË ÄÏÓÔÕÐÎÙÈ ÉÍÅÎ ÍÏÄÕÌÅÊ:</title> <title>ðÏÉÓË ÄÏÓÔÕÐÎÙÈ ÉÍÅÎ ÍÏÄÕÌÅÊ:</title>
<screen>&prompt.user; <userinput>setenv CVSROOT :pserver:anoncvs@anoncvs.FreeBSD.org:/home/ncvs</userinput> <screen>&prompt.user; <userinput>setenv CVSROOT :pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs</userinput>
&prompt.user; <userinput>cvs login</userinput> &prompt.user; <userinput>cvs login</userinput>
<emphasis>At the prompt, enter the password</emphasis> <quote>anoncvs</quote>. <emphasis>At the prompt, enter the password</emphasis> <quote>anoncvs</quote>.
&prompt.user; <userinput>cvs co modules</userinput> &prompt.user; <userinput>cvs co modules</userinput>
&prompt.user; <userinput>more modules/modules</userinput> &prompt.user; <userinput>more modules/modules</userinput>
&prompt.user; <userinput>cvs release -d modules</userinput>
&prompt.user; <userinput>cvs logout</userinput>
</screen> </screen>
</example> </example>
</sect2> </sect2>
@ -536,7 +519,7 @@ Warning: Permanently added 'anoncvs.freebsd.org' (DSA) to the list of known host
</listitem> </listitem>
<listitem> <listitem>
<para><ulink url="http://www.cvshome.org/">CVS Home</ulink>, <para><ulink url="http://ximbiot.com/cvs/wiki/">CVS Home</ulink>,
ÓÏÏÂÝÅÓÔ×Ï ÒÁÚÒÁÂÏÔËÉ É ÐÏÄÄÅÒÖËÉ CVS.</para> ÓÏÏÂÝÅÓÔ×Ï ÒÁÚÒÁÂÏÔËÉ É ÐÏÄÄÅÒÖËÉ CVS.</para>
</listitem> </listitem>
@ -1798,6 +1781,15 @@ doc/zh_*</screen>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry>
<term><literal>ports-net-im
release=cvs</literal></term>
<listitem>
<para>Программы обмена быстрыми сообщениями.</para>
</listitem>
</varlistentry>
<varlistentry> <varlistentry>
<term><literal>ports-net-mgmt <term><literal>ports-net-mgmt
release=cvs</literal></term> release=cvs</literal></term>
@ -1807,6 +1799,15 @@ doc/zh_*</screen>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry>
<term><literal>ports-net-p2p
release=cvs</literal></term>
<listitem>
<para>Сети клиентского обмена (peer-to-peer).</para>
</listitem>
</varlistentry>
<varlistentry> <varlistentry>
<term><literal>ports-news <term><literal>ports-news
release=cvs</literal></term> release=cvs</literal></term>
@ -2325,6 +2326,170 @@ doc/zh_*</screen>
</sect2> </sect2>
</sect1> </sect1>
<sect1 id="portsnap">
<title>Использование Portsnap</title>
<sect2 id="portsnap-intro">
<title>Введение</title>
<para><application>Portsnap</application> &mdash; система для
защищенного распространения дерева портов &os;. Примерно раз
в час генерируется <quote>снэпшот</quote> дерева портов,
который затем архивируется и подписывается электронной подписью.
Полученные файлы затем распространяются при помощи HTTP.</para>
<para>Подобно <application>CVSup</application>,
<application>portsnap</application> использует
<emphasis>активную (pull)</emphasis> модель обновлений:
упакованное и подписанное дерево помещается на веб-сервер, откуда
его должны забирать клиенты. Пользователь должен либо запустить
&man.portsnap.8; вручную, чтобы получить
обновления, либо настроить периодическое задание при помощи
&man.cron.8;.<para>
<para>По техническим причинам <application>Portsnap</application>
не обновляет основное (<quote>живое</quote>) дерево портов в
каталоге <filename>/usr/ports/</filename>, а работает со сжатой
копией дерева в каталоге <filename>/var/db/portsnap/</filename>.
Впоследствии эта копия используется для обновления основного
дерева.</para>
<note>
<para>Если <application>Portsnap</application> был установлен из
Коллекции портов &os;, каталогом для снэпшотов будет
<filename>/usr/local/portsnap/</filename>, а не
<filename>/var/db/portsnap/</filename>.</para>
</note>
</sect2>
<sect2 id="portsnap-install">
<title>Установка</title>
<para>&os; начиная с версии 6.0 содержит
<application>Portsnap</application> в базовой поставке системы.
Для более ранних релизов &os; эта утилита может быть установлена
из порта <filename role="package">sysutils/portsnap</filename>.</para>
</sect2>
<sect2 id="portsnap-config">
<title>Конфигурация Portsnap</title>
<para>Конфигурация <application>Portsnap</application> описывается
файлом <filename>/etc/portsnap.conf</filename>. Для большинства
пользователей вполне подойдет конфигурация по умолчанию;
за подробностями обращайтесь к странице справочника
&man.portsnap.conf.5;.</para>
<note>
<para>При установке <application>Portsnap</application> из
Коллекции портов используется файл конфигурации
<filename>/usr/local/etc/portsnap.conf</filename>.
При установке порта этот файл не создается; вам нужно создать
его самостоятельно командой</para>
<screen>&prompt.root; <userinput>cd /usr/local/etc &amp;&amp; cp portsnap.conf.sample portsnap.conf</userinput></screen>
</note>
</sect2>
<sect2>
<title>Первый запуск <application>Portsnap</application></title>
<para>При первом запуске утилите &man.portsnap.8;
потребуется загрузить упакованный снэпшот полного дерева портов
в каталог <filename>/var/db/portsnap/</filename>
(<filename>/usr/local/portsnap/</filename>, если
<application>Portsnap</application> был установлен из Коллекции
портов). На начало 2006 года размер снэпшота составляет около
55&nbsp;МБ.</para>
<screen>&prompt.root; <userinput>portsnap fetch</userinput></screen>
<para>После загрузки снэпшота из него может быть развернуто основное
дерево портов. Это необходимо, даже есть каталог
<filename>/usr/ports/</filename>заполнен каким-либо другим
способом, например при помощи <application>CVSup</application>,
поскольку позволяет установить точку отсчета, от которой
<command>portsnap</command> будет определять необходимый
объем изменений.</para>
<screen>&prompt.root; <userinput>portsnap extract</userinput></screen>
<note>
<para>В конфигурации установки по умолчанию каталог
<filename role="directory">/usr/ports</filename> не создан.
Создайте его самостоятельно перед первым запуском
утилиты <command>portsnap</command>.</para>
</note>
</sect2>
<sect2>
<title>Обновление дерева портов</title>
<para>После того как первоначальный снэпшот дерева портов будет
развернут в каталог <filename>/usr/ports/</filename>, обновление
дерева портов будет состоять из двух шагов:
загрузки (<emphasis>fetch</emphasis>) обновлений к упакованному
снэпшоту и последующего обновления (<emphasis>update</emphasis>)
основного дерева. Оба шага могут быть выполнены одним запуском
<command>portsnap</command>:</para>
<screen>&prompt.root; <userinput>portsnap fetch update</userinput></screen>
<note>
<para>Некоторые из старых версий <command>portsnap</command>
не поддерживают такой синтаксис; в этом случае, используйте две
последовательные команды:</para>
<screen>&prompt.root; <userinput>portsnap fetch</userinput>
&prompt.root; <userinput>portsnap update</userinput></screen>
</note>
</sect2>
<sect2>
<title>Запуск portsnap из cron</title>
<para>Для того, чтобы избежать проблем с <quote>безумными
толпами</quote> клиентов, одновременно приходящими на сервера
<application>Portsnap</application>, команда <command>portsnap
fetch</command> не запустится как задание &man.cron.8;.
Для работы из <command>cron</command> предназначена специальная
команда <command>portsnap cron</command>, которая перед
загрузкой обновлений ожидает случайное время до 3600 секунд.</para>
<para>Кроме того, настоятельно не рекомендуется запускать из
<command>cron</command> команду <command>portsnap
update</command>, поскольку при пересечении с процессом сборки
или установки какого-либо порта неизбежно возникнет конфликт.
С другой стороны, безопасно обновить индексный файл, запустив
<command>portsnap -I update</command> (разумеется, команду
<command>portsnap update</command> без ключа <option>-I</option>
для обновления оставшейся части дерева портов придется запустить
вручную).</para>
<para>Для ежедневного обновления упакованного снэпшота и индексного
файла при помощи <command>portsnap</command> и последующего
отчета почтой об устаревших установленных пакетах добавьте
в ваш файл <filename>/etc/crontab</filename> строку</para>
<programlisting>0 3 * * * root portsnap -I cron update && pkg_version -vIL=</programlisting>
<note>
<para>Если системные часы не установлены в локальное время,
пожалуйста, замените <literal>3</literal> на случайное
число между 0 и 23, чтобы не создавать пиковых нагрузок на
серверы <application>portsnap</application>.</para>
</note>
<note>
<para>Старые версии утилиты <command>portsnap</command>
не поддерживали несколько команд при одном запуске (например,
<literal>cron update</literal>). Если команда, указанная выше,
не сработает, попробуйте заменить
<command>portsnap -I cron update</command> на
<command>portsnap cron &amp;&amp; portsnap -I update</command>.</para>
</note>
</sect2>
</sect1>
<sect1 id="cvs-tags"> <sect1 id="cvs-tags">
<title>ôÅÇÉ CVS</title> <title>ôÅÇÉ CVS</title>
@ -2368,13 +2533,23 @@ doc/zh_*</screen>
<varlistentry> <varlistentry>
<term>RELENG_6</term> <term>RELENG_6</term>
<listitem> <listitem>
<para>÷ÅÔר ÒÁÚÒÁÂÏÔËÉ FreeBSD-6.X, ÉÚ×ÅÓÔÎÁÑ ÔÁËÖÅ ËÁË <para>÷ÅÔר ÒÁÚÒÁÂÏÔËÉ FreeBSD-6.X, ÉÚ×ÅÓÔÎÁÑ ÔÁËÖÅ ËÁË
FreeBSD 6-STABLE.</para> FreeBSD 6-STABLE.</para>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry>
<term>RELENG_6_0</term>
<listitem>
<para>Ветвь релиза для FreeBSD-6.0, используемая только
для исправлений безопасности и других критических
исправлений.</para>
</listitem>
</varlistentry>
<varlistentry> <varlistentry>
<term>RELENG_5</term> <term>RELENG_5</term>
@ -2571,6 +2746,14 @@ doc/zh_*</screen>
ÎÅÔ ÓÐÅÃÉÁÌØÎÙÈ ÉÍÅÎ ÄÌÑ ÒÅÌÉÚÏ×.</para> ÎÅÔ ÓÐÅÃÉÁÌØÎÙÈ ÉÍÅÎ ÄÌÑ ÒÅÌÉÚÏ×.</para>
<variablelist> <variablelist>
<varlistentry>
<term>RELENG_6_0_0_RELEASE</term>
<listitem>
<para>FreeBSD 6.0</para>
</listitem>
</varlistentry>
<varlistentry> <varlistentry>
<term>RELENG_5_4_0_RELEASE</term> <term>RELENG_5_4_0_RELEASE</term>

View file

@ -2,9 +2,9 @@
The FreeBSD Russian Documentation Project The FreeBSD Russian Documentation Project
$FreeBSD$ $FreeBSD$
$FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/network-servers/chapter.sgml,v 1.27 2006/01/06 18:40:03 gad Exp $ $FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/network-servers/chapter.sgml,v 1.30 2006/02/18 17:54:40 marck Exp $
Original revision: 1.72 Original revision: 1.78
--> -->
<chapter id="network-servers"> <chapter id="network-servers">
@ -106,6 +106,12 @@
<contrib>Текст предоставил </contrib> <contrib>Текст предоставил </contrib>
</author> </author>
</authorgroup> </authorgroup>
<authorgroup>
<author>
<contrib>Обновлено для &os; 6.1-RELEASE</contrib>
<othername>Проект документации &os;</othername>
</author>
</authorgroup>
</sect1info> </sect1info>
<title><quote>Супер-сервер</quote> <application>inetd</application></title> <title><quote>Супер-сервер</quote> <application>inetd</application></title>
@ -113,15 +119,15 @@
<sect2 id="network-inetd-overview"> <sect2 id="network-inetd-overview">
<title>Обзор</title> <title>Обзор</title>
<para>&man.inetd.8; называют также <quote>супер-сервером <para>&man.inetd.8; иногда называют также <quote>супер-сервером
Интернет</quote>, потому что он управляет соединениями к многим Интернет</quote>, потому что он управляет соединениями к многим
сервисам. Когда сервисам. Когда
<application>inetd</application> принимает соединение, он определяет, <application>inetd</application> принимает соединение, он определяет,
для какой программы предназначено соединение, запускает соответствующий для какой программы предназначено соединение, запускает соответствующий
процесс и предоставляет ему сокет, ссылка на который передается процесс и предоставляет ему сокет, ссылка на который передается
процессу в качестве стандартных устройств ввода, вывода и сообщения об процессу в качестве стандартных устройств ввода, вывода и сообщения об
ошибках. Запуск одного экземпляра ошибках. Для не слишком нагруженных серверов запуск через
<application>inetd</application> уменьшает общую нагрузку на систему по <application>inetd</application> может уменьшить общую нагрузку на систему по
сравнению с запуском каждого даемона индивидуально в выделенном сравнению с запуском каждого даемона индивидуально в выделенном
режиме.</para> режиме.</para>
@ -141,15 +147,19 @@
<title>Настройки</title> <title>Настройки</title>
<para><application>inetd</application> инициализируется посредством <para><application>inetd</application> инициализируется посредством
системы <filename>/etc/rc.conf</filename>. Параметр системы &man.rc.8;. Параметр
<literal>inetd_enable</literal> по умолчанию установлен в <literal>inetd_enable</literal> по умолчанию установлен в
<literal>NO</literal>, однако часто включается утилитой <literal>NO</literal>, однако может быть включен утилитой
<application>sysinstall</application> при выборе профиля среднего <application>sysinstall</application> в процессе установки.
уровня безопасности. Указание Указание
<programlisting>inetd_enable="YES"</programlisting> или <programlisting>inetd_enable="YES"</programlisting> или
<programlisting>inetd_enable="NO"</programlisting> в файле <programlisting>inetd_enable="NO"</programlisting> в файле
<filename>/etc/rc.conf</filename> может задать или запретить запуск <filename>/etc/rc.conf</filename> разрешит или запретит запуск
<application>inetd</application> во время загрузки.</para> <application>inetd</application> во время загрузки.
Команда
<programlisting>/etc/rc.d/inetd rcvar</programlisting>
покажет текущие установки переменных, относящихся к
<application>inetd</application>.</para>
<para>Кроме того, через <literal>inetd_flags</literal> даемону <para>Кроме того, через <literal>inetd_flags</literal> даемону
<application>inetd</application> могут быть переданы различные <application>inetd</application> могут быть переданы различные
@ -159,47 +169,29 @@
<sect2 id="network-inetd-cmdline"> <sect2 id="network-inetd-cmdline">
<title>Параметры командной строки</title> <title>Параметры командной строки</title>
<para>Формат вызова <application>inetd</application>:</para> <para>Как и большинство даемонов, для <application>inetd</application>
существует большое количество разнообразных опций, изменяющих
его поведение. Полный из список таков;</para>
<para><option> inetd [-d] [-l] [-w] [-W] [-c maximum] [-C rate] [-a address | hostname] <para><command>inetd</command> <option>[-d] [-l] [-w] [-W] [-c maximum] [-C rate] [-a address | hostname]
[-p filename] [-R rate] [configuration file]</option></para> [-p filename] [-R rate] [-s maximum] [configuration file]</option></para>
<para>Опции могут передаваться <application>inetd</application>
при помощи переменной <literal>inetd_flags</literal> файла
<filename>/etc/rc.conf</filename>. По умолчанию переменная
<literal>inetd_flags</literal> установлена в <literal>-wW -C
60</literal>, то есть включает обработку TCP wrapping и запрещает
обращаться с одного IP-адреса к сервису более чем 60 раз в
минуту.</para>
<para>Начинающих пользователей порадует отсутствие необходимости
менять эти параметры в стандартных случаях. Тем не менее, мы
остановимся на опциях, ограничивающих количество и частоту
соединений, поскольку они могут быть полезны для исключения
массированных атак. Полный список опций можно найти на странице
справочника &man.inetd.8;.</para>
<variablelist> <variablelist>
<varlistentry>
<term>-d</term>
<listitem>
<para>Включение отладочной информации.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>-l</term>
<listitem>
<para>Включение регистрации успешных соединений.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>-w</term>
<listitem>
<para>Включение механизма TCP Wrapping для внешних служб (по
умолчанию включено).</para>
</listitem>
</varlistentry>
<varlistentry>
<term>-W</term>
<listitem>
<para>Включение механизма TCP Wrapping для внутренних служб,
которые встроены в <application>inetd</application> (по
умолчанию включено).</para>
</listitem>
</varlistentry>
<varlistentry> <varlistentry>
<term>-c maximum</term> <term>-c maximum</term>
@ -234,86 +226,50 @@
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term>-a</term> <term>-s maximum</term>
<listitem> <listitem>
<para>Задает один IP-адрес, к которому делается привязка. <para>Задает максимальное количество процессов, одновременно
Альтернативно может быть указано имя хоста, и в этом случае обслуживающих один сервис для одного IP-адреса; по умолчанию
используется соответствующий этому имени хоста адрес IPv4 или не ограничено. Может переопределяться для каждой службы
IPv6. Обычно имя хоста задается, когда параметром <option>max-child-per-ip</option>.</para>
<application>inetd</application> запускается в окружении
&man.jail.8;, и в этом случае имя хоста соответствует этому
&man.jail.8;-окружению.</para>
<para>Если используется формат с именем хоста и требуется привязка
как для IPv4, так и для IPv6, то для каждой привязки требуется
запись с соответствующим типом протокола для каждой службы в
файле <filename>/etc/inetd.conf</filename>. К примеру, службе
на основе TCP потребуется две записи, в одной для протокола
используется <literal>tcp4</literal>, а в другой
используется <literal>tcp6</literal>.</para>
</listitem>
</varlistentry>
<varlistentry>
<term>-p</term>
<listitem>
<para>Задает альтернативный файл для хранения ID процесса.</para>
</listitem> </listitem>
</varlistentry> </varlistentry>
</variablelist> </variablelist>
<para>Эти параметры могут быть переданы в
<application>inetd</application> при помощи
<literal>inetd_flags</literal> в файле
<filename>/etc/rc.conf</filename>. По умолчанию значение
<literal>inetd_flags</literal> установлено в <literal>-wW</literal>,
что включает механизм TCP wrapping для внутренних и внешних служб
<application>inetd</application>. Новичкам эти параметры изменять и
даже задавать их в файле <filename>/etc/rc.conf</filename> не
нужно.</para>
<note>
<para>Внешняя служба является даемоном вне
<application>inetd</application>, который запускается при получении
соединения к нему. С другой стороны, внутренней службой является
услуга, которую <application>inetd</application> предоставляет
сам.</para>
</note>
</sect2> </sect2>
<sect2 id="network-inetd-conf"> <sect2 id="network-inetd-conf">
<!-- XXX This section isn't very clear, and could do with some lovin' -->
<title><filename>inetd.conf</filename></title> <title><filename>inetd.conf</filename></title>
<para>Настройка <application>inetd</application> управляется через файл <para>Настройка <application>inetd</application> производится через файл
<filename>/etc/inetd.conf</filename>.</para> <filename>/etc/inetd.conf</filename>.</para>
<para>Если в файле <filename>/etc/inetd.conf</filename> делались <para>Если в файле <filename>/etc/inetd.conf</filename> делались
изменения, то <application>inetd</application> можно заставить считать изменения, то <application>inetd</application> можно заставить считать
его конфигурационный файл повторно, послав сигнал HangUP процессу его конфигурационный файл повторно посредством команды</para>
<application>inetd</application>, как показано здесь:</para>
<example id="network-inetd-hangup"> <example id="network-inetd-reread">
<title>Посылка сигнала HangUP процессу <title>Перезагрузка конфигурационного файла
<application>inetd</application></title> <application>inetd</application></title>
<screen>&prompt.root; <userinput>kill -HUP `cat /var/run/inetd.pid`</userinput></screen> <screen>&prompt.root; <userinput>/etc/rc.d/inetd reload</userinput></screen>
</example> </example>
<para>В каждой строке конфигурационного файла описывается отдельный <para>В каждой строке конфигурационного файла описывается отдельный
даемон. Комментариям в файле предшествует знак <quote>#</quote>. Файл даемон. Комментариям в файле предшествует знак <quote>#</quote>.
<filename>/etc/inetd.conf</filename> имеет такой формат:</para> Строки в файле
<filename>/etc/inetd.conf</filename> имеют такой формат:</para>
<programlisting>service-name <programlisting>service-name
socket-type socket-type
protocol protocol
{wait|nowait}[/max-child[/max-connections-per-ip-per-minute]] {wait|nowait}[/max-child[/max-connections-per-ip-per-minute[/max-child-per-ip]]]
user[:group][/login-class] user[:group][/login-class]
server-program server-program
server-program-arguments</programlisting> server-program-arguments</programlisting>
<para>Пример записи для даемона <application>ftpd</application>, <para>Пример записи для даемона &man.ftpd.8;,
использующего IPv4:</para> использующего IPv4:</para>
<programlisting>ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l</programlisting> <programlisting>ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l</programlisting>
@ -396,7 +352,7 @@ server-program-arguments</programlisting>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term>{wait|nowait}[/max-child[/max-connections-per-ip-per-minute]]</term> <term>{wait|nowait}[/max-child[/max-connections-per-ip-per-minute[/max-child-per-ip]]]</term>
<listitem> <listitem>
<para><option>wait|nowait</option> определяет, может ли даемон, <para><option>wait|nowait</option> определяет, может ли даемон,
@ -414,41 +370,55 @@ server-program-arguments</programlisting>
параметром <option>max-child</option>. Если нужно ограничение в параметром <option>max-child</option>. Если нужно ограничение в
десять экземпляров некоторого даемона, то после параметра десять экземпляров некоторого даемона, то после параметра
<option>nowait</option> нужно задать <option>nowait</option> нужно задать
<literal>/10</literal>.</para> <literal>/10</literal>. При задании <literal>/0</literal>
ограничения на количество экземпляров снимаются.</para>
<para>Кроме <option>max-child</option>, может быть задействован <para>Кроме <option>max-child</option>, могут быть задействованы
другой параметр, ограничивающий максимальное число соединений от два других параметра, ограничивающих максимальное число соединений от
одного источника. одного источника.
<option>max-connections-per-ip-per-minute</option> служит именно <option>max-connections-per-ip-per-minute</option> ограничивает
для этого. Здесь значение, равное десяти, будет ограничивать количество соединений от одного IP-адреса в течение минуты, так что
значение, равное десяти, будет ограничивать
любой заданный IP-адрес на выполнение десяти попыток подключения любой заданный IP-адрес на выполнение десяти попыток подключения
к некоторому сервису в минуту. Это полезно для предотвращения к некоторому сервису в минуту. Параметр
<option>max-child-per-ip</option> ограничивает количество
дочерних процессов, которые могут быть одновременно
задействованы на обслуживание одного IP-адреса.
Эти опции полезны для предотвращения
намеренного или ненамеренного расходования ресурсов и атак типа намеренного или ненамеренного расходования ресурсов и атак типа
Denial of Service (DoS) на машину.</para> Denial of Service (DoS) на машину.</para>
<para>В этом поле <option>wait</option> или <option>nowait</option> <para>В этом поле одно из значений <option>wait</option>
обязательны. <option>max-child</option> и или <option>nowait</option>
<option>max-connections-per-ip-per-minute</option> обязательны. <option>max-child</option>,
<option>max-connections-per-ip-per-minute</option> и
<option>max-child-per-ip</option>
опциональны.</para> опциональны.</para>
<para>Многопоточный даемон типа stream без ограничений <para>Многопоточный даемон типа stream без ограничений
<option>max-child</option> или <option>max-child</option>,
<option>max-connections-per-ip-per-minute</option> будет <option>max-connections-per-ip-per-minute</option> или
определен просто вот так: <literal>nowait</literal>.</para> <option>max-child-per-ip</option> будет
определен просто как <literal>nowait</literal>.</para>
<para>Тот же самый даемон с ограничением в максимум десять даемонов <para>Тот же самый даемон с ограничением в максимум десять даемонов
будет определен так: <literal>nowait/10</literal>.</para> будет определен так: <literal>nowait/10</literal>.</para>
<para>Наконец, та же конфигурация с ограничением в двадцать <para>Та же конфигурация с ограничением в двадцать
соединений на IP-адрес в минуту и общим ограничением в максимум соединений на IP-адрес в минуту и общим ограничением в максимум
десять порожденных даемонов выглядит так: десять порожденных даемонов выглядит так:
<literal>nowait/10/20</literal>.</para> <literal>nowait/10/20</literal>.</para>
<para>Эти параметры, используемые все со значениями по умолчанию <para>Эти параметры, используемые все со значениями по умолчанию
даемоном <application>fingerd</application>, имеют такой даемоном &man.fingerd.8;, имеют такой
вид:</para> вид:</para>
<programlisting>finger stream tcp nowait/3/10 nobody /usr/libexec/fingerd fingerd -s</programlisting> <programlisting>finger stream tcp nowait/3/10 nobody /usr/libexec/fingerd fingerd -s</programlisting>
<para>Наконец, пример, описывающий ограничение на 100 даемонов
в целом, при этом не более чем по 5 на один IP-адрес,
будет выглядеть так:
<literal>nowait/100/0/5</literal>.</para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@ -497,23 +467,25 @@ server-program-arguments</programlisting>
<sect2 id="network-inetd-security"> <sect2 id="network-inetd-security">
<title>Безопасность</title> <title>Безопасность</title>
<para>В зависимости от схемы безопасности, выбранной при установке, <para>В зависимости от выбранных при установке параметров,
многие из даемонов <application>inetd</application> могут оказаться по многие из служб <application>inetd</application> могут оказаться по
умолчанию включенными. Если нет особой нужды в некотором даемоне, то умолчанию включенными. Если нет особой нужды в некотором даемоне,
выключите его! Поместите знак <quote>#</quote> перед ненужным даемоном подумайте, не стоит ли его выключить?
Поместите знак <quote>#</quote> перед ненужным даемоном
в <filename>/etc/inetd.conf</filename> в <filename>/etc/inetd.conf</filename>
и <link linkend="network-inetd-hangup">пошлите сигнал для inetd</link>. и <link linkend="network-inetd-reread">пошлите сигнал для inetd</link>.
Некоторые даемоны, такие, как <application>fingerd</application>, Некоторые даемоны, такие, как <application>fingerd</application>,
вообще нежелательны, потому что они дают атакующему слишком много вообще нежелательны, потому что они дают информацию, которая
информации.</para> может оказаться полезной атакующему.</para>
<para>Некоторые даемоны не заботятся о безопасности и имеют большие <para>Некоторые даемоны не заботятся о безопасности и имеют большие
тайм-ауты для соединений или вообще их не имеют. Это позволяет тайм-ауты для соединений или вообще их не имеют. Это позволяет
атакующему неспешно устанавливать соединения к конкретному даемону, атакующему неспешно устанавливать соединения к конкретному даемону,
истощая имеющиеся ресурсы. Может оказаться полезным задать для истощая имеющиеся ресурсы. Может оказаться полезным задать для
некоторых даемонов ограничения некоторых даемонов ограничения
<option>max-connections-per-ip-per-minute</option> и <option>max-connections-per-ip-per-minute</option>,
<option>max-child</option>.</para> <option>max-child</option> и <option>max-child-per-ip</option>,
особенно если вы обнаружите слишком большое число соединений.</para>
<para>По умолчанию механизм TCP wrapping включен. Обратитесь к <para>По умолчанию механизм TCP wrapping включен. Обратитесь к
справочной странице по &man.hosts.access.5; для получения более справочной странице по &man.hosts.access.5; для получения более
@ -534,8 +506,7 @@ server-program-arguments</programlisting>
<para>Сервис <application>auth</application> предоставляет <para>Сервис <application>auth</application> предоставляет
идентификационные сетевые услуги идентификационные сетевые услуги
(<application>ident</application>, <application>identd</application>) и поддается настройке; прочие сервисы ненастраиваемы.</para>
и поддается настройке.</para>
<para>Обратитесь к справочной странице по &man.inetd.8; для получения <para>Обратитесь к справочной странице по &man.inetd.8; для получения
более подробной информации.</para> более подробной информации.</para>
@ -4291,7 +4262,7 @@ zone "0.168.192.in-addr.arpa" {
в поставку FreeBSD. Если вы не установили их во вместе с в поставку FreeBSD. Если вы не установили их во вместе с
системой, воспользуйтесь портами <filename системой, воспользуйтесь портами <filename
role="package">www/apache13</filename> или <filename role="package">www/apache13</filename> или <filename
role="package">www/apache2</filename>.</para> role="package">www/apache20</filename>.</para>
<para>Как только <application>Apache</application> был успешно <para>Как только <application>Apache</application> был успешно
установлен, его необходимо настроить.</para> установлен, его необходимо настроить.</para>
@ -4523,7 +4494,7 @@ DocumentRoot /www/someotherdomain.tld
role="package">www/apache13-modssl</filename>. role="package">www/apache13-modssl</filename>.
Поддержка SSL также доступна для Поддержка SSL также доступна для
<application>Apache</application>&nbsp;2.X <application>Apache</application>&nbsp;2.X
через порт <filename role="package">www/apache2</filename>, через порт <filename role="package">www/apache20</filename>,
где она включена по умолчанию.</para> где она включена по умолчанию.</para>
<!-- XXX add more information about configuring mod_ssl here. --> <!-- XXX add more information about configuring mod_ssl here. -->
@ -4532,9 +4503,24 @@ DocumentRoot /www/someotherdomain.tld
</sect3> </sect3>
<sect3> <sect3>
<title>Построение динамических сайтов при помощи Perl и PHP</title>
<para>В последние годы все большее число компаний обращает внимание
на Интернет как площадку для ведения и расширения бизнеса.
Среди прочего, этот процесс подчеркивает потребность в
интерактивном содержимом сайтов. Некоторые компании, такие как
&microsoft;, представляют свои закрытые решения; сообщество
разработчиков открытых программ отвечает на вызов.
Два возможных пути решения проблемы динамического контента &mdash;
mod_perl и mod_php.</para>
<sect4>
<title>mod_perl</title> <title>mod_perl</title>
<indexterm><primary>Perl</primary></indexterm> <indexterm>
<primary>mod_perl</primary>
<secondary>Perl</secondary>
</indexterm>
<para>Проект интеграции <para>Проект интеграции
<application>Apache</application>/Perl объединяет мощь <application>Apache</application>/Perl объединяет мощь
@ -4547,15 +4533,22 @@ DocumentRoot /www/someotherdomain.tld
позволяет не тратить ресурсы на запуск внешнего позволяет не тратить ресурсы на запуск внешнего
интерпретатора и время на запуск Perl.</para> интерпретатора и время на запуск Perl.</para>
<para>Если вы еще не установили <application>Apache</application>, <para><application>mod_perl</application> можно использовать
его версия с модулем <application>mod_perl</application> может различными способами. Помните, что
быть установлена через <application>mod_perl</application> 1.0 работает только с
порт <filename <application>Apache</application> 1.3, тогда как
role="package">www/apache13-modperl</filename>.</para> <application>mod_perl</application> 2.0 совместим только с
</sect3> <application>Apache</application> 2.
<application>mod_perl</application> 1.0 доступен как порт <filename
role="package">www/mod_perl</filename>, а также в виде статически
скомпилированной версии в <filename
role="package">www/apache13-modperl</filename>.
<application>mod_perl</application> 2.0 доступен как <filename
role="package">www/mod_perl2</filename>.</para>
</sect4>
<sect3> <sect4>
<sect3info> <sect4info>
<authorgroup> <authorgroup>
<author> <author>
<firstname>Tom</firstname> <firstname>Tom</firstname>
@ -4563,21 +4556,16 @@ DocumentRoot /www/someotherdomain.tld
<contrib>Написал </contrib> <contrib>Написал </contrib>
</author> </author>
</authorgroup> </authorgroup>
</sect3info> </sect4info>
<title>PHP</title> <title>mod_php</title>
<indexterm><primary>PHP</primary></indexterm> <indexterm>
<primary>mod_php</primary>
<secondary>PHP</secondary>
</indexterm>
<para>В последние несколько лет все большее количество компаний <para>PHP, также известный как <quote>Препроцессор гипертекста</quote>
выходит в интернет, стараясь повысить свою узнаваемость и получить (<quote>Hypertext Preprocessor</quote>), &mdash;
больший доход. Это увеличивает потребность в интерактивном
веб контенте. В то время, как некоторые компании, такие
как &microsoft;, представили свои решения в проприетарных
продуктах, сообщество открытых исходных текстов ответило
на вызов. Один из таких ответов, это широко используемый
<acronym>PHP</acronym>.
<para>PHP, также известный как <quote>Hypertext Preprocessor</quote>,
это скриптовый язык общего назначения, в основном предназначенный это скриптовый язык общего назначения, в основном предназначенный
для веб разработки. Этот язык может быть встроен в для веб разработки. Этот язык может быть встроен в
<acronym>HTML</acronym>, его синтаксис заимствован из C, &java; <acronym>HTML</acronym>, его синтаксис заимствован из C, &java;
@ -4589,42 +4577,47 @@ DocumentRoot /www/someotherdomain.tld
порта <filename role="package">www/mod_php5</filename>.</para> порта <filename role="package">www/mod_php5</filename>.</para>
<para>Этот порт устанавливает и настраивает модули, необходимые <para>Этот порт устанавливает и настраивает модули, необходимые
для поддержки динамических веб страниц. Убедитесь, что в файл для поддержки динамических <acronym>PHP</acronym> веб страниц.
Убедитесь, что в файл
<filename>/usr/local/etc/apache/httpd.conf</filename> были <filename>/usr/local/etc/apache/httpd.conf</filename> были
добавлены следующие строки:</para> добавлены следующие секции:</para>
<programlisting>LoadModule php5_module libexec/apache/libphp5.so <programlisting>LoadModule php5_module libexec/apache/libphp5.so</programlisting>
AddModule mod_php5.c
<programlisting>AddModule mod_php5.c
&lt;IfModule mod_php5.c&gt; &lt;IfModule mod_php5.c&gt;
DirectoryIndex index.php index.html DirectoryIndex index.php index.html
&lt;/IfModule&gt; &lt;/IfModule&gt;
&lt;IfModule mod_php5.c&gt; &lt;IfModule mod_php5.c&gt;
AddType application/x-httpd-php .php AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps AddType application/x-httpd-php-source .phps
&lt;/IfModule&gt;</programlisting> &lt;/IfModule&gt;</programlisting>
<para>После этого просто вызовите команду <para>Для загрузки модуля <acronym>PHP</acronym>
после этого просто вызовите команду
<command>apachectl</command> с параметром graceful:</para> <command>apachectl</command> с параметром graceful:</para>
<screen>&prompt.root; <userinput>apachectl graceful</userinput></screen> <screen>&prompt.root; <userinput>apachectl graceful</userinput></screen>
<para>Поддержка <acronym>PHP</acronym> в &os; построена по <para>Поддержка <acronym>PHP</acronym> в &os; построена по
модульному принципу. Если требуется поддержка какого-либо модульному принципу, поэтому базовая установка обладает очень
расширения, администратор должен лишь установить ограниченной функциональностью. Дополнительная функциональность
соответствующий порт и перезапустить может быть легко добавлена при помощи порта <filename
<application>Apache</application>, как показано выше.</para> role="package">lang/php5-extensions</filename>, управляющего набором
расширений <acronym>PHP</acronym> через меню, либо просто путем
установки дополнительных портов.</para>
<para>Например, для добавления поддержки <para>Например, для добавления поддержки
<application>MySQL</application> к <acronym>PHP</acronym>5, <application>MySQL</application> к <acronym>PHP</acronym>5,
просто установите просто установите порт
<filename role="package">databases/php5-mysql</filename> <filename role="package">databases/php5-mysql</filename>.</para>
и выполните следующую команду:</para>
<screen>&prompt.root; <userinput>apachectl graceful</userinput></screen> <para>После установки новых расширений сервер
<application>Apache</application> должен быть рестартован,
чтобы изменения в конфигурации вступили в силу:</para>
<para>Это включит поддержку <application>MySQL</application> <screen>&prompt.root; <userinput>apachectl graceful</userinput></screen>
в <acronym>PHP</acronym>.</para> </sect4>
</sect3> </sect3>
</sect2> </sect2>
</sect1> </sect1>
@ -4705,9 +4698,9 @@ AddModule mod_php5.c
<programlisting>swat stream tcp nowait/400 root /usr/local/sbin/swat</programlisting> <programlisting>swat stream tcp nowait/400 root /usr/local/sbin/swat</programlisting>
<para>Как описано в <xref linkend="network-inetd-hangup">, <para>Как описано в <xref linkend="network-inetd-reread">,
после изменения настроек <application>inetd</application> после изменения настроек <application>inetd</application>
необходимо отправить HangUP сигнал.</para> необходимо перечитать конфигурацию.</para>
<para>Как только <application>swat</application> был включен <para>Как только <application>swat</application> был включен
<filename>inetd.conf</filename>, вы можете использовать <filename>inetd.conf</filename>, вы можете использовать
@ -4961,8 +4954,8 @@ Starting smbd.</screen>
<programlisting>ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l</programlisting> <programlisting>ftp stream tcp nowait root /usr/libexec/ftpd ftpd -l</programlisting>
<para>Как описано в <xref linkend="network-inetd-hangup">, <para>Как описано в <xref linkend="network-inetd-reread">,
сигнал HangUP должен быть отправлен <application>inetd</application> <application>inetd</application> должен перечитать конфигурацию
после того, как этот файл настройки был изменен.</para> после того, как этот файл настройки был изменен.</para>
<para>Теперь вы можете войти на FTP сервер, введя:</para> <para>Теперь вы можете войти на FTP сервер, введя:</para>