Gitosis

Aus Siduction Wiki DE
Wechseln zu: Navigation, Suche

Veraltet

Es gibt einen besseren Nachfolger, der einfacher zu verwalten ist und trotzdem mehr bezüglich Zugriffskontrolle bietet: Gitolite

Vorbemerkung

gitosis ist ein Verwaltungssystem für GIT-Repositories.

gitosis bietet den Vorteil, dass die Benutzerverwaltung der Repositories von der Benutzerverwaltung des Servers getrennt wird.

Der Zugriff auf die Repositories erfolgt verschlüsselt. Die Schlüsselverwaltung übernimmt gitosis.

Installation

 apt-get install gitosis

gitosis verwaltet sich selbst in einem GIT-Repository. Die Server-Konfigration wird also lokal geändert und dann auf den Server geladen. Wir verschaffen uns Zugang zum Server:

 # Auf dem lokalen Host:
 REMOTE_HOST=beispielserver.de
 USER=jonny
 cd ~/.ssh
 scp id_dsa.pub $USER@$REMOTE_HOST:/tmp/

Es geht auf dem Server weiter:

 # Auf dem Server:
 su gitosis
 gitosis-init </tmp/id_dsa.pub

Jetzt holen wir das gitosis-Verwaltungsrepository lokal:

 # Auf dem lokalen Host:
 DIR=/opt/gitosis
 mkdir $DIR ; cd $DIR
 git clone gitosis@$REMOTE_HOST:/gitosis-admin.git

Neues Projekt einrichten

Der Benutzer jonny soll Zugang zum Projekt git-tut-remote bekommen:

 # Lokal:
 cd $DIR/gitosis-admin
 PROJ=git-tut-remote
 USER=jonny
 HOST=$(hostname)
 cat <<EOS >>gitosis.conf
[group tut-reader]
writable = $PROJ
members = $USER@$HOST
EOS

Jetzt brauchen wir noch den öffentlichen Schlüssel von jonny:

 cp /home/$USER/.ssh/id_dsa.pub $DIR/gitosis-admin/keydir/$USER@$HOST

Die Änderungen ins lokale Repository übernehmen:

 git add keydir/$USER@$HOST
 git commit -m "Neuer User $USER" gitosis.conf keydir/$USER@$HOST
 # Und ab auf den Server...
 git push

Beispiel

Nochmal die Datei gitosis.conf, nachdem noch ein Benutzer laila Zugriff zu git-tut-remote bekommen hat:

[gitosis]

[group gitosis-admin]
writable = gitosis-admin
members = admin@lion

[group tut-reader]
writable = git-tut-remote
members = jonny@jonny-laptop laila@arbeitstier

Das Verzeichnis $DIR/gitosis-admin/keydir sieht so aus:

 ls -ld $DIR/gitosis-admin/keydir/*
-r--r--r-- 1 jonny hm 596 16. Aug 00:13 keydir/jonny@jonny-laptop
-rw-r--r-- 1 jonny hm 596 15. Aug 23:34 keydir/laila@arbeitstier