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

Отдельные учетные записи git на сервере linux

У меня много репозиториев git на моем сервере Linux (ubuntu). Я получаю доступ ко всем из них с пользователем Apache www-data. Раньше это отлично работало, потому что я был единственным веб-разработчиком. Теперь у меня больше разработчиков, и мне нужно ограничить их доступ к некоторым репозиториям. Как мне изменить мои репозитории server / permissions / git, чтобы приспособить это?

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

Чтобы создать новый репозиторий для проекта project на myserver.com я запускаю с терминала следующие команды:

ssh www-data@myserver.com
password: (password for www-data)
cd /var/lib/repositories/
mkdir project.git
cd project.git
git init --bare
git update-server-info
cd /var/www/git.myserver.com/
ln -s /var/lib/repositories/project.git project

Развернуть проект по url http://project.myserver.com, Я запускаю следующие команды из терминала:

ssh project@myserver.com
password: (password for project)
cd /var/www/project.myserver.com/public_html/
git init
git remote add origin http://www-data@git.myserver.com/project
git pull origin master
password: (password for www-data)

Пользователь project необходимо знать пароль для www-data нажимать и извлекать из репозитория git.

Как мне изменить свой сервер / разрешения / gitrepositories, чтобы я мог нажимать и тянуть как project вместо того www-data?

Дополнительные замечания

Вот для чего нужна запись vhost git.myserver.com выглядит как

<VirtualHost 173.255.230.136:80>
     ServerAdmin support@myserver.com
     ServerName git.myserver.com
     DocumentRoot /var/www/git.myserver.com/public_html/
     ErrorLog /var/www/git.myserver.com/logs/error.log
     CustomLog /var/www/git.myserver.com/logs/access.log combined
</VirtualHost>

Каталог /var/lib/git принадлежит www-data пользователь. Таким образом, apache может писать в репозитории через символическую ссылку в /var/www/git.myserver.com/public_html/project через URL http://www-data@git.evermight.com/project

Сначала я бы создал отдельного пользователя для входа в git. Однако, помимо этого, вероятно, самый простой способ справиться с этим - использовать что-то вроде gitosis, который представляет собой простую настройку, которая позволяет вам выполнять аутентифицированный доступ к git с детальными разрешениями.

Это позволит вам дать людям:

Нет доступа, только чтение, чтение и запись. И т.д

http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way

N.B. только что проверил сайт разработчиков, и в этом есть больше возможностей. На что стоит посмотреть https://github.com/sitaramc/gitolite/