
Установка SVN сервера в Debian/Ubuntu/Mint
В этой статье «Установка SVN сервера в Debian/Ubuntu/Mint» я хотел бы рассказать как установить и настроить SVN сервер в deb ОС, на примере Debian 8.
Установка SVN сервера в Debian/Ubuntu/Mint
И так, выполним установку утилиты следующей командой:
# apt-get install subversion -y
Создаю директорию для будущего репозитория:
# mkdir -p /srv/svn/repo
Создаем собственно, сам репозиторий:
# svnadmin create /srv/svn/repo
Создаю юзверя-владельца репы и от него же, будет запускаться сам демон:
# useradd subversion --create-home --home-dir /srv/svn --shell /sbin/nologin
Выставляем нужные права на директорию репы:
# chown -R subversion:subversion /srv/svn
И даем права на запись:
# chmod -R ug+rw /srv/svn
Сейчас, необходимо добавить скрипт SVN сервера, выполняем команду:
cat > /etc/init.d/svnserve << "EOF" #!/bin/sh -e # svnserve - brings up the svn server so anonymous users # can access svn # Get LSB functions . /lib/lsb/init-functions . /etc/default/rcS SVNSERVE=/usr/bin/svnserve SVN_USER=subversion SVN_GROUP=subversion SVN_REPO_PATH=/srv/svn # Check that the package is still installed [ -x $SVNSERVE ] || exit 0; case "$1" in start) log_begin_msg "Starting svnserve..." umask 002 if start-stop-daemon --start \ --chuid $SVN_USER:$SVN_GROUP \ --exec $SVNSERVE \ -- -d -r $SVN_REPO_PATH; then log_end_msg 0 else log_end_msg $? fi ;; stop) log_begin_msg "Stopping svnserve..." if start-stop-daemon --stop --exec $SVNSERVE; then log_end_msg 0 else log_end_msg $? fi ;; restart|force-reload) "$0" stop && "$0" start ;; *) echo "Usage: /etc/init.d/svnserve {start|stop|restart|force-reload}" exit 1 ;; esac exit 0 EOF
Даем права всем на выполнение:
# chmod a+x /etc/init.d/svnserve
Добавлю скрипт в автозагрузку ОС:
# update-rc.d svnserve defaults
Настройка SVN в Debian/Ubuntu/Mint
В моем примере, все конфиги и различные настройки находятся в /srv/svn/repo/conf/ директории. Сейчас нужно немного видоизменить некоторые настройки в файлах.
Поправлю основной конфиг-файл:
# vim /srv/svn/repo/conf/svnserve.conf
Приводим к виду:
[general] anon-access = read auth-access = write password-db = passwd authz-db = authz
Пропишем доступ для пользователей и ихние пароли (пароли хранятся в открытом виде):
# vim /srv/svn/repo/conf/passwd
И прописываем:
[users] captain = captain user1 = password_for_user1
Добавим пользователей в группы и назначим нужные права на работу с репозиторием или на часть его:
# vim /srv/svn/repo/conf/authz
И прописываем:
[groups] group1 = captain,user2
Сейчас, выставляю права на корень и назначаю группе «group1» только для чтения. Пользователю captain даю полный доступ, а всем остальным — вообще запрещаю доступ:
[/] @group1 = r &captain = rw * =
Настройку завершил, осталось только — запустить демон SVN чтобы начать уже работу:
# /etc/init.d/svnserve start [ ok ] Starting svnserve (via systemctl): svnserve.service.
PS: Сервер SVN юзает TCP 3690 порт, по этому, при необходимости откройте его в фаерволе.
Тема «Установка SVN сервера в Debian/Ubuntu/Mint» завершена.