[linux-l] Subversion und Authentifizierung durch Apache (was: Neuorganisation der Berlinux-Seiten)

Volker Grabsch vog at notjusthosting.com
Mo Nov 21 01:38:02 CET 2005


On Mon, Nov 21, 2005 at 12:46:58AM +0100, Mike Dornberger wrote:
> > Wenn das CGI-Script jedoch das Erfassen der Login-Informationen
> > komplett dem Apache überlässt (via HTTP-Auth), dann kennt es nur
> > den Usernamen und nicht das Passwort. Aber es muss sich irgendwie
> 
> Es reicht unter Umständen vollkommen aus, nur den Benutzernamen zu kennen.
> Das CGI-Script könnte z. B. snvserv -t --tunnel-user=<username> aufrufen.
> Auch wenn das Repository dem User gehört, unter dessen Rechten das
> CGI-Script bzw. snvserv läuft, werden die Änderungen im Log trotzdem User
> username zugeschrieben.

Okay, dann können pauschal alle CGI-Scripte beliebige Änderungen im
Repository vornehmen. Das ist ja genauso schlimm!

Oder du lässt das CGI-Script nur unter einem bestimmter User laufen,
und svnserv lässt sich nur von diesem User Befehle erteilen.

In beiden Fällen kommst du ohne Passwort aus, das mag sein, aber das
eigentlich Problem ist doch, dass das CGI-Script kompletten
Schreibzugriff kriegt, statt genau die Rechte zu haben, die der User
auch hätte, wenn er "selbst" einen Commit macht.

Das Webinterface soll schließlich lediglich ein
	"svn update - bearbeiten - svn commit"
erledigen für diejenigen, die kein Working-Directory zu Hause wollen.

> Die Zugriffskontrolle auf einzelne Pfade muß man derzeit (svn 1.1) noch über
> die Hook-Scripts machen. (Später sollen dann mal ACLs eingesetzt werden.)
> 
> (Siehe auch svnbook: http://svnbook.red-bean.com/en/1.1/ch06.html )

Dafür würde ich lieber dav_svn_autz einsetzen. Und ausschließlich
Zugriff via HTTP(S) auf das Repository, kein SSH oder ähnliches.

Und das Webinterface sollte im Prinzip genau diesen Weg ebenfalls
gehen, d.h. die URL zum Repository kriegen, sich mit den Userdaten
authentifizieren, und das Zeug committen.

Keine extra Hintertür, um dem CGI-Script volle Schreibrechte auf
alles zu geben, bloß um dann die *Ausführung* des Scriptes zu
beschränken ... dann hast du nämlich spätestens dann ein Problem,
wenn im Subversion-Repository auch User drin sind, die auf das Wiki
keine Schreibrechte kriegen sollen. Da kannst du dann nicht mehr
einfach die selbe ".htaccess" nehmen, weil dann jeder SVN-User,
volle Schreibrechte auf alles hat, egal was in der Authz-Datei
steht. Dann müsste sich das CGI-Script auch noch um die Autorisierung
kümmern, und spätestens dann wird's absurd. Da soll sich das CGI-Script
doch lieber kurz das Passwort merken, und im Namen des Users arbeiten,
statt irgendeine Sonderrolle einzunehmen.

Hat auch den Vorteil, dass der Subversion-Server ganz woanders
sein kann, oder würdest du auf dem anderen System dann extra den
SSH-PublicKey des Wiki-Systemaccounts eintragen?

Dieses grundsätzliche Verhalten hat auch z.B. bei Squirrelmail zu
großen Vorteilen geführt. Es macht im Prinzip genau das, was auch
das Mailprogramm macht. Wenn IMAP läuft, läuft auch Squirrelmail,
ohne extra Zugang zum Mail-Verzeichnis, ohne Sorgen vor eventuell
fehlerhaftem Autorisierungs-Code. So hat das zu sein.


Viele Grüße,

	Volker

-- 
Volker Grabsch
---<<(())>>---
Administrator
NotJustHosting GbR



Mehr Informationen über die Mailingliste linux-l