[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>-ﳢ-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>-ﳢ-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> как
+        автономный процесс—<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>-ﳢ-listen-port=</option> and
+        <option>-ﳢ-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> —
+        это так называемый <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 —
+    	    это набор файлов базы данных; любой процесс, обращающийся напрямую
+      	  хранилищу должен иметь соответствующие разрешения
+      	  на чтение и запись для всего хранилища. Если не быть внимательным,
+      	  в последствии это может привести к ряду проблем, особенно если
+      	  вместо 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>
-          (или любого другого пользователя с неограниченными правами). В
-          зависимости от владельцев и разрешений на экспортируемые
-          хранилища, часто предусмотрительнее использовать
-          —другого— пользователя. На пример, многие администраторы
-          создают нового пользователя <literal>svn</literal>, предоставляют
-          исключительное владение и права на экспортируемые хранилища
-          Subversion, и запускают серверные процессы только от имени этого
-          пользователя.</para>
-        </sidebar>
+        @ENGLISH }}} -->
+       <para>Во-вторых, при настройке <command>svnserve</command>,
+         Apache <command>httpd</command> или любого другого сервера
+         помните о том, что не нужно запускать сервер от имени
+         пользователя <literal>root</literal> (или любого другого
+         пользователя с неограниченными правами). В зависимости от
+         настроек владения и разрешений на хранилища, как правило,
+         благоразумнее использовать другую — возможно, специально
+         для этого созданную — учетную запись. Например, многие
+         администраторы создают учетную запись с именем <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
 …
 </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> — центральный механизм
+        контроля правил идентификации и авторизации. Этот файл имеет такой же
+        формат, как и другие конфигурационные файлы
+        (см. <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> — это определяемое Вами имя.
+          Оно сообщает клиентам, к какой <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> — доступ к хранилищу только на
+          чтение, а <literal>write</literal> — позволяет полный доступ
+          к хранилищу на чтение/запись. Например:</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>Значения установленные в примере — фактически значения
+          по умолчанию, они будут установлены если Вы не захотите определить
+          их. Если Вы хотите быть более консервативным, то можете заблокировать
+          полностью анонимный доступ:</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>
-        на серверную машину.</para>
+        системные учетные записи и способность к <quote>SSH
+        into</quote> на серверную машину. </para>
 
+      <!-- @ENGLISH {{{
+      <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>
+      @ENGLISH }}} -->
       <para>Проще всего использовать SSH в связке с <command>svnserve</command>.
-        Клиенты просто используют для коннекта схему <literal>svn+ssh://</literal>:</para>
+        Клиенты просто используют для коннекта схему
+        <literal>svn+ssh://</literal>:</para>
 
       <screen>
 $ whoami
@@ -1338,7 +1355,7 @@
 …
 </screen>
 
-<!-- @ENGLISH {{{      
+      <!-- @ENGLISH {{{
       <para>In this example, the Subversion client is invoking a local
         <command>ssh</command> process, connecting to
         <literal>host.example.com</literal>, authenticating as the
@@ -1353,23 +1370,22 @@
         user <literal>harry</literal>, and if the client performs a
         commit, the authenticated username will be attributed as the
         author of the new revision.</para>
- at ENGLISH }}} -->
-      <para>В этом примере клиент Subversion вовлекает локальный процесс 
-        <command>ssh</command>, соединяется с 
-        <literal>host.example.com</literal>, идентифицируется как пользователь 
-        <literal>harry</literal>, затем порождает личный процесс 
+      @ENGLISH }}} -->
+      <para>В этом примере клиент Subversion вовлекает локальный процесс
+        <command>ssh</command>, соединяется с
+        <literal>host.example.com</literal>, идентифицируется как пользователь
+        <literal>harry</literal>, затем порождает личный процесс
         <command>svnserve</command> на удаленной машине запускаемый от имени
         пользователя <literal>harry</literal>.  Команда
-        <command>svnserve</command> была вовлечена в режим тунелирования 
-        (<option>-t</option>) и ее
-        сетевой протокол был <quote>тунелирован</quote> через зашифрованное
-        соединение через тунельного-агента <command>ssh</command>.
-        <command>svnserve</command> знает что он запущен пользователем 
-        <literal>harry</literal>, и если клиент выполняет фиксацию,
-        идентификационное имя пользователя будет использовано как имя автора
-        новой ревизии.</para>
+        <command>svnserve</command> была вовлечена в режим тунелирования
+        (<option>-t</option>) и ее сетевой протокол был
+        <quote>тунелирован</quote> через зашифрованное соединение через
+        тунельного-агента <command>ssh</command>. <command>svnserve</command>
+        знает что он запущен пользователем <literal>harry</literal>,
+        и если клиент выполняет фиксацию, идентификационное имя пользователя
+        будет использовано как имя автора новой ревизии.</para>
 
-<!-- @ENGLISH {{{      
+      <!-- @ENGLISH {{{
       <para>The important thing to understand here is that the
         Subversion client is <emphasis>not</emphasis> connecting to a
         running <command>svnserve</command> daemon.  This method of
@@ -1378,16 +1394,16 @@
         <command>ssh</command> to spawn a temporary
         <command>svnserve</command> process, which then terminates
         when the network connection is closed.</para>
- at ENGLISH }}} -->
-      <para>Важная вещь для понимания здесь, это то что клиент 
+      @ENGLISH }}} -->
+      <para>Важная вещь для понимания здесь, это то что клиент
         Subversion <emphasis>не</emphasis> соединяется с запущенным демоном
-        <command>svnserve</command>.  Этот метод доступа не требует демона, ни
+        <command>svnserve</command>. Этот метод доступа не требует демона, ни
         делает уведомления даже если он присутствует. Он использует в целом
-        способность <command>ssh</command> запускать временный процесс 
+        способность <command>ssh</command> запускать временный процесс
         <command>svnserve</command>, которые завершается когда сетевое
         соединение закроется.</para>
 
-<!-- @ENGLISH {{{      
+      <!-- @ENGLISH {{{
       <para>When using <literal>svn+ssh://</literal> URLs to access a
         repository, remember that it's the <command>ssh</command>
         program prompting for authentication, and
@@ -1403,26 +1419,24 @@
         use a separate SSH password-caching tool like
         <command>ssh-agent</command> on a Unix-like system, or
         <command>pageant</command> on Windows.</para>
- at ENGLISH }}} -->
+      @ENGLISH }}} -->
       <para>Когда для доступа к хранилищу используется URL вида
-        <literal>svn+ssh://</literal>, помните что это программа <command>ssh</command>
-        запрашивает идентификацию, а <emphasis>не</emphasis> клиентская
-        программа <command>svn</command>.  Это означает что нет автоматического 
-        кеширования 
-        паролей (см. <xref linkend="svn.serverconfig.netmodel.credcache"/>). 
-        Клиенты 
-        Subversion часто делают несколько соединений к хранилищу, хотя
+        <literal>svn+ssh://</literal>, помните что это программа
+        <command>ssh</command> запрашивает идентификацию,
+        а <emphasis>не</emphasis> клиентская программа <command>svn</command>.
+        Это означает что нет автоматического кеширования паролей
+        (см. <xref linkend="svn.serverconfig.netmodel.credcache"/>).
+        Клиенты Subversion часто делают несколько соединений к хранилищу, хотя
         пользователи обычно не знают об этом из-за возможности кеширования
         паролей. Однако когда используют URL вида
-        <literal>svn+ssh://</literal> URLs, пользователи могут быть раздражены 
-        <command>ssh</command> 
-        из-за повторяющихся запросов пароля для каждого исходящего
-        соединения. Решение этой проблемы заключается в использовании
-        отдельного инструмента для кеширования паролей SSH, подобных 
-        <command>ssh-agent</command> на Unix-подобных системах, или
+        <literal>svn+ssh://</literal> URLs, пользователи могут быть раздражены
+        <command>ssh</command> из-за повторяющихся запросов пароля для каждого
+        исходящего соединения. Решение этой проблемы заключается в
+        использовании отдельного инструмента для кеширования паролей SSH,
+        подобных <command>ssh-agent</command> на Unix-подобных системах, или
         <command>pageant</command> в Windows.</para>
 
-<!-- @ENGLISH {{{      
+      <!-- @ENGLISH {{{
       <para>When running over a tunnel, authorization is primarily
         controlled by operating system permissions to the repository's
         database files; it's very much the same as if Harry were
@@ -1436,8 +1450,8 @@
         still be used to block access, by simply setting
         <literal>auth-access = read</literal> or <literal>auth-access
         = none</literal>.</para>
- at ENGLISH }}} -->
-      <para>Когда выполняется через тунелирование, идентификация первоначально 
+      @ENGLISH }}} -->
+      <para>Когда выполняется через тунелирование, идентификация первоначально
         управляется правами операционной системы на файлы базы данных
         хранилища; это очень похоже на то как если бы Harry получала доступ к
         хранилищу напрямую через URL <literal>file:///</literal>.  Если
@@ -1446,11 +1460,11 @@
         быть очень осторожным при разрешении (umasks). (Прочитайте <xref
         linkend="svn.serverconfig.multimethod"/>.)  Но в каждом случае
         тунелирования файл <filename>svnserve.conf</filename> может продолжать
-        использоваться для блокирования доступа, простой установкой 
+        использоваться для блокирования доступа, простой установкой
         <literal>auth-access = read</literal> или <literal>auth-access
         = none</literal>.</para>
 
-<!-- @ENGLISH {{{
+      <!-- @ENGLISH {{{
       <para>You'd think that the story of SSH tunneling would end
         here, but it doesn't.  Subversion allows you to create custom
         tunnel behaviors in your run-time <filename>config</filename>
@@ -1459,13 +1473,13 @@
         <literal>[tunnels]</literal> section of your
         <filename>config</filename> file, simply define it like
         this:</para>
- at ENGLISH }}} -->
-      <para>Вы не должны думать что рассказ о SSH тунелирование будет 
-        закончен здесь. Subversion позволяет вам создавать заказное 
+      @ENGLISH }}} -->
+      <para>Вы не должны думать что рассказ о SSH тунелирование будет
+        закончен здесь. Subversion позволяет вам создавать заказное
         поведение тунеля в файле <filename>config</filename>
-        (смотри <xref linkend="svn.advanced.confarea"/>).  Например, 
-        предположим что вы хотите использовать RSH вместо SSH. В разделе 
-        <literal>[tunnels]</literal> файла <literal>[tunnels]</literal> 
+        (смотри <xref linkend="svn.advanced.confarea"/>).  Например,
+        предположим что вы хотите использовать RSH вместо SSH. В разделе
+        <literal>[tunnels]</literal> файла <literal>[tunnels]</literal>
         просто укажите подобно этому:</para>
 
       <screen>
@@ -1473,7 +1487,7 @@
 rsh = rsh
 </screen>
 
-<!-- @ENGLISH {{{
+      <!-- @ENGLISH {{{
       <para>And now, you can use this new tunnel definition by using a
         URL schema that matches the name of your new variable:
         <literal>svn+rsh://host/path</literal>.  When using the new
@@ -1484,17 +1498,17 @@
         will also include that in its command (<command>rsh
         username at host svnserve -t</command>).  But you can define new
         tunneling schemes to be much more clever than that:</para>
- at ENGLISH }}} -->
-      <para>И сейчас вы можете использовать новое определение туннеля используя схему 
-        URL которая соответствует имени вашей новой переменной:  
-        <literal>svn+rsh://host/path</literal>. Затем используя новую схему URL, клиент 
-        Subversion будет выполнять команду <command>rsh host 
-        svnserve -t</command> 
+      @ENGLISH }}} -->
+      <para>И сейчас вы можете использовать новое определение туннеля
+        используя схему URL которая соответствует имени вашей новой переменной:
+        <literal>svn+rsh://host/path</literal>. Затем используя новую схему URL,
+        клиент Subversion будет выполнять команду <command>rsh host
+        svnserve -t</command>
         за кулисами. Если вы включите имя пользователя в URL (на пример,
-        <literal>svn+rsh://username@host/path</literal>) клиент также будет 
+        <literal>svn+rsh://username@host/path</literal>) клиент также будет
         включать его в эту команду (<command>rsh
-        username at host svnserve -t</command>). Но вы может определить новую 
-        схему 
+        username at host svnserve -t</command>). Но вы может определить новую
+        схему
         туннелирования которая будет более умная чем эта:</para>
 
       <screen>
@@ -1502,7 +1516,7 @@
 joessh = $JOESSH /opt/alternate/ssh -p 29934
 </screen>
 
-<!-- @ENGLISH {{{
+      <!-- @ENGLISH {{{
       <para>This example demonstrates a couple of things.  First, it
         shows how to make the Subversion client launch a very specific
         tunneling binary (the one located at
@@ -1512,19 +1526,17 @@
         particular SSH binary with <option>-p 29934</option> as
         arguments—useful if you want the tunnel program to
         connect to a non-standard port.</para>
- at ENGLISH }}} -->
-      <para>Этот пример демонстрирует связанные вещи. С начала он 
-       показывает как можно сделать чтобы клиент Subversion запускал очень 
-       специфическую
-       программу тунелирования (она расположена в 
-       <filename>/opt/alternate/ssh</filename>) 
-       с некоторым параметром. В данном случае, доступ к 
-       <literal>svn+joessh://</literal> будет
+      @ENGLISH }}} -->
+      <para>Этот пример демонстрирует связанные вещи. С начала он
+       показывает как можно сделать чтобы клиент Subversion запускал очень
+       специфическую программу тунелирования (она расположена в
+       <filename>/opt/alternate/ssh</filename>) с некоторым параметром.
+       В данном случае, доступ к <literal>svn+joessh://</literal> будет
        вовлекать особую программу SSH с аргументами <option>-p 29934</option>
-       — полезно если вы хотите соединить программу тунелирования на 
+       — полезно если вы хотите соединить программу тунелирования на
        нестандартный порт.</para>
 
-<!-- @ENGLISH {{{
+      <!-- @ENGLISH {{{
       <para>Second, it shows how to define a custom environment
         variable that can override the name of the tunneling program.
         Setting the <literal>SVN_SSH</literal> environment variable is
@@ -1538,27 +1550,30 @@
         variable—<command>$JOESSH</command> would be executed
         instead of <command>/opt/alternate/ssh -p
         29934</command>.</para>
- at ENGLISH }}} -->
+      @ENGLISH }}} -->
       <para>Затем он показывает как определить пользовательскую переменную
-        окружения, которая может перекрыть имя программы тунелирования. 
-        Установка переменной окружения <literal>SVN_SSH</literal> это 
+        окружения, которая может перекрыть имя программы тунелирования.
+        Установка переменной окружения <literal>SVN_SSH</literal> это
         удобный путь для перекрытия агента тунелирования SSH по умолчанию.
-        Но если вы нуждаетесь в нескольких различных перекрытиях, для разных 
-        серверов, каждый возможно взаимодействует с разными портами или 
-        передача различных наборов параметров в SSH, вы можете использовать 
-        механизм показанный в этом примере. 
-        Сейчас, если вы установите переменную окружения <literal>JOESSH</literal>, ее 
+        Но если вы нуждаетесь в нескольких различных перекрытиях, для разных
+        серверов, каждый возможно взаимодействует с разными портами или
+        передача различных наборов параметров в SSH, вы можете использовать
+        механизм показанный в этом примере.
+        Сейчас, если вы установите переменную окружения <literal>JOESSH</literal>, ее
         значение будет перекрывать содержимое переменной тунелирования
-        —<command>$JOESSH</command> будет выполняться вместо 
+        —<command>$JOESSH</command> будет выполняться вместо
         <command>/opt/alternate/ssh -p 29934</command>.</para>
 
     </sect2>
 
     <!-- =============================================================== -->
     <sect2 id="svn.serverconfig.svnserve.sshtricks">
-<!-- @ENGLISH {{{
+      <!-- @ENGLISH {{{
       <title>SSH configuration tricks</title>
+      @ENGLISH }}} -->
+      <title>Трюки конфигурирования SSH</title>
 
+      <!-- @ENGLISH {{{
       <para>It's not only possible to control the way in which the
         client invokes <command>ssh</command>, but also to control
         the behavior of <command>sshd</command> on your server
@@ -1566,20 +1581,22 @@
         exact <command>svnserve</command> command executed
         by <command>sshd</command>, as well as how to have multiple
         users share a single system account.</para>
- at ENGLISH }}} -->
-      <title>Трюки конфигурирования SSH</title>
-
-      <para>Возможно не только управлять как клиент выполняет <command>ssh</command>,
-        но также управлять поведением <command>sshd</command> на машине вашего сервера.
-        В этом разделе, мы покажем как управлять точным исполнением команды  
-        <command>svnserve</command>, так же хорошо как иметь несколько
-        совместных 
-        ресурсов (share) пользователей под одной учетной записью.</para>
+      @ENGLISH }}} -->
+      <para>Возможно не только управлять как клиент выполняет
+        <command>ssh</command>, но также управлять поведением
+        <command>sshd</command> на машине вашего сервера. В этом разделе,
+        мы покажем как управлять тем, какие именно команды
+        <command>svnserve</command> вызываются <command>sshd</command>,
+        а также о том, как несколько пользователей могут использовать
+        одну системную учетную запись.</para>
 
       <sect3 id="svn.serverconfig.svnserve.sshtricks.setup">
-<!-- @ENGLISH {{{
+        <!-- @ENGLISH {{{
         <title>Initial setup</title>
+        @ENGLISH }}} -->
+        <title>Начальная настройка</title>
 
+        <!-- @ENGLISH {{{
         <para>To begin, locate the home directory of the account
           you'll be using to launch <command>svnserve</command>.  Make
           sure the account has an SSH public/private keypair
@@ -1587,67 +1604,63 @@
           authentication.  Password authentication will not work,
           since all of the following SSH tricks revolve around using
           the SSH <filename>authorized_keys</filename> file.</para>
- at ENGLISH }}} -->
-        <title>Начальная настройка</title>
-
-        <para>Для начала, перейдите в домашнюю папку учетной записи которую вы 
-          используете
-          для запуска <command>svnserve</command>. Убедитесь что учетная запись 
-          имеет 
-          установленную пару ключей SSH (публичную/приватную), и что 
-          пользователь может 
-          зайти через идентификацию с использованием публичного ключа. Парольная 
-          идентификация
-          не работает, так как все следующие SSH трюки  вращаются вокруг 
-          использования файла SSH <filename>authorized_keys</filename>.</para>
+        @ENGLISH }}} -->
+        <para>Для начала, перейдите в домашнюю папку учетной записи которую вы
+          используете для запуска <command>svnserve</command>. Убедитесь что
+          учетная запись имеет установленную пару ключей SSH
+          (публичную/приватную), и что пользователь может зайти через
+          идентификацию с использованием публичного ключа. Парольная
+          идентификация не работает, так как все следующие SSH трюки вращаются
+          вокруг использования файла SSH <filename>authorized_keys</filename>.
+        </para>
 
-<!-- @ENGLISH {{{
+        <!-- @ENGLISH {{{
         <para>If it doesn't already exist, create the
           <filename>authorized_keys</filename> file (on Unix,
           typically <filename>~/.ssh/authorized_keys</filename>).
           Each line in this file describes a public key that is
           allowed to connect.  The lines are typically of the
           form:</para>
- at ENGLISH }}} -->
-        <para>Если он не существует, создайте файл <filename>authorized_keys</filename>
-          (на Unix, обычно <filename>~/.ssh/authorized_keys</filename>). Каждая 
-          строка этого
-          файла описывает публичный ключ, который разрешен для соединения. 
-          Строки обычно в следующей форме:</para>
+        @ENGLISH }}} -->
+        <para>Если он не существует, создайте файл
+          <filename>authorized_keys</filename> (на Unix, обычно
+          <filename>~/.ssh/authorized_keys</filename>). Каждая
+          строка этого файла описывает публичный ключ, который разрешен
+          для соединения. Строки обычно в следующей форме:</para>
 
         <screen>
   ssh-dsa AAAABtce9euch… user at example.com
 </screen>
 
-<!-- @ENGLISH {{{
+        <!-- @ENGLISH {{{
         <para>The first field describes the type of key, the second
           field is the uuencoded key itself, and the third field is a
           comment.  However, it's a lesser known fact that the entire
           line can be preceded by a <literal>command</literal>
           field:</para>
- at ENGLISH }}} -->
-        <para>Первое поле описывает тип ключа, второе поле uu-кодированный (uuencoded)
-          ключ и третье поле это комментарий. Однако, менее известный факт 
-          что всей строке
-          может предшествовать поле <literal>command</literal>:</para>
+        @ENGLISH }}} -->
+        <para>Первое поле описывает тип ключа, второе поле uu-кодированный
+          (uuencoded) ключ и третье поле это комментарий. Однако, менее
+          известный факт что всей строке может предшествовать поле
+          <literal>command</literal>:</para>
 
         <screen>
   command="program" ssh-dsa AAAABtce9euch… user at example.com
 </screen>
 
-<!-- @ENGLISH {{{
+        <!-- @ENGLISH {{{
         <para>When the <literal>command</literal> field is set, the
           SSH daemon will run the named program instead of the
           typical <command>svnserve -t</command> invocation that the
           Subversion client asks for.  This opens the door to a number
           of server-side tricks.  In the following examples, we
           abbreviate the lines of the file as:</para>
- at ENGLISH }}} -->
-        <para>Когда поле <literal>command</literal> установлено, демон 
-          SSH будет выполнять указанную программу, вместо обычной 
-          <command>svnserve -t</command> моля что клиент знает об этом.  
-          Это открывает двери для многих трюков на стороне сервера.  В следующем
-          примерах мы сокращаем строки в файле так :</para>
+        @ENGLISH }}} -->
+        <para>Когда поле <literal>command</literal> установлено, демон
+          SSH будет выполнять указанную программу, вместо обычной
+          <command>svnserve -t</command> моля что клиент знает об этом.
+          Это открывает двери для многих трюков на стороне сервера.
+          В следующем примерах мы сокращаем строки в файле так :</para>
 
         <screen>
   command="program" TYPE KEY COMMENT
@@ -1656,24 +1669,25 @@
       </sect3>
 
       <sect3 id="svn.serverconfig.svnserve.sshtricks.fixedcmd">
-<!-- @ENGLISH {{{
+        <!-- @ENGLISH {{{
+        <title>Controlling the invoked command</title>
+        @ENGLISH }}} -->
         <title>Controlling the invoked command</title>
 
+        <!-- @ENGLISH {{{
         <para>Because we can specify the executed server-side command,
           it's easy to name a specific <command>svnserve</command>
           binary to run and to pass it extra arguments:</para>
- at ENGLISH }}} -->
-        <title>Управление вовлекаемой командой</title>
-
-        <para>Так как мы можем указать выполняемую на сервере команду, проще назвать 
-          специфическую программу <command>svnserve</command> и передать дополнительные 
-          параметры:</para>
+        @ENGLISH }}} -->
+        <para>Так как мы можем указать выполняемую на сервере команду, проще
+          назвать специфическую программу <command>svnserve</command> и
+          передать дополнительные параметры:</para>
 
         <screen>
   command="/path/to/svnserve -t -r /virtual/root" TYPE KEY COMMENT
 </screen>
 
-<!-- @ENGLISH {{{
+        <!-- @ENGLISH {{{
         <para>In this example, <filename>/path/to/svnserve</filename>
           might be a custom wrapper script
           around <command>svnserve</command> which sets the umask (see
@@ -1685,63 +1699,59 @@
           system, or simply to relieve the user of having to type an
           absolute path in the <literal>svn+ssh://</literal>
           URL.</para>
- at ENGLISH }}} -->
+        @ENGLISH }}} -->
         <para>В этом примере, <filename>/path/to/svnserve</filename> может быть
-          пользовательским скриптом, оберткой вокруг 
-          <command>svnserve</command> которая устанавливает umask (маску????)
-          (смотри <xref linkend="svn.serverconfig.multimethod"/>).  Также 
-          показано
-          как привязать <command>svnserve</command> к виртуальному корневому 
-          каталогу, 
-          который часто делается когда запускается <command>svnserve</command> 
-          как 
-          процесс-демон. Это может быть сделано либо ограничением доступа к 
-          части системы,
-          или просто заставляя пользователя указывать абсолютный путь в           
+          пользовательским скриптом, оберткой вокруг
+          <command>svnserve</command> которая устанавливает umask (смотри
+          <xref linkend="svn.serverconfig.multimethod"/>).  Также показано
+          как привязать <command>svnserve</command> к виртуальному корневому
+          каталогу, который часто делается когда запускается
+          <command>svnserve</command> как процесс-демон. Это может быть
+          сделано либо ограничением доступа к части системы,
+          или просто заставляя пользователя указывать абсолютный путь в
           <literal>svn+ssh://</literal> URL.</para>
 
-<!-- @ENGLISH {{{
+        <!-- @ENGLISH {{{
         <para>It's also possible to have multiple users share a single
           account.  Instead of creating a separate system account for
           each user, generate a public/private keypair for each
           person.  Then place each public key into
           the <filename>authorized_users</filename> file, one per
-          line, and use the <option>--><!--tunnel-user</option>
+          line, and use the <option>-ﳢ-tunnel-user</option>
           option:</para>
- at ENGLISH }}} -->
-        <para>Так же возможно иметь нескольких пользовательских разделяемых 
-          ресурсов под одной учетной записью. Вместо создания различных учетных 
-          записей для каждого пользователя, сгенерируйте пару публичный/частный 
-          ключ 
-          для каждого человека. Затем поместите каждый публичный ключ в файл
-          <filename>authorized_users</filename>, по одному ключу в строке, и 
-          используйте параметр <option>--tunnel-user</option>:</para>
+        @ENGLISH }}} -->
+        <para>Так же возможно иметь нескольких пользовательских разделяемых
+          ресурсов под одной учетной записью. Вместо создания различных учетных
+          записей для каждого пользователя, сгенерируйте пару публичный/частный
+          ключ для каждого человека. Затем поместите каждый публичный ключ
+          в файл <filename>authorized_users</filename>, по одному ключу в
+          строке, и используйте параметр <option>--tunnel-user</option>:</para>
 
         <screen>
   command="svnserve -t --tunnel-user=harry" TYPE1 KEY1 harry at example.com
   command="svnserve -t --tunnel-user=sally" TYPE2 KEY2 sally at example.com
 </screen>
 
+        <!-- @ENGLISH {{{
         <para>This example allows both Harry and Sally to connect to
           the same account via public-key authentication.  Each of
           them has a custom command that will be executed;
-          the <option>--tunnel-user</option> option
+          the <option>-ﳢ-tunnel-user</option> option
           tells <command>svnserve -t</command> to assume that the named
           argument is the authenticated user.  Without
-          <option>--tunnel-user</option>, it would appear as though
+          <option>-ﳢ-tunnel-user</option>, it would appear as though
           all commits were coming from the one shared system
           account.</para>
- at ENGLISH }}} -->
-        <para>Этот пример позволяет обоим, Гарии (Harry) и Салли (Sally) 
-          соединяться к одной учетной записи через идентификацию через публичный
-          ключ. Каждый из них имеет собственную команду, которая будет выполняться,
-          параметр <option>--tunnel-user</option> говорит 
-          <command>svnserve -t</command>
-          какой из названных аргументов идентифицирует пользователя. Без 
+        @ENGLISH }}} -->
+        <para>Этот пример позволяет обоим, Гарии и Салли подключаться к одной
+          учетной записи через идентификацию через публичный ключ. Каждый из
+          них имеет собственную команду, которая будет выполняться, параметр
+          <option>--tunnel-user</option> говорит <command>svnserve -t</command>
+          какой из названных аргументов идентифицирует пользователя. Без
           <option>--tunnel-user</option> они будут появляться не смотря на все
           фиксации которые сделаны из одной разделяемой учетной записи.</para>
 
-<!-- @ENGLISH {{{
+        <!-- @ENGLISH {{{
         <para>A final word of caution: giving a user access to the
           server via public-key in a shared account might still allow
           other forms of SSH access, even if you've set
@@ -1752,21 +1762,17 @@
           To give the user as little permission as possible, you may
           want to specify a number of restrictive options immediately
           after the <literal>command</literal>:</para>
+        @ENGLISH }}} -->
+        <para>В заключение предостережение: предоставление доступа
+          пользователям к серверу через публичные ключи в разделяемой учетной
+          записи может оставлять доступным другие формы доступа через SSH, даже
+          если вы установили значение <literal>command</literal> в
+          <filename>authorized_keys</filename>. Например, пользователи могут
+          получить доступ через SSH, или иметь возможность выполнять X11 или
+          общий форвардинг портов через ваш сервер. Для предоставления
+          пользователям как можно меньше привилегий, можно указать несколько
+          ограничивающих опций сразу же после <literal>command</literal>:</para>
 
- at ENGLISH }}} -->
-        <para>В заключение предостережение: предоставление доступа пользователям
-          к серверу через публичные ключи в разделяемой учетной записи
-          может оставлять доступным другие формы доступа через SSH, даже если
-          вы установили значение <literal>command</literal> в
-          <filename>authorized_keys</filename>.  Например, пользователи могут 
-          получить
-          доступ через SSH, или быть способны выполнять X11 или общий форвардинг 
-          портов 
-          (general port-forwarding) через ваш сервер. Для предоставления 
-          пользователям
-          как можно меньших привилегий, вы можете захотеть указать несколько 
-          ограничивающих
-          опций сразу же после <literal>command</literal>:</para>
         <screen>
   command="svnserve -t --tunnel-user=harry",no-port-forwarding,\
            no-agent-forwarding,no-X11-forwarding,no-pty \




More information about the svnbook-dev mailing list