Subversion-Zugriff per http =========================== $sonstwer hätte gern ein Subversion-Repository auf Dolly liegen, Zugriff per SSH ist irgendwie "unschön", da man dann für jeden SVN-User einen SSH-User anlegen muss. 0. Inhalt --------- 1. SVN-Repository anlegen 2. Apache konfigurieren 3. "Benutzer" anlegen 4. Benutzerrechte vergeben 5. Schuldiger 1. SVN-Repository anlegen ------------------------- Ich habe mich entschieden, keine Berkeley-DB zu verwenden, sondern eine "Filesystem-DB", die Subversion mitbringt: svnadmin create /at/whichever/path --fs-type fsfs Damit existiert schonmal ein Repository, Tipps zum empfohlenen Layout gibt http://svnbook.red-bean.com/en/1.1/ch04s07.html#svn-ch-4-sect-7.1 - das wird wichtig, wen man releases, Branches etc. taggen möchte. Da der Zugriff auf dieses Repository später über den Apache erfolgt, muss der Benutzer www-data passende Rechte haben, am einfachsten per sudo chown -R www-data:www-data /path/to/repos. neue dateien gehören sowieso www-data. Um die Rechte nicht kaputtzumachen, sollte man auch lokal von Dolly aus per http auf das repository zugreifen. (mit der Performance hatte ich dabei wenig Probleme, selbst ein Linux-Kerneltree war "relativ" schnell ein- und ausgecheckt.) 2. Apache konfigurieren ----------------------- Nötig ist mod_dav_svn, das ist auf Dolly bereits installiert (Paket libapache2-svn) und im Apache aktiviert. "Normales" HTTP möchte ich nicht anbieten, da dann die Passwörter evtl. unverschlüsselt übers Netz gehen - ich mache einfach 'nen redirect (und ich habe das in 'nen extra vhost mit eigener Subdomain eingebaut): ServerName svn.dom.ain Redirect / https://svn.dom.ain/ Order allow,deny Deny from all Mit SSL dann das DAV_SVN ansprechen. Dabei kann man sich aussuchen, ob man "jedes Repos extra" einbindet, oder ein Verzeichnis nimmt, in dem mehrere Repositories liegen können - letzteres habe ich gemacht: ServerName svn.dom.ain Include sites-available/includes/ssl.conf DAV svn SVNParentPath /pfad/in/dem/die/repos/liegen AuthType Basic AuthName "SVN-Repos dom.ain" AuthUserFile /da/wo/die/geheimnisse/liegen/svn.htpasswd Require valid-user 3. "Benutzer" anlegen --------------------- Die Benutzerverwaltung von Subversion benutzt per Default die Apache-Authentifikation. So muss man neue Benutzer nur noch in die htpasswd eintragen und sie sind in Subversion auch bekannt. In Subversion kann man dann noch feingranulare Rechte vergeben, wer was darf. Damit habe ich mich allerdings noch nicht beschäftigt, das steht aber im SVN-Buch: http://svnbook.red-bean.com/en/1.1/ch06s03.html#svn-ch-6-sect-3.2 unter "set access controls" 4. Benutzerrechte ----------------- Wenn man zum Zugriff auf Repositories Benutzerrechte vergeben / einschränken möchte, ist dies über das Apache-Kodul mod_authz_svn problemlos möglich. Um die Rechtevergabe zu nutzen, definiert man in der Location des vhosts (da, wo auch das Subversion-Repository definiert wird) AuthzSVNAccessFile /da/wo/es/liegt/accessfile Darin stehen dann "ACLs" für den Zugriff auf Repositories: [/] hauptuser = rw [repo1:/] hauptuser = rw user2 = rw user3 = r [repo2:/teil/eines/repos] gastuser1 = rw gastuser2 = r Genaueres findet sich im Subversion-Handbuch unter http://svnbook.red-bean.com/en/1.1/ch06s04.html#svn-ch-6-sect-4.4.2 5. Schuldiger ------------- verbrochen wurde diese Kurzanleitung von Matthias (geschrieben am 6.10.2005) gnuher.de-kb@merz.inka.de