Forum: PC Hard- und Software Git Server aufsetzten


von Klaus (Gast)


Lesenswert?

Moin,

ich möchte auf einem Linuxsystem ein GIT Repository einrichten. Gängige 
Methode ist ja, einen SSH Zugang einzurichten, mit dem man dann auf das 
im Dateisystem liegende Repo zugreifen kann. Damit hat aber jeder, der 
GIT Zugriff haben soll, automatisch vollen SSH Zugang. Das finde ich 
irgendwie suboptimal...

Gibts keine andere Möglichkeit, bei der ich Usern nur Zugriff auf GIT 
biete, und sonst nix?

von Dr. Sommer (Gast)


Lesenswert?


von Björn B. (elmo)


Lesenswert?

Dr. Sommer schrieb:
> https://www.kernel.org/pub/software/scm/git/docs/git-daemon.html

Für den öffentlichen read-only Zugriff ok, zum pushen wegen fehlender 
Sicherheit nicht.

Schau Dir mal gitosis oder gleich gitlab an.

von Dr. Sommer (Gast)


Lesenswert?

Man kann auch in SSH einstellen, dass alle oder bestimmte User darüber 
nur git-Zugriff haben (ForceCommand und so), dann hat man direkt die 
nette SSH-Authentifizierung & Verschlüsselung.

von D. I. (Gast)


Lesenswert?

Zu welchem Zweck? Für Privates kann man doch Github nehmen und wenn den 
Code keiner sehen soll evtl. ne Basismitgliedschaft.

von Björn B. (elmo)


Lesenswert?

Eine einfache Möglichkeit wäre auch, dem User in der /etc/passwd die 
git-shell als Login-Shell zu geben.

von monte (Gast)


Lesenswert?

Björn B. schrieb:
> Schau Dir mal gitosis oder gleich gitlab an.
Ist gitosis nicht quasi tot?
Ich würde gitolite nehmen.

http://andmag.se/2012/04/hosting-your-own-git-repo-with-gitolite/
http://git-scm.com/book/ch4-8.html

von Klaus (Gast)


Lesenswert?

monte schrieb:
> Ich würde gitolite nehmen.

Sieht interessant aus. Also gitolite nutzt ja ssh als Authentifizierung. 
Das heißt es gibt einen lokalen user git der sich per SSH verbinden 
kann. Aber hab ich dann nicht das gleiche Problem, dass man dann per SSH 
alles mögliche aus dem Rechner machen kann, wenn man sich in den GIT 
Account einloggt? Vielleicht kann mir ja jemand der sich mit gitolite 
auskennt, diese Frage beantworten, bevor ich stundenlang unnötigerweise 
im gitolite manual rumgelesen hab ;-)

von monte (Gast)


Lesenswert?

Ich habe das nie gebraucht, aber das ForceCommand von oben könnte 
passen. Der Rest der Arbeit liegt dann aber bei dir.

von Jörg E. (jackfritt)


Lesenswert?

Ich habe alle durch. Nimm gitolite und für git user einen eigenen neuen 
key generieren.
Sonst wirst du wunderbare probleme mit deinen repos bekommen.
Z.b. Klonen geht aber pushen nicht. Niemals den key für deinen ssh 
zugang benutzen.

Gruss Jörg

von Jörg E. (jackfritt)


Lesenswert?

Der user git hat nur rechte für sich.
 normale loginversuche
Werden von der gitolite shell verhindert.

Sorry vom ipad geschrieben;)

Gruss
Jörg

von R. M. (rmax)


Lesenswert?

Wenn es nicht unbedingt git sein muß, bietet sich für Projekte die nicht 
gerade die Komplexität des Linux-Kernels haben (was die Anzahl und 
Hierarchie der Entwickler angeht), u.U. auch fossil 
(http://fossil-scm.org) an.

Das besteht aus einem einzigen Binary von weniger als 2MB und kann 
wahlweise lokal, per SSH, als CGI hinter einem bestehenden Webserver 
oder über einen kleinen eingebauten Webserver angesprochen werden. Neben 
der eigentlichen Versionsverwaltung sind noch ein Bugtracker und ein 
Wiki enthalten, so daß man gerade bei kleineren Projekten dafür keinen 
extra Aufwand treiben muß.

Ich habe den Eindruck, daß sehr oft der Vorschlaghammer git genommen 
wird, ohne darüber nachzudenken, ob nicht ein leichterer Hammer wie 
fossil viel besser zu dem feinen Nägelchen passen würde, das man gerade 
einzuschlagen hat.

von Antiexperte (Gast)


Lesenswert?

R. Max schrieb:
> Vorschlaghammer git
Das ist ja das Schöne an git, man gibt "git init" ein und man hat sein 
Repository und kann seine Versionsgeschichte anlegen, man muss keinen 
Server haben/aufsetzen etc. Für kleine Projekte braucht man vermutlich 
keine Branches & merges womit sich der große Teil der Komplexität 
erledigt. git ist dank des kleinen Overheads somit wunderbar auch für 
kleine Projekte geeignet, da man keine unnötigen Bugtracker oder Wiki's 
dabei hat...

von R. M. (rmax)


Lesenswert?

Antiexperte schrieb:

> Das ist ja das Schöne an git, man gibt "git init" ein und man hat sein
> Repository und kann seine Versionsgeschichte anlegen, man muss keinen
> Server haben/aufsetzen etc.

Vielleicht ist das falsch rübergekommen, aber auch bei Fossil mußt Du 
keinen Server aufsetzen, wenn Du keinen brauchst: "fossil new" und Du 
hast Dein lokales Repository. Aber die Fragestellung in diesem Thread 
bezog sich nunmal ausdrücklich auf einen Server, deshalb habe ich diese 
Eigenschaften herausgehoben. Im übrigen gibt es selbst beim 
Serverbetrieb von Fossil nicht viel "aufzusetzen".

> git ist dank des kleinen Overheads somit wunderbar auch für
> kleine Projekte geeignet,

Woran machst Du den kleineren Overhead von git denn fest?

Alleine der Kern von git ist knapp zwölf mal so groß ist wie Fossil und 
besteht aus hunderten von Dateien, während Fossil als ein einziges (im 
Grunde installationsfreies) Binary daherkommt:

$ rpm -q --qf '%{SIZE} %{NAME}\n' fossil git-core
1441168 fossil
17032393 git-core
$ rpm -ql fossil
/usr/bin/fossil
/usr/share/doc/packages/fossil
/usr/share/doc/packages/fossil/COPYRIGHT-BSD2.txt
$ rpm -ql git-core | wc -l
767

Dazu kommt, daß git-core (zunindest auf openSUSE) u.A. Perl und Python 
benötigt, die ihrerseits nicht eben klein sind, während Fossil nur libz 
und (optional) openSSL braucht.

> da man keine unnötigen Bugtracker oder Wiki's dabei hat...

Wenn Du sie nicht brauchst, kannst Du sie einfach ignorieren, ohne daß 
Dir dadurch irgendein Nachteil entsteht. Wenn Du sie irgendwann dann 
doch nutzen willst, kannst Du das tun, ohne nochmal zusätzlichen 
Konfigurationsaufwand dafür zu haben.

Einen etwas detaillierteren Vergleich zwischen git und Fossil gibt es 
übrigens hier:
http://www.fossil-scm.org/xfer/doc/trunk/www/fossil-v-git.wiki

Versteh' mich nicht falsch, ich sage nicht, daß git schlecht ist. Es ist 
mit Sicherheit das perfekte Tool für den Linux-Kernel und wurde ja auch 
genau dafür gemacht. Aber es gibt wohl nur wenige andere Projekte, die 
mit dem Kernel vergleichbare Anforderungen an die Versionsverwaltung 
haben, und deshalb sollte man sich beim Start eines Projekts gut 
überlegen, welches Tool am besten paßt, anstatt einfach blindlings git 
zu nehmen, nur weil das alle tun.

von Antiexperte (Gast)


Lesenswert?

R. Max schrieb:
> "fossil new" und Du
> hast Dein lokales Repository.
Immerhin.
R. Max schrieb:
> Woran machst Du den kleineren Overhead von git denn fest?
Ob kleiner als fossil weiß ich jetzt nicht, aber mit Overhead meinte ich 
wie viele (evtl. komplizierte) Befehle man zur Pflege seines 
Repositories braucht - und git ist da doch recht einfach.

R. Max schrieb:
> Alleine der Kern von git ist knapp zwölf mal so groß ist wie Fossil
Na und, das händelt der Packagemanager für mich (du verwendest ja selber 
einen), und für die 18MB ist noch Platz auf meiner 500GB Platte (und 
gerüchteweise ist die noch vergleichsweise klein). IDE's, 
Desktopumgebungen und Spiele sind da jedenfalls um Größenordnungen 
platzhungriger (und stehen somit weiter oben auf der 
nicht-installieren-Liste).

R. Max schrieb:
> Aber es gibt wohl nur wenige andere Projekte, die
> mit dem Kernel vergleichbare Anforderungen an die Versionsverwaltung
> haben,
Es gibt jedenfalls wenige Projekte, die die Anforderung haben, dass das 
SCM selbst keine 18MB groß sein darf. git passt wunderbar auf kleine 
Projekte, und dank github kann man das auch sehr einfach zentral auf 
einem Server haben.

Nur weil git auch für große Projekte wie den Kernel geeignet ist, heißt 
das nicht, dass es weniger für kleine Projekte geeignet wäre...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.