Я установил выделенный сервер Subversion с Apache и mod_dav_svn
на сервере Ubuntu 9.10, и на данный момент у меня все работает нормально. Однако я заметил, что когда дело доходит до назначения правильных прав доступа к файлам для каталога репозитория, в большинстве руководств вам предлагается сделать что-то вроде этого:
sudo chown -R www-data:www-data /svn/myrepo # make www-data the owner of the repo so Apache
# can write to it
sudo chmod -R g+ws /svn/myrepo # Give the www-data group write access as well, and enable
# setgid so that new directories have that group
Теперь я сделал это немного по-другому. Я создал новый subversion
group и сделал его владельцем репозитория, затем добавил себя и www-data
этой группе, поскольку я могу редактировать файлы конфигурации в /svn/myrepo/conf
и скрипты хуков в /svn/myrepo/hooks
, и он также немного отделяет Apache и Subversion друг от друга. Я видел, как другие учебники рекомендуют нечто подобное, но затем советуют вам сделать это:
sudo chwown -R www-data:subversion /svn/myrepo
sudo chmod -R g+ws /svn/myrepo
Эти же уроки подразумевают, что вы создаете subversion
группа специально для того, чтобы Subversion и Apache в основном были отделены друг от друга, так почему они разворачиваются и делают www-data
владелец файлов? Есть ли веская причина сделать www-data
вообще владелец файлов репозитория? Почему бы просто не сделать root
владелец? Похоже на сохранение www-data
поскольку владелец репозитория излишне привязывает Subversion к Apache. Есть ли веская причина заставить хозяина www-data
вместо того root
, пока группа все еще subversion
?
Обычно вы не хотите, чтобы root был владельцем репозитория, потому что это означало бы, что apache (httpd) должен был запускаться от имени root для доступа к репозиторию svn, что обычно считается угрозой безопасности.
По моему опыту, вы в основном взаимодействуете с Subversion через apache. Поскольку это так, кажется проще и естественнее просто позволить apache (www-data) быть владельцем репозитория Subversion. Если вы создали репозиторий Subversion в структуре каталогов, отдельной от ваших веб-сайтов, не должно возникать путаницы в том, какие файлы для чего используются. Например, у меня есть / data / www для моих веб-сайтов и / data / svn для моих репозиториев svn.
Затем, чтобы позволить себе изменять файлы конфигурации репозитория и сценарии перехвата, просто сделайте себя членом группы www-data и выполните:
sudo chmod -R g+ws /svn/myrepo
как вы упомянули выше, и вам хорошо.
Я не вижу преимуществ в отделении владельца репозитория svn от пользователя apache, но если вы действительно настаиваете на этом, вы можете создать пользователя subversion в дополнение к группе subversion и сделать так, чтобы владелец / svn / myrepo был subversion : subversion. Затем просто сделайте себя и apache членом группы subversion и измените права доступа к каталогу, как указано выше.
IIRC, Apache нужен только доступ на запись к каталогам «dav», «db» и «locks». Не имеет значения, принадлежит ли это пользователю или группе. В большинстве случаев у Apache нет причин иметь доступ для записи в "conf" и "hooks".