У меня возникли проблемы с настройкой аутентификации в Apache2 для репозитория SVN, который обслуживается с помощью mod_dav_svn.
Вот моя конфигурация Apache для каталога:
<Location /svn>
DAV svn
SVNParentPath /var/svn/repos
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/apache2/dev.passwd
Require valid-user
</Location>
я могу использовать svn
с проектами под /var/svn/repos
, поэтому я знаю, что DAV работает, но когда я делаю обновления svn или фиксирую (или что-то еще), Apache не запрашивает никакой аутентификации ... Он делает то же самое, независимо от того, есть ли директивы Auth или нет.
Разрешения на каталог репозитория (и все подкаталоги / файлы) дают разрешение только на www-data (пользователь / группа Apache2).
Я также удостоверился, что все соответствующие модули включены (в частности, включен mod_auth, как и все модули mod_dav *).
Любые идеи, почему svn
команды не аутентифицируются?
Заранее спасибо.
Вы пробовали создать не-dav_svn (в основном обычный веб-каталог) и проверить, работают ли разрешения?
Например, вы можете попробовать что-то вроде этого:
<Location /test_auth>
AuthType Basic
AuthName "TEST TEST TEST"
AuthUserFile /etc/apache2/dev.passwd
Require valid-user
</Location>
Имеет ваш клиент Subversion кешированные учетные данные?
Несколько идей в порядке следствия:
Читать этот если вы еще этого не сделали.
Если это не сработает ...
Вы уверены, что нет никаких файлов .htaccess. Htpasswd не отменяет процедуру аутентификации в httpd.conf?
Apache имеет всеобъемлющую модель наследования разрешений, к которой довольно сложно привыкнуть. Если ваши разрешения установлены правильно, они могут быть заблокированы настройкой более низкого уровня в иерархии или переопределены чем-то более высоким в иерархии.
Хотел бы я дать вам более конкретный ответ, но мои набеги на Apache обычно связаны с тем, что я бьюсь головой о стену в течение нескольких дней, чтобы понять это правильно.
Похоже, у вас, скорее всего, есть какая-то перекрывающаяся конфигурация, которая мешает SVN работать должным образом.
Что происходит, когда вы просматриваете различные подкаталоги в репозитории с помощью веб-браузера? Всегда ли он запрашивает имя пользователя / пароль? Попробуйте использовать wget или curl для просмотра репозиториев из командной строки. Эти утилиты командной строки не хранят информацию о сеансе, поэтому вы можете быстро отправлять запросы на разные URL-адреса, быстро использовать разные имена пользователей и пароли и т. Д.
включить mod_info. mod_info создаст страницу (На http://www.example.org/server-info по умолчанию), который детально объединит всю вашу конфигурацию. Это позволяет увидеть, не перекрываются ли файлы конфигурации (например, находящиеся в /etc/apache2/conf/
и /etc/apache2/conf.d
) вызывают проблемы.
Иногда бывает сложно разобраться в модели наследования Apache. Я нахожу это mod_info
может помочь мне увидеть вещи немного яснее. В Удовлетворять директива может быть виновата.
Обязательно ограничьте mod_info, чтобы разрешить доступ только с вашего IP-адреса / сети.
Еще одно предложение: создать второй репозиторий с другим путем доступа и убедиться, что эти вещи полностью находятся за пределами пространства имен вашего первого репозитория. Это поможет устранить аномалии в вашем существующем репозитории SVN.
Что-то вроде этого:
<Location /svntest>
DAV svn
SVNParentPath /tmp/test/repos
AuthType Basic
AuthName "TEST"
AuthUserFile /tmp/test/test.passwd
Require valid-user
</Location>
Проблема все еще возникает? Если это так, то ваша проблема связана с странностью конфигурации в Apache. Если проблема не возникает с, то проблема связана с проблемой конфигурации с репозиториями Subversion в / var / svn / repos.