Kilka miesięcy temu opisałem jak pracować ze zdalnym repozytorium Git. Został tam opisany najprostrzy sposób jak swój projekt umieścić na serwerze.
Jednak gdy chcemy ten projekt współdzielić z innymi programistami możemy napotkać kilka problemów.
Chciałbym jako uzupełnienie tamtego artykułu napisać krok po kroku jak skonfigurować zdalne repozytorium tak aby kilku programistów mogło się z nim łączyć przez ssh.
Czynności, które musimy wykonać po stronie serwera:
- Wybieramy miejsce na repozytorium, np. „/opt/repos/git” i przechodzimy do niego.
12$cd /opt/repos/git
- Tworzymy grupę systemową
git
i dodajemy do niej użytkowników, którzy mają dostęp do repozytorium -
Zmieniamy uprawnienia plików w ten sposób, aby członkowie tej grupy mieli prawo zapisu we wszystkich podfolderach tego katalogu. Zablokować zapis dla innych.
1234$ chmod o-w .$ chgrp -R git .$ chmod -R g+swX .
- Teraz jeżeli chcemy stworzyć nowe repozytorium, to tworzymy nowy katalog:
12$ mkdir sample.git
- Następnie inicjujemy współdzielone repozytorium:
12$ git init --bare --shared
To wszystko, jak współdziałać z takim repozytorium zostało opisane w tym artykule
Jeżeli chcemy aby użytkownik, który został dodany do systemu, miał możliwość tylko korzystania z repozytorium – chcielibyśmy wyłączyć mu standardowe logowanie to musimy zmienić mu w ustawieniach powłokę z /bin/login
,na /usr/bin/git-shell
. Taka powłoka pozwoli łączyć się tylko i wyłącznie z repozytorium gita. Próbla zalogowania się do systemu spowoduje wyświetlenie komunikatu:
1 2 |
"fatal: What do you think I am? A shell?" |
:)
Udanego gitowania.
.