Ограничение доступа к папкам SVN для определенных пользователей

2335
Jack Murphy

Я создал файл svn.passwordи добавил несколько пользователей.

Теперь я установил репозиторий Subversion и экземпляр Trac в свою папку apache и настроил vhost.confследующее:

<Location /svn> DAV svn SVNParentPath /var/www/vhosts/xyz.com/svn/ AuthType Basic AuthName "SVN" AuthUserFile /var/www/vhosts/xyz.com/svn.password Require valid-user </Location> <Location /trac/> SetHandler mod_python PythonInterpreter main_interpreter PythonHandler trac.web.modpython_frontend PythonOption TracEnv /var/www/vhosts/xyz.com/trac/ PythonOption TracUriRoot /trac/ </Location> <Location /trac/login> 

Все работает гладко, я могу получить доступ к http://www.xyz.com/svn/repository и http://www.xyz.com/trac/ с любым из пользователей, которых я добавил.

Теперь вот моя проблема. Теперь я хотел бы ограничить доступ к определенным папкам в моем хранилище для определенных пользователей. Я хочу один репозиторий для Trac, но некоторые разработчики будут работать только над определенными проектами. Таким образом, в моей папке ./svn/repository/ есть папка xyz_server и папка xyz_client.

Теперь я изменяю /var/www/vhosts/xyz.com/svn/repository/conf/authz и устанавливаю следующее:

[/repository/xyz_server] * = test = rw ihaveaccess = rw  [/repository/xyz_client] ihaveaccess = rw 

Теперь я предполагаю, что если я попытаюсь получить доступ http://www.xyz.com/svn/repository/xyz_client/к пользователю, testэто не сработает. Только если я попытался получить доступ, у http://www.xyz.com/svn/repository/xyz_server/меня должны были быть права на чтение и запись.

Однако у меня есть полный доступ к папкам SVN.

Что я делаю неправильно?

0

2 ответа на вопрос

0
Walid

В вашей конфигурации Apache, начните с включения mod_authz_svnмодуля

LoadModule authz_svn_module modules / mod_authz_svn.so

Тогда внутри <Location /svn>используйте AuthzSVNAccessFileдирективу

AuthzSVNAccessFile /var/www/vhosts/xyz.com/svn/repository/conf/authz

Я так и сделал, в моем vhosts.conf добавлены строки, по умолчанию уже загружен authz_svn_module. Однако теперь ни у одного пользователя нет доступа, я получаю 403 Запрещено для всех пользователей. DAV svn SVNParentPath /var/www/vhosts/xyz.com/svn/ AuthType Basic AuthName "SVN" AuthUserFile /var/www/vhosts/xyz.com/svn.password AuthzSVNAccessFile /var/www/vhosts/xyz.com/svn / repository / conf / authz Требуется действительный пользователь Jack Murphy 11 лет назад 0
0
Joerg

I had similar issues, but in the end the problem was not with the authentication settings on the SVN server, but with my SVN client "Tortoise" which had been caching authentication data. So in the OP's example, even if I logged in as user "test" through Tortoise, it would use the access rules for the previously logged in user "ihaveaccess". Clearing the authentication data under "TortoiseSVN --> Settings --> SavedData" worked for me.

Похожие вопросы