Группы пользователей SVN и разрешения - PullRequest
1 голос
/ 24 июня 2010

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

Чтобы предоставить людям доступ, я выдаю пользователям открытый ключ к своей учетной записи, а затем добавляю строку в файл «author_keys» внутри моего~ / .ssh, который выглядит следующим образом:

command="/home/user/packages/bin/svnserve -t -r /home/user/repository --tunnel-user=diogo",no-port-forwarding,no-agent-forwarding,no-X11-forwarding,no-pty ssh-rsa [KEY DATA IN HERE]== xxxx@xxxx.hostxxxxx.com

Пользователи могут затем извлекать из моего сервера через туннель примерно так:

svn+ssh://host.com/project/trunk

Мой вопрос заключается в том, как я могу ограничить определенных пользователейиметь доступ к определенным проектам?

1 Ответ

1 голос
/ 24 июня 2010

Вы используете туннель SSH. Если я правильно прочитал svn book , вам нужно будет установить права доступа к самим файлам репозитория для пользователя, под которым вы вошли, но вы также можете заблокировать пользователей непосредственно в файле conf:

При работе через туннель авторизация в основном контролируется разрешениями операционной системы на файлы базы данных хранилища; это очень похоже на то, как если бы Гарри обращался к хранилищу напрямую через файл: /// URL.

Если несколько пользователей системы будут обращаться к хранилищу напрямую, вы можете поместить их в общую группу, и вам нужно быть осторожным с масками. (Обязательно прочтите раздел «Поддержка нескольких методов доступа к репозиторию».)

Но даже в случае туннелирования файл svnserve.conf можно по-прежнему использовать для блокировки доступа, просто установив auth-access = read или auth-access = none.

(из раздела «SSH-аутентификация и авторизация»)

Кстати, вы говорите, что делаете это на своей учетной записи хостинга. Я тоже пробовал это однажды, но мне пришлось отказаться, потому что мне не разрешали добавлять новых пользователей SSH. Если вы не можете добавить учетные записи пользователей SSH, вы не можете выполнить детальную аутентификацию через туннель - у пользователей всегда будет полный доступ к репо.

Чтобы использовать многопользовательскую аутентификацию независимо от SSH, вам необходимо интегрировать svn с Apache, что обычно невозможно в общей среде.

Я закончил тем, что переключился на небольшой виртуальный сервер на базе Windows и установил Brain-dead easy svn wrapper VisualSVN Server . Это стоит денег (около 20 евро в месяц, я видел виртуальные серверы на базе Linux, начинающиеся с 10 долларов), но с тех пор я доволен этим. (Конечно, вы можете просто использовать Linux и настроить svn с Apache, что VisualSVN делает и для себя.)

...