Настройка SVN сервера на примере Ubuntu 12.10 | Professional IT Solutions - IT аутсорсинг
Профессиональные IT решения для Вашего бизнеса
(499)704-25-26
/\\/
Linux -> Настройка SVN сервера на примере Ubuntu 12.10

Настройка SVN сервера на примере Ubuntu 12.10

В этой статье мы установим и нстроим SVN сервер на OC Ubuntu 12.10 server Все действия в данной статье необходимо выполнять от пользователя root, для этого необходимо получит привилегии суперпользователя:

sudo su -

либо перед каждой командой писать:

sudo

Установка

apt-get install subversion

Создадим папку, в которой будет располагаться репозиторий:

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

Настройка

Конфигурационный файл и файлы с пользователями и настройками доступа хранятся в папке conf в корне репозитория (в нашем примере это /srv/svn/conf)

Основной конфигурационный файл /srv/svn/conf/svnserve.conf:

[general]
# Доступ c анонимным доступом ("write", "read" или "none")
anon-access = none
# Доступ для авторизованых пользователей:("write", "read" или "none")
auth-access = write
# Имя файла с пользователями
password-db = passwd
# Имя файла с правами
authz-db = authz

Файл содержащий пользователей и пароли (пароли хранятся в открытом виде) /srv/svn/conf/passwd:

[users]
user1 = password1
user2 = password2

Файл содержащий группы пользователей и права на репозиторий или на часть его /srv/svn/conf/athz:

# Группы
[groups]
group1 = user1,user2

# Права на корень
# группе group1 только для чтения
# пользователю user2 полный доступ
# всем остальным запретить доступ
[/]
@group1 = r
&user2 = rw
* = 

На этом настройка закончена, запустите cервис SVN для работы:

/etc/init.d/svnserve start

SVN сервер использует порт TCP 3690 - не забудьте открыть его на фаерволе.

Рейтинг: 3.8/5 (Голосов: 17)
PITSol© 2010 - 2014. При использовании материалов ссылка на сайт обязательна.
Рейтинг@Mail.ru