[svnbook commit] r2734 - trunk/src/ru/book

dmitriy noreply at red-bean.com
Thu Mar 8 13:51:22 CST 2007


Author: dmitriy
Date: Thu Mar  8 13:51:22 2007
New Revision: 2734

Log:
* src/ru/book/ch-server-configuration.xml
  The section "svn.serverconfig.svnserve" is reformatted and made more readable.

Modified:
   trunk/src/ru/book/ch-server-configuration.xml

Modified: trunk/src/ru/book/ch-server-configuration.xml
==============================================================================
--- trunk/src/ru/book/ch-server-configuration.xml	(original)
+++ trunk/src/ru/book/ch-server-configuration.xml	Thu Mar  8 13:51:22 2007
@@ -711,9 +711,12 @@
   <!-- ================================================================= -->
   <sect1 id="svn.serverconfig.svnserve">
 
-<!-- @ENGLISH {{{
+    <!-- @ENGLISH {{{
     <title>svnserve, a custom server</title>
+    @ENGLISH }}} -->
+    <title>Собственный сервер svnserve</title>
 
+    <!-- @ENGLISH {{{
     <para>The <command>svnserve</command> program is a lightweight
       server, capable of speaking to clients over TCP/IP using a
       custom, stateful protocol.  Clients contact an
@@ -723,41 +726,45 @@
       <command>svnserve</command>, how clients authenticate themselves
       to the server, and how to configure appropriate access control
       to your repositories.</para>
- at ENGLISH }}} -->
-   <title>svnserve - Заказной сервер</title>
-
-    <para> Программа <command>svnserve</command> легкий сервер, способный общаться 
-      с клиентами через TCP/IP, используя собственный простой протокол. Клиенты 
-      обращаются к серверу, 
-      <command>svnserve</command> используя URL, который начинается с 
-      <literal>svn://</literal> или <literal>svn+ssh://</literal>.  
-      В этом разделе рсказывается о различных путях запуска 
-      <command>svnserve</command>, о том 
-      как клиенты удостоверяются
-      (authenticate) на сервере и настройке соответствующих правил доступа к
-      вашему хранилищу.</para>
+    @ENGLISH }}} -->
+    <para> Программа <command>svnserve</command> легкий сервер, способный 
+      общаться с клиентами через TCP/IP, используя собственный простой
+      протокол. Клиенты обращаются к серверу, <command>svnserve</command>
+      используя URL, который начинается с <literal>svn://</literal> или
+      <literal>svn+ssh://</literal>. В этом разделе рсказывается о различных
+      способах запуска <command>svnserve</command>, о том как клиенты
+      аутентифицируются на сервере и о настройке соответствующих правил доступа
+      к хранилищу.</para>
 
     <!-- =============================================================== -->
     <sect2 id="svn.serverconfig.svnserve.invoking">
-<!-- @ENGLISH {{{
+      <!-- @ENGLISH {{{
       <title>Invoking the Server</title>
+      @ENGLISH }}} -->
+      <title>Запуск Сервера</title>
 
+      <!-- @ENGLISH {{{
       <para>There are a few different ways to invoke the
         <command>svnserve</command> program.  If invoked with no
         options, you'll see nothing but a help message.  However, if
         you're planning to have <command>inetd</command> launch the
         process, then you can pass the <option>-i</option>
-        (<option>--><!--inetd</option>) option:</para>
- at ENGLISH }}} -->
-      <title>Запуск Сервера</title>
+        (<option>-&#64738;-inetd</option>) option:</para>
+      @ENGLISH }}} -->
+      <para>Существует несколько различных способов запустить программу
+        <command>svnserve</command>. При запуске без параметров, ничего
+        кроме справочного сообщения вы не увидите. Если вы
+        планируете запускать процесс через <command>inetd</command>,
+        необходимо указывать параметр <option>-i</option>
+        (<option>--inetd</option>):</para>
 
       <screen>
 $ svnserve -i
 ( success ( 1 2 ( ANONYMOUS ) ( edit-pipeline ) ) )
 </screen>
 
-<!-- @ENGLISH {{{
-      <para>When invoked with the <option>--><!--inetd</option> option,
+      <!-- @ENGLISH {{{
+      <para>When invoked with the <option>-&#64738;-inetd</option> option,
         <command>svnserve</command> attempts to speak with a
         Subversion client via <emphasis>stdin</emphasis> and
         <emphasis>stdout</emphasis> using a custom protocol.  This is
@@ -766,83 +773,86 @@
         for the Subversion protocol, so on a Unix-like system you can
         add lines to <filename>/etc/services</filename> like these (if
         they don't already exist):</para>
- at ENGLISH }}} -->
-      <para>Когда произведен запуск с параметром <option>--inetd</option>,
-        <command>svnserve</command> пытается общаться с клиентом
-        Subversion через <emphasis>stdin</emphasis> и <emphasis>stdout</emphasis> 
-        используя собственный протокол.
-        Это стандартное поведение для программ, запускаемых через 
-        <command>inetd</command>.  IANA зарезервировал порт  3690
-        для протокола Subversion, поэтому на unix-подобных системах Вы можете добавить в 
-        <filename>/etc/services</filename> строки подобные этим (возможно, они 
-        уже существуют):</para>
+      @ENGLISH }}} -->
+      <para>При запуске с параметром <option>--inetd</option>,
+        <command>svnserve</command> будет пытаться общаться с клиентом
+        Subversion через <emphasis>stdin</emphasis> и
+        <emphasis>stdout</emphasis> используя собственный протокол.
+        Это стандартное поведение для программ, запускаемых через
+        <command>inetd</command>.  IANA зарезервировал порт  3690 для протокола
+        Subversion, поэтому на unix-подобных системах Вы можете добавить в
+        <filename>/etc/services</filename> строки подобные этим (возможно, они
+        там уже есть):</para>
 
       <screen>
 svn           3690/tcp   # Subversion
 svn           3690/udp   # Subversion
 </screen>
 
-<!-- @ENGLISH {{{
+      <!-- @ENGLISH {{{
       <para>And if your system is using a classic Unix-like
         <command>inetd</command> daemon, you can add this line to
         <filename>/etc/inetd.conf</filename>:</para>
- at ENGLISH }}} -->
-      <para> И если Ваша система использует классический Unix-подобный 
-         демон <command>inetd</command>, Вы можете добавить эти строки в 
-         <filename>/etc/inetd.conf</filename>:</para>
+      @ENGLISH }}} -->
+      <para>Если система использует классический Unix-подобный
+      демон <command>inetd</command>, в <filename>/etc/inetd.conf</filename>
+      можно добавить такую строку:</para>
 
       <screen>
 svn stream tcp nowait svnowner /usr/bin/svnserve svnserve -i
 </screen>
 
-<!-- @ENGLISH {{{
+      <!-- @ENGLISH {{{
       <para>Make sure <quote>svnowner</quote> is a user which has
         appropriate permissions to access your repositories.  Now, when
         a client connection comes into your server on port 3690,
         <command>inetd</command> will spawn an
         <command>svnserve</command> process to service it.</para>
+      @ENGLISH }}} -->
+      <para> Убедитесь, что пользователь <quote>svnowner</quote> имеет
+        необходимые права для доступа к хранилищу. После этого, когда
+       	от клиента к серверу на порт 3690 придет запрос на соединение,
+        <command>inetd</command> запустит процесс <command>svnserve</command>
+        для обслуживания этого запроса.
+      </para>
 
+      <!-- @ENGLISH {{{
       <para>On a Windows system, third-party tools exist to run
       <command>svnserve</command> as a service.  Look on Subversion's
       website for a list of these tools.</para>
+      @ENGLISH }}} -->
+      <para>На Windows системах, существуют средства от сторонних
+        производителей, которые запускают <command>svnserve</command>
+        как сервис. Список этих инструментов можно посмотреть на веб-сайте
+        Subversion. </para>
 
+      <!-- @ENGLISH {{{
       <para>A second option is to run <command>svnserve</command> as a
         standalone <quote>daemon</quote> process.  Use the
         <option>-d</option> option for this:</para>
- at ENGLISH }}} -->
-      <para> Убедитесь, что <quote>svnowner</quote> это пользователь, который 
-        имеет достаточно прав на доступ к 
-        хранилищу. Теперь, когда от клиента к серверу на порт 3690 приходит запрос 
-        на соединение, <command>inetd</command>
-        запустит процесс <command>svnserve</command> для обслуживания этого запроса.      
-      </para>
-
-      <para>На Windows системах, существуют средства от сторонних производителей, 
-         которые запускают <command>svnserve</command> как сервис. Список этих 
-         инструментов Вы можете посмотреть на Веб-сайте Subversion. </para>
-
-      <para> Второй параметр запускает <command>svnserve</command> как 
-         автономный процесс-демон. Используйте для этого опцию 
-         <option>-d</option>:</para>
+      @ENGLISH }}} -->
+      <para>Второй параметр запускает <command>svnserve</command> как
+        автономный процесс&mdash;<quote>демон</quote>. Для этого используется
+        параметр <option>-d</option>:</para>
 
         <screen>
 $ svnserve -d
 $               # svnserve is now running, listening on port 3690
 </screen>
 
-<!-- @ENGLISH {{{
+      <!-- @ENGLISH {{{
       <para>When running <command>svnserve</command> in daemon mode,
-        you can use the <option>--><!--listen-port=</option> and
-        <option>--><!--listen-host=</option> options to customize the exact
+        you can use the <option>-&#64738;-listen-port=</option> and
+        <option>-&#64738;-listen-host=</option> options to customize the exact
         port and hostname to <quote>bind</quote> to.</para>
- at ENGLISH }}} -->
-      <para> Когда <command>svnserve</command> запускается в режиме демона, то
-        Вы можете использовать опции <option>--listen-port=</option> и
-        <option>--listen-host=</option>, чтобы назначить нужное значение порта и 
-        имени хоста, 
-        к которому <quote>привязан</quote> <command>svnserve</command>.</para>
+      @ENGLISH }}} -->
+      <para>Если <command>svnserve</command> запускается в режиме демона,
+        можно использовать опции <option>--listen-port=</option> и
+        <option>--listen-host=</option>, чтобы назначить нужное значение порта
+        и имени хоста, к которому <quote>привязан</quote>
+        <command>svnserve</command>.</para>
 
-<!-- @ENGLISH {{{
+      <!-- @ENGLISH {{{
       <para>There's still a third way to invoke
         <command>svnserve</command>, and that's in <quote>tunnel
         mode</quote>, with the <option>-t</option> option.  This mode
@@ -861,29 +871,32 @@
         linkend="svn.serverconfig.svnserve.invoking.sb-1"/>.)  It's essentially the same as
         a local user accessing the repository via
         <literal>file:///</literal> URLs.</para>
- at ENGLISH }}} -->
-      <para> Есть также третий способ запускать <command>svnserve</command> в
-        так называемом <quote>туннельном режиме</quote>, с параметром
-        <option>-t</option>. Этот режим допускает, что программы удаленного
-        доступа такие как <command>RSH</command> и <command>SSH</command>
-        успешно авторизируют пользователя и тогда от имени этого 
-        пользователя
-        запускают частный процесс <command>svnserve</command> <emphasis>как
-        пользователь</emphasis>. Программа <command>svnserve</command>
-        работает в обычном режиме (ведется передача через stdin и stdout) и
-        допускает, что трафик автоматически перенаправляется по некоторому
-        тунелю к клиенту. Когда <command>svnserve</command> запущен
-        "туннельным" агентом подобно тому как было описано выше, убедитесь,
-        что авторизующийся пользователь имеет полный доступ на чтение и запись
-        к файлам базы данных хранилища (см. 
-        <xref linkend="svn.serverconfig.svnserve.invoking.sb-1"/>). По
-        существу, это точно также как и при локальном доступе пользователя через 
-        URL, начинающийся с <literal>file:///</literal>. </para>
+      @ENGLISH }}} -->
+      <para>Существует еще один, третий способ запуска
+        <command>svnserve</command>, с параметром <option>-t</option> &mdash;
+        это так называемый <quote>туннельный режим</quote>. Этот режим
+      	предполагает, что программы удаленного доступа такие как
+      	<command>RSH</command> или <command>SSH</command> уже успешно
+      	аутентифицировали пользователя и запускают частный процесс
+      	<command>svnserve</command> от имени <emphasis>этого
+       	пользователя</emphasis>. Программа <command>svnserve</command>
+      	работает в обычном режиме (работая через <emphasis>stdin</emphasis>
+      	и <emphasis>stdout</emphasis>) и предполагает, что трафик автоматически
+      	перенаправится по некоторому тунелю к клиенту. Когда
+      	<command>svnserve</command> запущен подобным туннельным агентом
+      	убедитесь в том что аутентифицированый пользователь имеет полный
+       	доступ на чтение и запись к файлам базы данных хранилища (см.
+        <xref linkend="svn.serverconfig.svnserve.invoking.sb-1"/>).
+        По сути, это соответствует обращению к хранилищу локального
+        пользователя через URL вида <literal>file:///</literal>.</para>
 
       <sidebar id="svn.serverconfig.svnserve.invoking.sb-1">
-<!-- @ENGLISH {{{
+        <!-- @ENGLISH {{{
         <title>Servers and Permissions:  A Word of Warning</title>
+        @ENGLISH }}} -->
+        <title>Серверы и права: Предупреждение</title>
 
+        <!-- @ENGLISH {{{
         <para>First, remember that a Subversion repository is a
           collection of database files; any process which accesses the
           repository directly needs to have proper read and write
@@ -891,19 +904,16 @@
           careful, this can lead to a number of headaches, especially
           if you're using a Berkeley DB database rather than FSFS.  Be
           sure to read <xref linkend="svn.serverconfig.multimethod"/>.</para>
- at ENGLISH }}} -->
-        <title>Серверы и права: Предупреждение</title>
+        @ENGLISH }}} -->
+        <para>Во-первых, запомните, что хранилище Subversion &mdash;
+    	    это набор файлов базы данных; любой процесс, обращающийся напрямую
+      	  хранилищу должен иметь соответствующие разрешения
+      	  на чтение и запись для всего хранилища. Если не быть внимательным,
+      	  в последствии это может привести к ряду проблем, особенно если
+      	  вместо FSFS используется базу данных Berkeley DB. Обратите внимание
+      	  на <xref linkend="svn.serverconfig.multimethod"/>.</para>
 
-        <para>Во-первых, запомните, что хранилище Subversion - по сути
-          несколько файлов базы данных; любой процесс, который имеет
-          прямой доступ к хранилищу, должен иметь соответствующие права
-          на чтение и запись ко всему хранилищу. Если Вы не будете
-          осторожны, то это в будущем может привести к головной боли,
-          особенно если вы используете базу данных Berkeley DB по
-          сравнению с FSFS. Не забудьте прочитать <xref 
-          linkend="svn.serverconfig.multimethod"/>.</para>
-  
-<!-- @ENGLISH {{{
+        <!-- @ENGLISH {{{
         <para>Secondly, when configuring <command>svnserve</command>,
           Apache <command>httpd</command>, or any other server
           process, keep in mind that you might not want to launch the
@@ -916,23 +926,23 @@
           <literal>svn</literal>, grant that user exclusive ownership
           and rights to the exported Subversion repositories, and only
           run their server processes as that user.</para>
- at ENGLISH }}} -->
-        <para> Во-вторых, когда настраиваете <command>svnserve</command>,
-          Apache <command>httpd</command> или любой другой серверный
-          процесс, имейте в виду, что нет необходимости запускать
-          серверный процесс от имени пользователя <literal>root</literal>
-          (или любого другого пользователя с неограниченными правами). В
-          зависимости от владельцев и разрешений на экспортируемые
-          хранилища, часто предусмотрительнее использовать
-          &mdash;другого&mdash; пользователя. На пример, многие администраторы
-          создают нового пользователя <literal>svn</literal>, предоставляют
-          исключительное владение и права на экспортируемые хранилища
-          Subversion, и запускают серверные процессы только от имени этого
-          пользователя.</para>
-        </sidebar>
+        @ENGLISH }}} -->
+       <para>Во-вторых, при настройке <command>svnserve</command>,
+         Apache <command>httpd</command> или любого другого сервера
+         помните о том, что не нужно запускать сервер от имени
+         пользователя <literal>root</literal> (или любого другого
+         пользователя с неограниченными правами). В зависимости от
+         настроек владения и разрешений на хранилища, как правило,
+         благоразумнее использовать другую &mdash; возможно, специально
+         для этого созданную &mdash; учетную запись. Например, многие
+         администраторы создают учетную запись с именем <literal>svn</literal>,
+         предоставляют этому пользователю эксклюзивные права владения на
+         хранилища Subversion и запускают серверные процессы только от
+         имени этого пользователя.</para>
+      </sidebar>
 
 
-<!-- @ENGLISH {{{
+      <!-- @ENGLISH {{{
       <para>Once the <command>svnserve</command> program is running,
         it makes every repository on your system available to the
         network.  A client needs to specify an
@@ -944,35 +954,36 @@
         To increase security, you can pass the <option>-r</option>
         option to <command>svnserve</command>, which restricts it to
         exporting only repositories below that path:</para>
- at ENGLISH }}} -->
-      <para> Как только <command>svnserve</command> запущена каждое хранилище
-        на Вашей системе доступно по сети. Клиенту необходимо указать
+      @ENGLISH }}} -->
+      <para>После запуска <command>svnserve</command> все хранилища
+        на вашей системе будут доступны через сеть. Клиент должен указывать
         <emphasis>абсолютный</emphasis> путь в URL хранилища. Например, если
         хранилище расположено в
-        <filename>/usr/local/repositories/project1</filename>, тогда клиент
-        должен получит доступ к нему через
-        <uri>svn://host.example.com/usr/local/repositories/project1</uri>. Чтобы
-        увеличить безопасность, Вы можете указать у <command>svnserve</command>
-        опцию -r, которая разрешает экспортировать хранилища расположенные
-        только ниже указанного пути: </para>
+        <filename>/usr/local/repositories/project1</filename>, обращаться к
+        нему клиент сможет по адресу
+        <uri>svn://host.example.com/usr/local/repositories/project1</uri>.
+        Чтобы увеличить безопасность, можно передать 
+        <command>svnserve</command> параметр <option>-r</option>, который
+        разрешит обращаться только к тем хранилищам, которые расположены ниже
+        указанного пути:</para>
 
       <screen>
 $ svnserve -d -r /usr/local/repositories
 &hellip;
 </screen>
 
-<!-- @ENGLISH {{{
+      <!-- @ENGLISH {{{
       <para>Using the <option>-r</option> option effectively
         modifies the location that the program treats as the root of
         the remote filesystem space.  Clients then use URLs that
         have that path portion removed from them, leaving much
         shorter (and much less revealing) URLs:</para>
- at ENGLISH }}} -->
-      <para> Использование параметра -r эффективно изменяет расположение, 
-        которое программа рассматривает как корень раздела удаленной 
-        файловой системы. Тогда клиенты используют URL, из которых удален этот 
-        путь, в итоге получается URL значительно короче (и более 
-        наглядным):</para>
+      @ENGLISH }}} -->
+      <para>Применение параметра <option>-r</option> эффективно изменяет
+        местоположение рассматриваемое программой как корень файловой
+        системы. Клиенты используют URL, из которого удален этот
+        путь, в результате чего URL получается более коротким
+        (и менее разоблачительным):</para>
 
       <screen>
 $ svn checkout svn://host.example.com/project1
@@ -983,70 +994,71 @@
 
     <!-- =============================================================== -->
     <sect2 id="svn.serverconfig.svnserve.auth">
-<!-- @ENGLISH {{{
+      <!-- @ENGLISH {{{
       <title>Built-in authentication and authorization</title>
+      @ENGLISH }}} -->
+      <title>Встроенная аутентификация и авторизация</title>
 
+      <!-- @ENGLISH {{{
       <para>When a client connects to an <command>svnserve</command>
         process, the following things happen:</para>
- at ENGLISH }}} -->
-      <title>Встроенная идентификация и авторизация</title>
-
-      <para>Когда клиент соединяется с процессом <command>svnserve</command>,
-        то происходит следующее:</para>
+      @ENGLISH }}} -->
+      <para>Когда клиент подключается к <command>svnserve</command>,
+        происходит следующее:</para>
 
       <itemizedlist>
-<!-- @ENGLISH {{{
+        <!-- @ENGLISH {{{
         <listitem><para>The client selects a specific
         repository.</para></listitem>
+        @ENGLISH }}} -->
+        <listitem><para>Клиент указывает требуемое
+        хранилище.</para></listitem>
 
+        <!-- @ENGLISH {{{
         <listitem><para>The server processes the repository's
         <filename>conf/svnserve.conf</filename> file, and begins to
         enforce any authentication and authorization policies defined
         therein.</para></listitem>
+        @ENGLISH }}} -->
+        <listitem><para>Сервер обрабатывает файл
+        <filename>conf/svnserve.conf</filename> хранилища, и начинает выполнять
+        правила аутентификации и авторизации, указанные в нем.</para></listitem>
 
+        <!-- @ENGLISH {{{
         <listitem><para>Depending on the situation and authorization
         policies,</para>
+        @ENGLISH }}} -->
+        <listitem><para>В зависимости от ситуации и правил авторизации,</para>
 
           <itemizedlist>
+            <!-- @ENGLISH {{{
             <listitem><para>the client may be allowed to make requests
               anonymously, without ever receiving an authentication
               challenge, OR</para></listitem>
+            @ENGLISH }}} -->
+             <listitem><para>клиенту может быть разрешено делать анонимные
+               обращения, без запроса на идентификацию, ИЛИ</para></listitem>
 
+            <!-- @ENGLISH {{{
             <listitem><para>the client may be challenged for
               authentication at any time, OR</para></listitem>
+            @ENGLISH }}} -->
+            <listitem><para>клиент может быть сделан запрос на идентификацию
+               в любой момент, ИЛИ</para></listitem>
 
+            <!-- @ENGLISH {{{
             <listitem><para>if operating in <quote>tunnel
               mode</quote>, the client will declare itself to be
               already externally authenticated.</para></listitem>
+            @ENGLISH }}} -->
+            <listitem><para>при работе в <quote>туннельном режиме</quote>,
+               клиент объявит себя уже идентифицированным.</para></listitem>
           </itemizedlist>
         </listitem>
- at ENGLISH }}} -->
-        <listitem><para>Клиент указывает
-        конкретное хранилище.</para></listitem>
-
-        <listitem><para>Сервер обрабатывает файл <filename>conf/svnserve.conf</filename>,
-        и начинает осуществлять правила идентификации и авторизации, указанные там.
-        </para></listitem>
-
-        <listitem><para>В зависимости от ситуации и правил
-        авторизации,</para>
-
-          <itemizedlist>
-             <listitem><para>клиенту может быть разрешено делать анонимные
-                запросы, без получения вызова на идентификацию, ИЛИ </para>
-             </listitem>
-
-             <listitem><para>клиент может быть вызван на идентификацию
-                в любой момент, ИЛИ </para></listitem>
-
-           <listitem><para>при обслуживании в <quote>туннельном режиме</quote>,
-                клиент сам объявит, что уже был идентифицирован.</para></listitem>
-           </itemizedlist>
-        </listitem>
 
       </itemizedlist>
 
-<!-- @ENGLISH {{{
+      <!-- @ENGLISH {{{
       <para>At the time of writing, the server only knows how to send
         a CRAM-MD5 <footnote><para>See RFC 2195.</para></footnote>
         authentication challenge.  In essence, the server sends a
@@ -1057,32 +1069,34 @@
         password to verify that the result is identical.  <emphasis>At
         no point does the actual password travel over the
         network.</emphasis></para>
- at ENGLISH }}} -->
+      @ENGLISH }}} -->
      <para>Во время написания данного материала сервер знал только об вызове
-        авторизации через CRAM-MD5 <footnote><para>Смотри RFC 2195.</para></footnote>. В 
-        сущности, сервер отправляет некоторые данные клиенту. Клиент, используя хэш 
-        алгоритма MD5,         создает отпечаток (fingerprint) из совмещенных вместе этих данных и своего пароля, 
-        после         чего отправляет этот отпечаток серверу как ответ. Сервер производит подобные 
-        вычисления со своей версией пользовательского пароля и проверяет идентичность 
-        результатов. <emphasis>Таким образом пароль никогда не передается в открытую по 
-        сети.</emphasis></para>     
+       авторизации через CRAM-MD5 <footnote><para>Смотри
+        RFC 2195.</para></footnote>. В сущности, сервер отправляет некоторые
+        данные клиенту. Клиент, используя хэш алгоритма MD5, создает отпечаток
+        (fingerprint) из совмещенных вместе этих данных и своего пароля,
+        после чего отправляет этот отпечаток серверу как ответ.
+        Сервер производит подобные вычисления со своей версией
+        пользовательского пароля и проверяет идентичность результатов.
+        <emphasis>Таким образом пароль никогда не передается в открытую по
+        сети.</emphasis></para>
 
-<!-- @ENGLISH {{{
+      <!-- @ENGLISH {{{
       <para>It's also possible, of course, for the client to be
         externally authenticated via a tunnel agent, such as
         <command>SSH</command>.  In that case, the server simply
         examines the user it's running as, and uses it as the
         authenticated username.  For more on this, see <xref
         linkend="svn.serverconfig.svnserve.sshauth"/>.</para>
- at ENGLISH }}} -->
+      @ENGLISH }}} -->
       <para> Также возможно, что клиент уже был идентифицирован через внешнего
         туннельного агента, такого как <command>SSH</command>. В таком
         случае, сервер просто проверяет запустившего его пользователя и
         в дальнейшем использует идентифицированное имя пользователя.
-        Более подробно об этом смотри в <xref 
+        Более подробно об этом смотри в <xref
         linkend="svn.serverconfig.svnserve.sshauth"/>.</para>
 
-<!-- @ENGLISH {{{
+      <!-- @ENGLISH {{{
       <para>As you've already guessed, a repository's
         <filename>svnserve.conf</filename> file is the central
         mechanism for controlling authentication and authorization
@@ -1094,26 +1108,31 @@
         specific variables that can be set (<literal>variable =
         value</literal>).  Let's walk through this file and learn how
         to use them.</para>
- at ENGLISH }}} -->
-      <para>Как Вы уже догадались, файл хранилища <filename>svnserve.conf</filename> 
-         - центральный механизм контроля правил идентификации и авторизации. Этот файл имеет такой же 
-         формат, как и другие конфигурационные файлы (см.  <xref linkend="svn.advanced.confarea"/>): имена 
-         секций помечены квадратными скобками ((<literal>[</literal> и <literal>]</literal>), 
-         комментарии начинаются с <literal>#</literal>, а каждая секция содержит определенные переменные, 
-         которые могут быть использованы для конфигурирования (<literal>переменная = значение</literal>). Давайте 
-         посмотрим на этот файл и изучим как им пользоваться. </para>
+      @ENGLISH }}} -->
+      <para>Как Вы уже догадались, файл хранилища
+        <filename>svnserve.conf</filename> &mdash; центральный механизм
+        контроля правил идентификации и авторизации. Этот файл имеет такой же
+        формат, как и другие конфигурационные файлы
+        (см. <xref linkend="svn.advanced.confarea"/>): имена секций помечены
+        квадратными скобками ((<literal>[</literal> и <literal>]</literal>),
+        комментарии начинаются с <literal>#</literal>, а каждая секция содержит
+        определенные переменные, которые могут быть использованы для
+        конфигурирования (<literal>переменная = значение</literal>). Давайте
+        посмотрим на этот файл и изучим как им пользоваться.</para>
 
       <sect3 id="svn.serverconfig.svnserve.auth.users">
-<!-- @ENGLISH {{{
+        <!-- @ENGLISH {{{
         <title>Create a 'users' file and realm</title>
+        @ENGLISH }}} -->
+        <title>Создание файла пользователей и область хранилища </title>
 
+        <!-- @ENGLISH {{{
         <para>For now, the <literal>[general]</literal> section of the
           <filename>svnserve.conf</filename> has all the variables you
           need.  Begin by defining a file which contains usernames and
           passwords, and an authentication realm:</para>
- at ENGLISH }}} -->
-       <title>Создание файла пользователей и область хранилища </title>
-       <para>Сейчас, секция <literal>[general]</literal>
+        @ENGLISH }}} -->
+        <para>Сейчас, секция <literal>[general]</literal>
           в<filename>svnserve.conf</filename> имеет все необходимые Вам
           переменные. Начнем с определения файла, содержащего имена
           пользователей и пароли, а также с области хранилища: </para>
@@ -1124,7 +1143,7 @@
 realm = example realm
 </screen>
 
-<!-- @ENGLISH {{{
+        <!-- @ENGLISH {{{
         <para>The <literal>realm</literal> is a name that you define.
           It tells clients which sort of <quote>authentication
           namespace</quote> they're connecting to; the Subversion
@@ -1135,17 +1154,16 @@
           <literal>password-db</literal> variable points to a separate
           file that contains a list of usernames and passwords, using
           the same familiar format.  For example:</para>
- at ENGLISH }}} -->
-        <para><literal>realm</literal> - это определяемое Вами имя. Она сообщает 
-          клиентам, к какой <quote>области 
-          идентификации</quote> они подсоединяются; клиенту Subversion она выводится 
-          в приглашении к аутентификации, 
-          и используется как ключ (вместе с именем сервера и портом) для кэширования 
-          клиентской идентификационной 
-          информации на диск (см. <xref linkend="svn.serverconfig.netmodel.credcache"/>). 
-          Переменная <literal>password-db</literal> указывает на отдельный файл, 
-          который содержит список пользователей и пароли в таком же простом формате. 
-          Например: </para>
+        @ENGLISH }}} -->
+        <para><literal>realm</literal> &mdash; это определяемое Вами имя.
+          Оно сообщает клиентам, к какой <quote>области идентификации</quote>
+          они подсоединяются; клиенту Subversion она выводится в приглашении к
+          аутентификации, и используется как ключ (вместе с именем сервера и
+          портом) для кэширования клиентской идентификационной информации
+          на диск (см. <xref linkend="svn.serverconfig.netmodel.credcache"/>).
+          Переменная <literal>password-db</literal> указывает на отдельный
+          файл, который содержит список пользователей и пароли в таком же
+          простом формате. Например:</para>
 
         <screen>
 [users]
@@ -1153,7 +1171,7 @@
 sally = barpassword
 </screen>
 
-<!-- @ENGLISH {{{
+        <!-- @ENGLISH {{{
         <para>The value of <literal>password-db</literal> can be an
           absolute or relative path to the users file.  For many
           admins, it's easy to keep the file right in the
@@ -1168,31 +1186,31 @@
           set the file's read and write permissions appropriately.  If
           you know which user(s) <command>svnserve</command> will run
           as, restrict read access to the user file as necessary.</para>
- at ENGLISH }}} -->
-        <para>Значение <literal>password-db</literal> может быть абсолютным или 
-          относительным путем к файлу пользователей. Для большинства 
-          администраторов, его легче держать в <filename>conf/</filename> области 
-          хранилища, рядом с <filename>svnserve.conf</filename>. С другой 
-          стороны, возможно, Вы захотите использовать
-          (разделять) один и тот же файл пользователей для двух или более 
-          хранилищ, в этом случае этот файл стоит 
-          поместить в более доступное место. Хранилища разделяющие файл 
-          пользователей, должны быть также
-          сконфигурированы с одинаковыми областями, так как список пользователей 
-          по существу определяет область 
-          аутентификации. Где бы в итоге файл не находился, убедитесь, что у него 
-          выставлены соответствующие 
-          права на чтение/запись. Если Вы знаете от имени какого 
-          пользователя(-ей) будет запускаться 
+        @ENGLISH }}} -->
+        <para>Значение <literal>password-db</literal> может быть абсолютным или
+          относительным путем к файлу пользователей. Для большинства
+          администраторов, его легче держать в <filename>conf/</filename>
+          области хранилища, рядом с <filename>svnserve.conf</filename>.
+          С другой стороны, возможно, Вы захотите разделять один и тот же файл
+          пользователей для двух или более хранилищ, в этом случае этот файл
+          стоит поместить в более доступное место. Хранилища разделяющие файл
+          пользователей, должны быть также сконфигурированы с одинаковыми
+          областями, так как список пользователей по существу определяет
+          область аутентификации. Где бы в итоге файл не находился, убедитесь,
+          что у него выставлены соответствующие права на чтение/запись. Если Вы
+          знаете от имени какого пользователя(-ей) будет запускаться
           <command>svnserve</command>, то ограничьте доступ на чтение только
           тем пользователем, которым это нужно.</para>
 
       </sect3>
 
       <sect3 id="svn.serverconfig.svnserve.auth.general">
-<!-- @ENGLISH {{{
+        <!-- @ENGLISH {{{
         <title>Set access controls</title>
+        @ENGLISH }}} -->
+       <title>Установка контроля доступа</title>
 
+        <!-- @ENGLISH {{{
         <para>There are two more variables to set in the
           <filename>svnserve.conf</filename> file: they determine what
           unauthenticated (anonymous) and authenticated users are
@@ -1204,21 +1222,18 @@
           <literal>read</literal> allows read-only access to the
           repository, and <literal>write</literal> allows complete
           read/write access to the repository.  For example:</para>
- at ENGLISH }}} -->
-      <title>Установка контроля доступа</title>      
-
-        <para>Есть еще две дополнительных переменные в 
+        @ENGLISH }}} -->
+        <para>Есть еще две дополнительных переменные в
           <filename>svnserve.conf</filename>: они определяют,
-          что будут допущены делать не идентифицированные (анонимные) и 
-          идентифицированные пользователи. Переменные 
-          <literal>anon-access</literal> и <literal>auth-access</literal> 
-          могут иметь значения:
-          <literal>none</literal>, <literal>read</literal>, или 
-          <literal>write</literal>. Установка значения в 
-          <literal>none</literal> запрещает доступ любого рода;
-          <literal>read</literal> - доступ к хранилищу только на чтение, 
-          а <literal>write</literal> -
-          позволяет полный доступ к хранилищу на чтение/запись. Например:</para>
+          что будут допущены делать не идентифицированные (анонимные) и
+          идентифицированные пользователи. Переменные
+          <literal>anon-access</literal> и <literal>auth-access</literal>
+          могут иметь значения: <literal>none</literal>,
+          <literal>read</literal>, или <literal>write</literal>.
+          Установка значения в <literal>none</literal> запрещает доступ любого
+          рода; <literal>read</literal> &mdash; доступ к хранилищу только на
+          чтение, а <literal>write</literal> &mdash; позволяет полный доступ
+          к хранилищу на чтение/запись. Например:</para>
 
         <screen>
 [general]
@@ -1232,16 +1247,16 @@
 auth-access = write
 </screen>
 
-<!-- @ENGLISH {{{
+        <!-- @ENGLISH {{{
         <para>The example settings are, in fact, the default values of
           the variables, should you forget to define them.  If you
           want to be even more conservative, you can block anonymous
           access completely:</para>
- at ENGLISH }}} -->
-        <para>Значения установленные в примере - фактически значения 
-          по умолчанию, они будут установлены если 
-          Вы не захотите определить их. Если Вы хотите быть более консервативным, 
-          то можете заблокировать полностью анонимный доступ:</para>
+        @ENGLISH }}} -->
+        <para>Значения установленные в примере &mdash; фактически значения
+          по умолчанию, они будут установлены если Вы не захотите определить
+          их. Если Вы хотите быть более консервативным, то можете заблокировать
+          полностью анонимный доступ:</para>
 
         <screen>
 [general]
@@ -1255,7 +1270,7 @@
 auth-access = write
 </screen>
 
-<!-- @ENGLISH {{{
+        <!-- @ENGLISH {{{
         <para>Notice that <command>svnserve</command> only understands
           <quote>blanket</quote> access control.  A user either has
           universal read/write access, universal read access, or no
@@ -1272,34 +1287,36 @@
           <command>commit-access-control.pl</command> and the more
           sophisticated <command>svnperms.py</command> scripts for use
           in pre-commit scripts.</para>
- at ENGLISH }}} -->
-        <para>Обратите внимание, что <command>svnserve</command> понимает только 
-          общие правила управления доступом. То есть пользователь может иметь либо 
-          универсальный доступ на чтение/запись, либо универсальный доступ на чтение, 
-          либо не иметь никакого доступа. И         нет более детального контроля 
-          доступа к определенным путям хранилища. Дял многих проектов этот уровень 
-          контроля является более чем
-          приемлемым. Однако если Вам потребуется выставить доступ к каждому 
-          каталогу, тогда Вам необходимо использовать 
-          Apache с <command>mod_authz_svn</command> (см. <xref 
-          linkend="svn.serverconfig.httpd.authz.perdir"/>) 
-          или использовать <command>pre-commit</command> хук скрипт (hook
-          script) для управления доступом на запись (см. <xref 
-          linkend="svn.reposadmin.create.hooks"/>).
-          в место <command>svnserve</command>, в качестве серверного процесса. 
-          Subversion распространяется  со скриптами 
-          <command>commit-access-control.pl</command> и более сложным 
+        @ENGLISH }}} -->
+        <para>Обратите внимание, что <command>svnserve</command> понимает
+          только общие правила управления доступом. То есть пользователь может
+          иметь либо универсальный доступ на чтение/запись, либо универсальный
+          доступ на чтение, либо не иметь никакого доступа. И нет более
+          детального контроля доступа к определенным путям хранилища. Для
+          многих проектов этот уровень контроля является более чем
+          приемлемым. Однако если Вам потребуется выставить доступ к каждому
+          каталогу, тогда Вам необходимо использовать Apache с
+          <command>mod_authz_svn</command> (см. <xref
+          linkend="svn.serverconfig.httpd.authz.perdir"/>) или использовать
+          <command>pre-commit</command> хук скрипт для управления доступом на
+          запись (см. <xref linkend="svn.reposadmin.create.hooks"/>).
+          в место <command>svnserve</command>, в качестве серверного процесса.
+          Subversion распространяется  со скриптами
+          <command>commit-access-control.pl</command> и более сложным
           <command>svnperms.py</command> которые могут быть использованы в
-          предфиксирующими скриптах.</para>
+          предфиксирующих скриптах.</para>
 
       </sect3>
     </sect2>
 
     <!-- =============================================================== -->
     <sect2 id="svn.serverconfig.svnserve.sshauth">
-<!-- @ENGLISH {{{            
+      <!-- @ENGLISH {{{
       <title>SSH authentication and authorization</title>
+      @ENGLISH }}} -->
+      <title>SSH идентификация и авторизация</title>
 
+      <!-- @ENGLISH {{{
       <para><command>svnserve</command>'s built-in authentication can
         be very handy, because it avoids the need to create real
         system accounts.  On the other hand, some administrators
@@ -1307,23 +1324,23 @@
         place.  In these situations, all of the project's users
         already have system accounts and the ability to <quote>SSH
         into</quote> the server machine.</para>
-
-      <para>It's easy to use SSH in conjunction with
-        <command>svnserve</command>.  The client simply uses the
-        <literal>svn+ssh://</literal> URL schema to connect:</para>
- at ENGLISH }}} -->
-      <title>SSH идентификация и авторизация</title>
-
+      @ENGLISH }}} -->
       <para>Встроенная в <command>svnserve</command> идентификация может
         быть более удобной, так как избегает необходимости создавать
         реальные системные учетные записи. Другими словами, некоторые
         администраторы уже имеют хорошо настроенные SSH оболочки в своих
         системах. В этой ситуации все пользователи проектов уже имеют
-        системные учетные записи и способность к <quote>SSH into</quote>
-        на сервер&