Этот раздел описывает установку, администрирование и защиту CVS-сервера.
Сервер CVS будет установлен с использованием OpenSSH в качестве метода удаленного доступа. Другие методы доступа, включая :pserver: и :server: не будут использованы для доступа на запись в CVS-репозитарий. Метод :pserver: отсылает чистые текстовые пароли через сеть, а метод :server: не поддерживается всеми портами CVS. Инструкции для анонимного доступа к CVS и доступа только для чтения, используя :pserver:, могут быть найдены в конце этого раздела.
Настройка CVS сервера состоит из четырех шагов:
Создадим новый CVS-репозитарий запуском следующих команд:
mkdir /srv/cvsroot &&
chmod 1777 /srv/cvsroot &&
export CVSROOT=/srv/cvsroot &&
cvs init
Импортируем исходные модули в репозитарий при помощи следующих команд, выполненных под регистрацией пользователя на той же машине, на которой находится CVS-репозитарий:
cd [sourcedir] &&
cvs import -m "[repository test]" [cvstest] [vendortag] [releasetag]
Проверим доступ к CVS-репозитарию из под того же пользователя следующей командой:
cvs co cvstest
Проверим доступ к CVS-репозитарию с удаленной машины, используя регистрацию пользователя, имеющего ssh-доступ к серверу CVS при помощи следующих команд:
Замените [servername] на IP-адрес или имя хоста машины CVS-репозитария. У Вас будет запрошен пароль регистрации оболочки пользователя перед тем, как проверка CVS сможет продолжиться.
export CVS_RSH=/usr/bin/ssh &&
cvs -d:ext:[servername]:/srv/cvsroot co cvstest
CVS может быть настроен для доступа в режиме только для чтения для анонимных пользователей, используя метод :pserver:. Для этого зарегистрируйтесь как root и выполните следующие команды:
(grep anonymous /etc/passwd || useradd anonymous -s /bin/false) &&
echo anonymous: > /srv/cvsroot/CVSROOT/passwd &&
echo anonymous > /srv/cvsroot/CVSROOT/readers
Если Вы используете inetd, то следующая команда добавит содержимое pserver в /etc/inetd.conf:
echo "2401streamtcpnowaitroot/usr/bin/cvs cvs -f \
--allow-root=/srv/cvsroot pserver" >> /etc/inetd.conf
Выполните команду killall -HUP inetd для перечитывания измененного файла inetd.conf.
Если Вы используете xinetd, следующая команда добавит содержимое pserver в /etc/xinetd.conf:
cat >> /etc/xinetd.conf << "EOF" service cvspserver { port= 2401 socket_type = stream protocol= tcp wait= no user= root passenv = PATH server= /usr/bin/cvs server_args = -f --allow-root=/srv/cvsroot pserver } EOF
Выполните команду /etc/rc.d/init.d/xinetd reload для перечитывания измененного файла xinetd.conf.
Тестирование анонимного доступа в новый репозитарий требует учетной записи на другой машине, с которой можно дотянуться до сервера CVS через сеть. Необходимо отсутствие учетной записи в CVS-репозитарии. Для проверки анонимного доступа в CVS-репозитарий, зарегистрируйтесь на другой машине как обычный пользователь и выполните следующую команду:
cvs -d:pserver:anonymous@[servername]:/srv/cvsroot co cvstest
Замените [servername] на IP-адрес или имя хоста сервера CVS.
mkdir /srv/cvsroot: Создает каталог CVS-репозитария.
chmod 1777 /srv/cvsroot: Устанавливает бит "приклеивания" в правах доступа CVSROOT.
export CVSROOT=/srv/cvsroot: Описывает новый CVSROOT для всех cvs-команд.
cvs init: Инициализирует новый CVS-репозитарий.
cvs import -m "repository test" cvstest vendortag releasetag: Все модули исходного кода должны быть импортированы в CVS-репозитарий перед использованием командой cvs import . Флаг -m описывает начальное дескрипторное содержимое для нового модуля. Параметр "cvstest" является именем, используемым для модуля во всех последующих cvs-командах. Параметры "vendortag" и "releasetag" используются для дальнейшей идентификации каждого CVS-модуля и являются обязательными, используются они или нет.
(grep anonymous /etc/passwd || useradd anonymous -s /bin/false): Проверяет наличие анонимного пользователя и создает его, если не находит.
echo anonymous: > /srv/cvsroot/CVSROOT/passwd: Добавляет анонимного пользователя в файл паролей CVS, который не используется ни для чего другого в этой конфигурации.
echo anonymous > /srv/cvsroot/CVSROOT/readers: Добавляет анонимного пользователя в файл CVS readers, список пользователей, имеющих доступ в репозитарий только для чтения.
Последнее обновление 2004-10-04 14:05:27 -0600.