Subversion
Subversion
Allgemeine Dokumentation zu Subversion gibt es auf der Doku Seite.
Zugriff auf die Repositories
Der Pfad ~/public_svn ist als SVNParentPath in die webserver als ~<username>/svn eingebunden. SVNParentPath heisst, dass darunter Subversion Repositories liegen. Man kann also mehrere getrennte Repositories verwalten.
Die Repositories (Beispiel Repository Name"test" und Benutzername "user")
währen dann erreichbar über:
https://svn.cip.ifi.lmu.de/~user/svn/test
https://www.cip.ifi.lmu.de/~user/svn/test
http://www.cip.ifi.lmu.de/~user/svn/test
Einrichten eines Repositories ("test"):
mkdir ~/public_svn
svnadmin create ~/public_svn/test --fs-type fsfs
chmod -R o=u,g-rwx ~/public_svn
Zugriffsbeschränkung
Um Zugriff auf das Repository zu erhalten, muss man sowohl die Authentifizierung als auch die Autorisierung konfigurieren.
Authentifizierung
Die Authentifizierung (Festellung wer der Zugreifende ist) wird über
die Datei ~/.htaccess_svn konfiguriert.
Diese Datei muss von others lesbar sein: chmod 604 ~/.htaccess_svn
Es gelten die üblichen .htaccess Regeln.
Eine Beispiel ~/.htaccess_svn Datei:
AuthType Basic AuthName "Subversion repository von User" AuthUserFile /etc/subversion/htpasswd AuthGroupFile /home/u/user/.htgroup_svn Satisfy Any Require valid-user
Um Zugang zu erhalten muss noch die Datei ~/public_svn/auth konfiguriert werden.
Das .htgroup_svn file wird im Normalfall nicht benutzt. Stattdessen werden Gruppen in ~/public_svn/auth verwaltet.
Um generell anonymen Zugriff auszuschliessen die Zeile "Satisfy Any" löschen (obwohl dies allein keinen anonymen Zugriff erlaubt s.h. dafür braucht es in ~/public_svn/auth noch die Zeile "* = r" unter [test:/]).
Die Datei /etc/subversion/htpasswd wird über
CIP Conf gewartet und jeder
Benutzer am CIP kann sich dort ein Passwort setzen, so dass, wenn man diese Datei
als AuthUserFile benutzt, sich nicht um das Passwort Management kümmern muss.
Die Benutzernamen entsprechen dann denen am CIP.
Man kann jedoch auch ein eigenes File benutzen. Zum anlegen und hinzufügen des Benutzer "user" erzeugt man dann ein AuthUserFile ".htpasswd_svn" mit:
/usr/bin/htpasswd -c .htpasswd_svn user
Man muss den vollständigen Pfad für .htpasswd angeben (etwa /home/u/user/.htpasswd_svn). Um weitere Benutzer hinzuzufügen läßt man dann die option -c (lege neue Datei an) weg, da sonst die alte Datei überschrieben wird:/usr/bin/htpasswd .htpasswd_svn user2
Autorisierung
Die Berechtigungen (Autorisierung) auf die Repositories wird über die Datei ~/public_svn/auth konfiguriert. Ein Beispiel um dem user "user" vollen, dem user "freund" nur lesenden Zugriff auf das repository "test" zu geben und der gruppe "team" nur lesenden auf den Repository Pfad "/gut" sowie dem allen anderen ("* = r") nur lesenden auf den Pfad "/offen" zu geben.
Beispiel ~/public_svn/auth:
[test:/] user = rw freund = r [test:/gut] @team = r [test:/offen] * = r [groups] team = peter, susanne


