403 Запрещено при использовании AuthzSVNAccessFile

У меня был хорошо работающий сервер SVN, работающий на Windows, который использует Apache для доступа. В исходной настройке каждый пользователь имел доступ ко всем репозиториям, но недавно мне потребовалась возможность предоставить пользователю доступ только к одному репозиторию. Я раскомментировал строку AuthzSVNAccessFile в своем файле httpd.conf и указал ее на файл доступа и настроил файл доступа, но я получаю 403 Запрещено, когда я захожу на mydomain.com/svn . Если я порекомендую эту строку, то все снова будет работать. Я также удостоверился, что я раскомментировал LoadModule authz_svn_module и убедился, что он указывает на правильный файл.

Ниже находится раздел Расположение моего httpd.conf и моего файла svnaccessfile.

httpd.conf (location section only)

<Location /svn>
    DAV svn
    SVNParentPath C:\svn
    SVNListParentPath on
    AuthType Basic
    AuthName "Subversion repositories"
    AuthUserFile passwd
    Require valid-user
    AuthzSVNAccessFile svnaccessfile
</Location>

(Я хочу более сложную политику в долгосрочной перспективе, но только что сделал это, чтобы проверить файл) svnaccessfile

[svn:/]
* = rw

Я также попробовал только что ниже для svnaccessfile.

[/]
* = rw

Я также перезапускаю сервис после каждого изменения, чтобы убедиться, что оно принято.

3 ответа

Решение

Похоже, я решил проблему, изменив начало тега Location на

Разница заключается в трейлинг /

Это работает, только если вы хотите разрешить всем доступ.

Мой файл ACL просто:

[/]
scott = rw

Это приводит к ошибке 403, но если я изменю файл ACL, он будет выглядеть так:

[/]
* = rw

... это позволяет получить доступ.

Все еще работаем над выяснением, почему * разрешает доступ, но конкретный пользователь вызывает ошибку 403 (этот пользователь определен в файле htpasswd, на который ссылается AuthUserFile)

Из приведенного выше ответа было отфильтровано

Вам также необходимо:

[/]

раздел в вашем ACL-файле с соответствующими разрешениями

Другие вопросы по тегам