====== Ставим SVN на FreeBSD ====== --- //[[winogradov@list.ru|lonebuddha]] 2024/02/18 16:55// В этой статье описаны шаги установки SVN (Subversion) на FreeBSD. ==== Установка ==== pkg install subversion ==== Создание репозитория ==== cd <путь к репозиторию> svnadmin create <имя репозитория> ==== Предварительная настройка ==== ee <путь к репозиторию>\<имя репозитория>\conf\svnserve.conf Используя параметры anon-access - права анонимных пользователей и auth-access - права авторизованных пользователей настраиваем поведение репозитория anon-access = none auth-access = write возможные значения none,read,write. Раскомментируйте строку (уберите решётку перед строкой): password-db = passwd Эта строка задает файл с пользователями SVN. Раскомментируйте строку (уберите решётку перед строкой): authz-db = authz Эта строка включает функции, отвечающие за разграничение прав пользователей. ==== Создание пользователей SVN ==== Откройте файл, который задан в файле svnserve.conf как файл со списком пользователей и их паролей в директиве password-db. По умолчанию этот файл называется passwd. ee <путь к репозиторию>\<имя репозитория>\conf\passwd Впишите в этот файл нужных Вам пользователей и их пароли (синтаксис логин = пароль). ==== Создание групп пользователей ==== Для удобства администрирования можно создать группы, но делать это не обязательно. Итак, если Вы хотите создать группы, откройте файл, который задан в файле svnserve.conf как файл со списком пользователей и их паролей в директиве authz-db. По умолчанию этот файл называется authz, найдите [groups] и после примеров впишите: название_группы = пользователь1,пользователь2,...,пользовательN Название группы должно содержать только латинские символы, цифры и символ подчёркивания. После знака равенства пишутся логины пользователей, которые будут входить в эту группу. Эти логины должны существовать в файле passwd. ==== Настройка прав доступа ==== В том же текстовом файле authz, что и на предыдущем шаге, ищем «### ACCESS CONTROL SECTION«. После этой секции идёт указание прав доступа для каталогов svn-сервера. # Указываем каталог [/] # Задаем права для групп, отдельных пользователей. * - все остальные @название_группы = rw пользователь1,пользователь2 = r * = Таким образом, rw означает полный доступ (чтение, создание, редактирование, удаление), r (только чтение) и пустая строка — нет доступа. ==== Создание пользователя для запуска демона ==== Для начала нам нужен пользователь, от имени которого мы будем запускать наш SVN сервер. adduser Username: svn Full name: subversion Uid (Leave empty for default): Login group [svn]: svn Login group is svn. Invite svn into other groups? []: Login class [default]: Shell (sh csh tcsh date bash rbash nologin) [sh]: nologin Home directory [/home/svn]: Home directory permissions (Leave empty for default): Use password-based authentication? [yes]: no Lock out the account after creation? [no]: no ==== Запуск сервера ==== Cконфигурируем скрипт запуска в /usr/local/etc/rc.d будет скрипт svnserve его править не нужно там и так указано что все запускаться будет от имени пользователя svn, которого мы выше создали. видно что там используются переменные, их нужно задать в /etc/rc.conf ee /etc/rc.conf добавим строки svnserve_enable=«YES» # так он станет демоном svnserve_data="путь к репозиторию" # определяем домашний каталог теперь пора запустить сервер service svnserve start запустился ли svn-сервер смотрим так: ps -ax | grep svn {{tag>SVN FreeBSD}}