18.9. Создание общего репозитария CVS

Проблема
CVS хорошо подходит для отслеживания персональных файлов, но в реальном
мире над проектами обычно одновременно работает много людей. Как создать ре позитарий CVS, совместно используемый группой пользователей?
Решение
Сначала создайте владельца и группу, которым будет принадлежать репозитарий.
Затем создайте сам репозитарий:
# groupadd cvsusers
# useradd -g cvsusers -u 105 cvs
# mkdir /cvsroot
# chown -R cvs /cvsroot
# chmod -R 770 /cvsroot
# cvs -d /cvsroot init
# chgrp cvsusers /cvsroot
# chmod g+s /cvsroot
Чтобы предоставить пользователям доступ к репозитарию, включите их в груп пу cvsusers.
Любой пользователь из группы cvsusers сможет импортировать проект в репо зитарий. В следующем примере в репозитарий включается проект techbook:
$ cd /techbook
t cvs -d /cvsroot import techbook cupsjiowto version_l
Владельцами нового проекта является пользователь, который его импортиро вал, и группа cvsusers:
$ stat /cvsroot/techbook
File: 'techbook'
Size: 136 Blocks: 1 10 Block: 4096 directory
Device: 306h/774d Inode: 69624 Links: 2
Access: (2775/drwxrwsr-x) Uid: ( 1000/ carla) Gid: (1005/cvsusers)
Комментарий
Команды, приведенные в предыдущем подразделе, должны выполняться на сер вере CVS. О работе с временным каталогом рассказано в разделе 18.11.
Очень важно соблюдать приведенную последовательность команд для правиль ного назначения полномочий. Команда cvs init создает набор административных
файлов с собственными разрешениями, которые не следует изменять (вы можете
просмотреть их в подкаталоге CVSROOT).
При создании системного пользователя (демона) не забудьте назначить соот ветствующий код UID (см. раздел 8.2).
Задайте всем пользователям маску umask равную 007, чтобы устранить какой либо внешний доступ к файлам в репозитарии CVS. Для этого достаточно вклю чить следующую строку в файл -/.bashrc каждого пользователя:
umask 007
Установка бита закрепления ограничивает возможность переименования или
удаления файла и позволяет выполнять эти операции только владельцу, группе
или суперпользователю.
См. также
Локальная документация (/usr/share/doc/cvs/html-info/cvs-2.html); домашняя стра ница CVS (https://www.cvshome.org).