Я настроил сервер подрывной деятельности, доступный с помощью Apache / DAV, и после того, как пару дней назад испортил права доступа к файлам репозиториев, я начал задаваться вопросом, есть ли лучший способ сделать это, чем то, как я это делаю.
Репозитории принадлежат выделенному пользователю и группе, и apache работает как обычно. www:www
user, следовательно, у него нет прав на запись в репозитории. Пока что я решил добавить www
пользователь к svn
group и убедитесь, что файлы внутри репозиториев доступны для групповой записи ... но через полгода я создам новый репозиторий, забуду исправить права доступа к файлам и получу письмо по электронной почте, как только кто-то попытается что-то зафиксировать.
Есть ли другой способ сделать это? Может быть, заставить svnadmin в первую очередь создавать репозитории с возможностью групповой записи? (Если вам интересно, что сервер FreeBSD 6.2)
Когда вы обращаетесь к репозиторию с помощью Apache, пользователь Apache запускается с правами на запись. Так что простейшее решение - передать репозиторий этому пользователю.
Вот как это выглядит на моей машине Debian, где Apache работает как www-data
:
% ls -ald /home/Subversion-Repository drwxr-xr-x 7 www-data www-data 4096 Nov 14 10:02 /home/Subversion-Repository
Это проблема только в том случае, если вы хотите, чтобы один и тот же репозиторий был доступен через Apache / DAV и другим способом. Но эта практика разочарованный. Я цитирую:
К счастью, большинству администраторов репозиториев никогда не понадобится такая сложная конфигурация. Пользователи, которые хотят получить доступ к репозиториям, которые находятся на одном компьютере, не ограничиваются использованием URL-адресов доступа file: // - они обычно могут связаться с HTTP-сервером Apache или svnserve, используя localhost в качестве имени сервера в своем http: // или svn: / / URL. А поддержание нескольких серверных процессов для ваших репозиториев Subversion, вероятно, станет большей головной болью, чем необходимо. Мы рекомендуем вам выбрать один сервер, который лучше всего соответствует вашим потребностям, и придерживаться его!
Долгосрочным решением является использование ACLS, чтобы предоставить пользователю www доступ для записи в дерево каталогов и все будущие каталоги, созданные в дереве.
Попробуйте этот URL, чтобы начать.
http://www.onlamp.com/pub/a/bsd/2005/09/22/FreeBSD_Basics.html
-Брайан