Installation von Git zur Verwendung in einem Mehrbenutzersystem

1

Ich muss git auf einem Ubuntu-Server installieren, auf den mehrere Benutzer zugreifen können.

Ich gehe davon aus, dass ich git + ssh verwenden werde, damit jeder Benutzer ein Systemkonto hat. Wie installiere ich jedoch git und ein Repository, damit jeder Benutzer eine lokale IP-Adresse pushen / ziehen kann?


quelle

Antworten:

4

Ich würde empfehlen, gitolite für die Verwaltung des Benutzerzugriffs und der Berechtigungen zu verwenden.

Am besten lässt sich das beschreiben, indem man den Entwickler zitiert:

Mit Gitolite können Sie einen einzelnen Benutzer auf einem Server verwenden, um viele Git-Repositorys zu hosten und vielen Entwicklern Zugriff zu gewähren, ohne ihnen echte Benutzer-IDs oder Shell-Zugriff auf den Server gewähren zu müssen. Die wesentliche Magie dabei ist der Pubkey-Zugriff von ssh und die Datei authorized_keys, und die Inspiration war ein älteres Programm namens gitosis.

Gitolite kann einschränken, wer aus einem Repository lesen (klonen / holen) oder in dieses schreiben (pushen) kann. Dies kann auch einschränken, wer auf welchen Zweig oder Tag pushen kann, was in einer Unternehmensumgebung sehr wichtig ist. Gitolite kann ohne Root-Berechtigungen und ohne zusätzliche Software als Git selbst und Perl installiert werden. Es hat auch einige andere nette Eigenschaften, die unten und anderswo im doc / -Verzeichnis beschrieben werden.

Und hier sind einige Funktionen, die ich persönlich hervorheben möchte:

  • Jeder Benutzer muss über einen SSH-Schlüssel verfügen, sonst kann er keinen Push an den Server senden
  • Keine Systemkonten - nur ein Git-Benutzer auf dem Server.
    • Sie machen alle Ihre Git-Interaktionen mit Ihrem Server über diesen Benutzer
  • Die Konfiguration und das Hinzufügen von SSH-Schlüsseln erfolgt über ein Git-Repo!
    • Wenn Sie beispielsweise ein Repo erstellen, fügen Sie Ihrer Gitolite-Konfiguration nur zwei Zeilen hinzu, den Namen des Repos und wer hat die Berechtigung, darin zu lesen / schreiben. Legen Sie fest und drücken Sie und vóila! Sie können jetzt Ihr neues leeres Repo mit 'git clone ssh: //[email protected]/yournewrepo.git' klonen.

Viel Glück

-víðir

Valberg
quelle
2

Eine Möglichkeit, dies zu tun, besteht darin, eine Gruppe für die Benutzer "git" zu erstellen und alle Benutzer hinzuzufügen, auf die Sie Zugriff haben möchten. Sie können den Befehl "groupadd" verwenden, um die Gruppe zu erstellen. Dann bearbeite ich einfach / etc / group, um die durch Kommas getrennte Liste der Benutzer in dieser Gruppe zu ändern. Normalerweise bezeichne ich die Gruppe anhand des Projekts als "newwebsite" und nicht als "git". Beispielsweise könnte der Eintrag / etc / group so aussehen:

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

Erstellen Sie nun ein Verzeichnis für das Git-Repository, sagen Sie "/ var / git / newwebsite": mkdir -p / var / git / newwebsite

Richten Sie die Berechtigungen für dieses Verzeichnis so ein, dass das Gruppen-Sticky-Bit enthalten ist:

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

Initialisieren Sie nun das Repository in diesem Verzeichnis mit:

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

HINWEIS: Ersetzen Sie "group" nicht durch Ihre Gruppe, es muss sich um die Literalzeichenfolge "group" handeln.

Wenn dieser Fehler auftritt, unterstützt Ihre Version von "git" wahrscheinlich nicht die Option "--bare". Entfernen Sie in diesem Fall die Option "--bare".

Zu diesem Zeitpunkt sollten Ihre Benutzer das Repository folgendermaßen auschecken können:

git clone git+ssh://$USER@$HOST/var/git/newwebsite
Sean Reifschneider
quelle
1

Um Git auf Ubuntu zu installieren

sudo apt-get install git-core

Anweisungen zur Verwendung finden Sie in diesem Dokument, auf das ich eine hervorragende Referenz gefunden habe.

user619714
quelle
Die Frage, wie ich sie lese, lautet eher, wie ein Git-Repository für den gemeinsamen Benutzerzugriff konfiguriert wird, als wie das Paket installiert wird.
Sean Reifschneider
Ich denke, Sie sind ein bisschen hart in der Annahme, dass Sie in der Lage sind, die Gedanken des OP von einigen Wochen in der Vergangenheit zu lesen. Meine Antwort beantwortet die gestellte Frage, ist korrekt und enthält einen Link zu zusätzlichen Informationen, die das OP verwenden kann, um mehr über das Thema zu erfahren.
user619714
1
Ich hatte nicht die Absicht, hart zu sein, nur zu sagen, dass die Art und Weise, wie ich die Frage las (nicht jedermanns Meinung :-), viel mehr bedeutete als nur "apt-get install git-core". Entschuldigung ...
Sean Reifschneider