1

Я хочу создать общий репозиторий команды, используя Git на моей машине (Ubuntu 10.4), чтобы наша команда могла клонировать код и извлекать / толкать и т.д. ...

Но я обнаружил, что мне нужно создать ssh аккаунт для этого. Я не знаком с безопасностью Linux, поэтому мне интересно, как контролировать права доступа для этой учетной записи. Скажем, я надеюсь, что только эта учетная запись ssh может получить доступ к каталогу git (чтение и запись), например, /home /camino /myproject, и любой доступ ко всем другим каталогам должен быть запрещен.

Является ли это возможным?

Заранее спасибо за помощь.

2 ответа2

1

Это то, что решает Gitosis . Решением является отдельная учетная запись пользователя (назовите ее «gitosis»), доступ с открытым ключом к ней через ssh и gitosis в фоновом режиме, проверяющие эти учетные данные в файле конфигурации.

0

Вы можете создавать учетные записи пользователей на вашем боксе для ваших коллег. По умолчанию они не должны иметь доступа к вашему локальному домашнему каталогу. Вы можете убедиться в этом, проверив настройки доступа к файловой системе в /home/user (замените 'user' действительным именем пользователя)

drwxr-x--- 143 user user 8.2K 09-28 14:45 /home/user/

Вот основная схема того, что вы должны сделать:

  1. Создайте новую группу с именем 'git'
  2. Добавьте группу 'git' к вашему текущему имени пользователя
  3. Создайте новую учетную запись для каждого пользователя и добавьте «git» в список групп.
  4. Создайте новое дерево каталогов, из которого / где будут храниться ваши git репо
  5. Убедитесь, что каталоги доступны для вашей группы пользователей 'git'
  6. Клонируйте свое рабочее репо в чистое и отправьте в общее репо с помощью ssh:

    git clone --bare ~/proj proj.git
    scp -r proj.git server:/git/USER/
    
  7. Добавьте общий репо в ваш рабочий проект git, чтобы вы могли использовать push/pull.

    git remote add origin ssh://HOSTNAME/git/USER/proj.git
    git config branch.master.merge refs/head/master
    

С этого момента ваши удаленные пользователи должны иметь доступ к вашей машине, войти в систему и клонировать общий репозиторий. Они также могут толкать / тянуть изменения.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .