Назад | Перейти на главную страницу

Установка git для использования в многопользовательской системе

Мне нужно установить git на сервере Ubuntu, который будет доступен для нескольких пользователей.

Я предполагаю, что буду использовать git + ssh, поэтому у каждого пользователя будет системная учетная запись, но как мне установить git и репозиторий, чтобы каждый пользователь мог нажимать / перетаскивать локальный IP-адрес?

Я бы рекомендовал использовать гитолит для управления доступом и разрешениями пользователей.

Лучший способ описать это - процитировать разработчика:

Gitolite позволяет использовать одного пользователя на сервере для размещения множества репозиториев git и предоставлять доступ множеству разработчиков без необходимости предоставлять им реальные идентификаторы пользователя или доступ к серверу через оболочку. Существенным волшебством в этом является доступ к ssh pubkey и файл authorized_keys, а вдохновением послужила старая программа под названием gitosis.

Gitolite может ограничивать круг лиц, которые могут читать (клонировать / извлекать) или писать в (push) репозиторий. Он также может ограничивать, кто может отправлять сообщения в какую ветвь или тег, что очень важно в корпоративной среде. Gitolite может быть установлен без прав root и без дополнительного программного обеспечения, кроме самого git и perl. Он также имеет несколько других полезных функций, описанных ниже и в другом месте в каталоге doc /.

И вот некоторые особенности, которые я лично хотел бы выделить:

  • Каждый пользователь вынужден иметь ключ SSH, иначе они не смогут отправить его на сервер.
  • Никаких системных учетных записей - только пользователь git на сервере.
    • вы делаете все ваши взаимодействия git со своим сервером через этого пользователя
  • Настройка и добавление ключей SSH происходит через репозиторий git!
    • например, при создании репо вы просто добавляете две строки в свою конфигурацию gitolite, имя репо и то, у кого есть разрешения на чтение / запись в него. Зафиксируйте и нажмите, и vóila! Теперь вы можете клонировать новое пустое репо, используя git clone ssh: //git@your-domain.com/yournewrepo.git.

Удачи

-víðir

Один из способов сделать это - создать группу для пользователей «git» и добавить всех пользователей, которым вы хотите получить доступ, в эту группу. Вы можете использовать команду groupadd для создания группы, а затем я просто редактирую / etc / group, чтобы изменить список пользователей в этой группе, разделенных запятыми. Обычно я называю группу в зависимости от проекта, например «newwebsite», а не «git». Например, запись в / etc / group может выглядеть так:

newwebsite:x:999:swarren,jafo,kyle,mlb

Теперь создайте каталог для хранения репозитория git, скажем "/ var / git / newwebsite": mkdir -p / var / git / newwebsite

Настройте разрешения для этого каталога, чтобы включить липкий бит группы:

chgrp newwebsite /var/git/newwebsite
chmod g+ws /var/git/newwebsite

Теперь инициализируйте репозиторий в этом каталоге с помощью:

cd /var/git/newwebsite
git init --bare --shared=group

ПРИМЕЧАНИЕ. Не заменяйте «группу» своей группой, это должна быть буквальная строка «группа».

Если эта ошибка исчезнет, ​​ваша версия «git», вероятно, не поддерживает параметр «--bare». В этом случае удалите параметр "--bare".

На этом этапе ваши пользователи должны иметь возможность проверить репозиторий с помощью:

git clone git+ssh://$USER@$HOST/var/git/newwebsite

Установить git на Ubuntu

sudo apt-get install git-core

Инструкции по использованию см. На этот документ, на который я нашел отличную ссылку.