Я следовал инструкциям, изложенным в книге под названием «Управление версиями с помощью Subversion», относительно правильного способа настройки конфигурации SVN на основе Apache. Пока что у меня есть файл "subversion.conf" в моем каталоге /etc/httpd/conf.d. В этом файле я определил местоположение с именем "/ svn" и сопоставил его с местоположением моих репозиториев Subversion "/ x1 / svn / (repo1), (repo2), (etc)". Я также создал пользователя "svn", который владеет областью репозитория и добавил групповые разрешения для Apache, так что репозитории доступны из Apache без необходимости настройки всего, что принадлежит Apache (что я считаю странным способом сделать это). вещи).
В любом случае. Вот проблема, с которой у меня проблемы. Я хотел бы настроить пользователя «а», которого я мог бы раздавать людям в том случае, если я хочу разрешить им загружать копию исходного кода конкретной базы кода репозитория. Здесь есть несколько уровней сложности.
- А) разрешить им обычного пользователя, который предоставляет доступ только для чтения ко всем хранилищам
- B) предоставить определенных пользователей «только для чтения» для определенных репозиториев
В любом случае, и я думаю, что было бы проще объяснить, как выполнить опцию (A), как я могу это сделать, учитывая конфигурацию, которую я настроил для своего веб-сервера в настоящее время? Ниже приведена копия моего файла «subversion.conf», который работает просто отлично, однако требует, чтобы любой пользователь, обращающийся к нужным репозиториям, имел полный доступ:
<Location /svn>
DAV svn
SVNParentPath /x1/svn
# Require SSL connection for password protection.
# In order to do this Apache needs to use a self-signed certificate
# Talk to Cordel and/or consult Apache Docs and OpenSSL docs
# SSLRequireSSL
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/svn-auth-file
Require valid-user
</Location>
Итак - как я могу добавить одного обычного пользователя, который был бы доступен только для чтения для всех репозиториев, расположенных в SVNParentPath (опция A)? И за дополнительную плату - как я могу создать уникальных пользователей только для чтения для отдельных репозиториев (вариант B). И все это при сохранении пользователей, которые должны пройти аутентификацию для полного доступа для чтения и записи во всех репозиториях.
Я пытался выполнить это самостоятельно, однако, пытаясь переварить значение «предельных» методов, я смущен отсутствием прямого объяснения того, какие методы доступны и что каждый метод на самом деле делает в отношении конфигурации SVN / Apache. Я имею в виду, что здравый смысл говорит мне, что GET - это GET (только для чтения) и что POST - это операция записи, но это всего лишь здравый смысл. Я слишком долго программировал, чтобы предположить, что некоторые A-Hole не создавали операции GET с возможностью записи данных. Это мое затруднительное положение. Кто-нибудь может пролить свет?
Спасибо!