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-файле с соответствующими разрешениями