verwaltung fürs svn + apache sicherheit?

heyho

ich hab mich grad mit dem ganzen svn kram für meine projekte auseinander gesetzt.
ich möchte jetzt für jedes projekt nen svn host haben. das klappt an sich auch recht gut.
ich hab mir jetzt nen kleines script geschrieben, welches ich via https aufrufen kann und mir dann mit nem wunschnamen nen neues repository anlegt.

allerdings musst ich dem apache (www-data) dazu zugriff auf seine eigenen configfiles geben und prinzipiell ihm selbst das recht geben sich neu zu starten.
das find ich aber irgendwie extremst unsicher. gibt da ne besser möglichkeit übern webinterface neue repositorys anzulegen und den apache irgendwie neu zu starten?
oder ist das nen ganz falscher ansatz für jedes projekt nen svn zu nutzen?
fragen über fragen ;)
 
Wenn du für jedes Repo einen eigenen vHost willst, musst du das wahrscheinlich so wie du es beschrieben hast machen. Bei mir läuft das folgendermaßen, wobei ich mich für das anlegen eines Repos per SSH einlogge. Theoretisch müsste man aber dem Apache nur Rechte auf /var/svn geben:

Apache-Konfiguration:
Code:
<Location /svn>
    DAV svn
    SVNParentPath /var/svn
    SVNAutoversioning on
    AuthzSVNAccessFile /var/svn/access_main
    AuthType Basic
    AuthName "Subversion repository"
    AuthUserFile /var/svn/.htpasswd
    <LimitExcept GET PROPFIND OPTIONS REPORT>
        Require valid-user
    </LimitExcept>
</Location>
/var/svn/access_main
Code:
[/]
raphael=rw
*=r
Anlegen eines SVN:
Code:
~/createsvn.sh reponame
createsvn.sh:
Code:
#!/bin/bash

if [ $# -ne 1 ] 
    then echo "Usage: $0 <name>"
fi
if [ $# -ne 1 ] 
    then exit
fi

sudo svnadmin create /var/svn/$1 --fs-type fsfs
sudo svn import /var/svn/tmpproject file:///var/svn/$1 -m "initial import"
sudo find /var/svn/$1 -type f -exec chmod 660 {} \;
sudo find /var/svn/$1 -type d -exec chmod 2770 {} \;
sudo chown -R root.www-data /var/svn/$1

Die SVN-Checkout-URLs sind dann http://domain/svn/reponame/

Ich garantiere nicht dafür, dass das bei dir funktioniert, vielleicht funktioniert das nur, wenn gewisse Sachen eingestellt/installiert sind, die ich habe aber du nicht.
 
Wenn ein Webserver sich selbst restarten kann (was beim Anlegen neuer VHosts nicht unbedingt notwendig ist), ist das immer ein problematisches Verhalten, da er sich dann auch selbst beenden kann und im Fall einer Sicherheitslücke in einer Webapp der Webserver auf diese Weise recht problemlos durch einen anderen ausgetauscht werden kann. Ich würde da eher ein 'apachectl graceful' via sudoers zulassen, so dass der Apache ausschliesslich einen reload machen kann, aber keinen Restart, der ja aus start und stop besteht.

Allerdings sollte man sich auch die Frage stellen inwiefern das Anlegen eines Repos wirklich über den Apache gemacht werden muss. Du wirst ja wohl kaum ständig neue Projekte anfangen/anlegen. Mach dir lieber Skripte fertig, die du nach einem SSH-Login einfach als root aufrufen kannst. Zur Not lassen sich diese Skripte auch mittels "ssh benutzer@host '/pfad/zum/skript parameter'" aufrufen, ohne dass du erst eine Shell öffnen und die Befehle eintippen musst. Entsprechende Aliases auf deinem heimischen Rechner können diese Arbeit nochmal ein Stück vereinfachen.
 
es ist für die arbeit.
ich möchte allen mitarbeiter das schnelle anlegen ermöglichen wenn eins gebraucht wird, ohne das ich halt dafür nen finger krumm machen muss.
allerdings möcht ich auch nicht, dass da haufen leute draufrum werkeln können ;)
daher war meine idee mit nem schnell gecodeten webinterface ;)
 
Hast du dir mal USVN (User-friendly SVN) angeschaut? http://www.usvn.info/ Ggf. reicht das für deine Zwecke ja aus. Ich würde allerdings irgendwelchen Programmierern nicht vertrauen, was die SVN-Verwaltung angeht. ;) Da sollen die mir lieber eine Mail schicken, wenn sie ein neues Repos brauchen anstatt da selbst rumpfuschen zu können. Irgendwann weiss niemand mehr welches Repository von wem angelegt wurde und zu welchen Zweck und schon hast du mit dem Aufräumen des SVN mehr Arbeit als mit dem Anlegen der Repositories.
 
es ist für die arbeit.
ich möchte allen mitarbeiter das schnelle anlegen ermöglichen wenn eins gebraucht wird, ohne das ich halt dafür nen finger krumm machen muss.

Wieso nicht VPN/Authpf, für die entsprechenden Mitarbeiter SVN direkt aufmachen und direkt nutzen ohne WebDAV?

Darüber hinaus ist das anlegen von Repos und das herumfummeln an CVS immer noch Adminarbeit ;)
 
Zurück
Oben