Hey,
Ik ben helaas even het spoor volledig bijster. Ik draai een simpele barebone met daarop Ubuntu 8.10. Ik heb daarop SVN geinstalleerd met apache2. Door niet veel meer te doen dan
of libapache2-svn, ben even de precieze naam kwijt. Verder is het geconfigureerd zodat het webaccess toe laat tot mijn repositories. Het is zo opgezet dat het meerdere repositories aan kan, dus: Ik heb een map /var/svn/repos/ en daarin staan mijn repositories.
Omdat er meerdere mensen aan repositories werken die niet allemaal toegang hebben tot alle repositories heb ik besloten het per repository te beveiligen. Dit gaat goed tot 1 ding. Ik wil namelijk dat iedereen de root map kan zien. Dus, welke repositories er allemaal zijn. De lijst wordt gegenereerd door de lijn
in mijn dav_svn.conf.
Zodra ik alle user autenthicatie uit zet, dus
uit commentaar, gaat alles naar behoren. Maar ik wil dus dat iedere user kan zien welke repositories er zijn, door te surfen naar
De authz file is op dit moment:
Dit gaat dus goed voor 127.0.0.1/svn/example, de gebruiker yuri mag er in, de gebruiker sam mag niets. Maar de [/] staat dus niet gelijk aan 127.0.0.1/svn, wat ik hoopte. Ik denk dat dit komt doordat ik SVNParentPath gebruik en niet SVNPath. In de help staat namelijk dat dit tot gevolg heeft dat als ik niet expliciet de naam van een repository op geef (zoals example gedaan is), de regel voor iedere repository geldt. Dus effectief zet ik de roots van alle repositories open voor iedereen (niet de bedoeling !!)
Goed, lang verhaal, maar hoop dat ik hiermee een goede situatieschets heb gegeven. Wat ik dus wil is dat iedereen 127.0.0.1/svn mag opvragen (anonymous access), waar slechts een door apache gegenereerde folder index moet verschijnen met alle repository mappen en dat op het moment dat iemand op een repository klikt de bijbehorende user authenticatie gebeurt.
Mijn dav_svn.conf (overgetikt, forgive me typo's)
[edit] Iets te snel, wat typo's gecorrigeerd
Ik ben helaas even het spoor volledig bijster. Ik draai een simpele barebone met daarop Ubuntu 8.10. Ik heb daarop SVN geinstalleerd met apache2. Door niet veel meer te doen dan
code:
1
| sudo apt-get install subversion apache2 libapache2-mod-svn |
of libapache2-svn, ben even de precieze naam kwijt. Verder is het geconfigureerd zodat het webaccess toe laat tot mijn repositories. Het is zo opgezet dat het meerdere repositories aan kan, dus: Ik heb een map /var/svn/repos/ en daarin staan mijn repositories.
Omdat er meerdere mensen aan repositories werken die niet allemaal toegang hebben tot alle repositories heb ik besloten het per repository te beveiligen. Dit gaat goed tot 1 ding. Ik wil namelijk dat iedereen de root map kan zien. Dus, welke repositories er allemaal zijn. De lijst wordt gegenereerd door de lijn
code:
1
| SVNListParentPath on |
in mijn dav_svn.conf.
Zodra ik alle user autenthicatie uit zet, dus
code:
1
| AuthzSVNAccessFile /etc/apache2/dav_svn.authz |
uit commentaar, gaat alles naar behoren. Maar ik wil dus dat iedere user kan zien welke repositories er zijn, door te surfen naar
code:
(nog lokaal aan het testen, vandaar 127.0.0.1 nu), en dat de user-authenticatie pas gebeurt op het moment dat iemand een repositorie aan klikt.1
| 127.0.0.1/svn |
De authz file is op dit moment:
code:
1
2
3
4
5
6
| [ / ] * = rw [example:/] yuri = rw sam = |
Dit gaat dus goed voor 127.0.0.1/svn/example, de gebruiker yuri mag er in, de gebruiker sam mag niets. Maar de [/] staat dus niet gelijk aan 127.0.0.1/svn, wat ik hoopte. Ik denk dat dit komt doordat ik SVNParentPath gebruik en niet SVNPath. In de help staat namelijk dat dit tot gevolg heeft dat als ik niet expliciet de naam van een repository op geef (zoals example gedaan is), de regel voor iedere repository geldt. Dus effectief zet ik de roots van alle repositories open voor iedereen (niet de bedoeling !!)
Goed, lang verhaal, maar hoop dat ik hiermee een goede situatieschets heb gegeven. Wat ik dus wil is dat iedereen 127.0.0.1/svn mag opvragen (anonymous access), waar slechts een door apache gegenereerde folder index moet verschijnen met alle repository mappen en dat op het moment dat iemand op een repository klikt de bijbehorende user authenticatie gebeurt.
Mijn dav_svn.conf (overgetikt, forgive me typo's)
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
| <Location /svn> DAV svn SVNParentPath /var/svn/repos SVNListParentPath on AuthzSVNAccessFile <mijnhtpasswdfile> Satisfy Any Require valid-user AuthType basic AuthName "..." AuthUserFile <mijnuserfile> </Location> |
[edit] Iets te snel, wat typo's gecorrigeerd