Wie beschränke ich den Repository-Zugriff über WebSVN?
Hinweis: ich ursprünglich gebeten, diese Frage auf serverfault.com aber habe nur eine Antwort, so weit, und je mehr ich darüber nachdenke, desto mehr erkenne ich, dass es wohl besser ist auf stackoverflow.
Habe ich mehrere subversion-Projektarchive, die serviert werden, bis Apache 2.2 und WebDAV. Sie befinden sich alle in einem zentralen Ort, und habe das debian-administration.org Artikel als Grundlage (ich ließ die Verwendung der Datenbank-Authentifizierung für eine einfache htpasswd-Datei).
Seitdem habe ich auch begonnen, mit WebSVN. Mein Problem ist, dass nicht alle Benutzer auf dem system sollte in der Lage sein, um Zugriff auf die verschiedenen repositories, und die Standard-Installation von WebSVN ist es, wer sich authentifizieren können.
Nach dem WebSVN-Dokumentation, der beste Weg, um dieses ist die Verwendung von subversion, die Pfad-access-system, so sah ich zu erzeugen, wird mit der Direktive AuthzSVNAccessFile.
Wenn ich das Tue, obwohl ich immer "403 Forbidden" - Meldungen.
Meine Dateien sehen wie folgt aus:
Habe ich default-policy-Einstellungen in einer Datei:
<Location /svn/>
DAV svn
SVNParentPath /var/lib/svn/repository
Order deny,allow
Deny from all
</Location>
Jedes repository wird eine policy-Datei wie folgt:
<Location /svn/sysadmin/>
Include /var/lib/svn/conf/default_auth.conf
AuthName "Repository for sysadmin"
require user joebloggs jimsmith mickmurphy
</Location>
Den default_auth.conf-Datei enthält:
SVNParentPath /var/lib/svn/repository
AuthType basic
AuthUserFile /var/lib/svn/conf/.dav_svn.passwd
AuthzSVNAccessFile /var/lib/svn/conf/svnaccess.conf
Bin ich nicht ganz sicher, warum muss ich die zweite SVNParentPath in default_auth.conf, aber ich hab nur Hinzugefügt, dass heute, da war ich immer Fehlermeldungen als Ergebnis der addition der Direktive AuthzSVNAccessFile.
Mit einem Total tabulosen access-Datei
[/]
joebloggs = rw
das system funktionierte gut (und wurde im wesentlichen unverändert), aber da ich sobald ich starten versucht, jede Art von Einschränkungen wie
[sysadmin:/]
joebloggs = rw
anstelle, bekomme ich die "Berechtigung verweigert" - Fehler wieder. Die Einträge in der Protokolldatei sind:
[Thu May 28 10:40:17 2009] [error] [client 89.100.219.180] Access denied: 'joebloggs' GET websvn:/
[Thu May 28 10:40:20 2009] [error] [client 89.100.219.180] Access denied: 'joebloggs' GET svn:/sysadmin
Was muss ich tun, um diese zu arbeiten? Apache konfiguriert haben, falsch, oder ist mein Verständnis von der svnaccess.conf-Datei falsch?
Wenn ich dabei bin, über das der falsche Weg, ich habe keine Besondere Anlage zu meinem Gesamtkonzept, so fühlen sich frei, um alternativen anzubieten als auch.
UPDATE (20090528-1600):
Habe ich versucht zu implementieren diese Antwort, aber ich kann immer noch nicht bekommen, es richtig zu arbeiten.
Ich weiß, die meisten von der Konfiguration ist korrekt, denn ich habe
[/]
joebloggs = rw
am start und 'joebloggs' hat dann alle den richtigen Zugang.
Wenn ich versuche zu gehen repository-spezifisch, obwohl, etwas zu tun, wie
[/]
joebloggs = rw
[sysadmin:/]
mickmurphy = rw
dann bekam ich einen permission denied-Fehler, für mickmurphy (joebloggs funktioniert noch), mit einem Fehler ähnlich dem, was ich bereits zuvor
[Thu May 28 10:40:20 2009] [error] [client 89.100.219.180] Access denied: 'mickmurphy' GET svn:/sysadmin
Außerdem, ich vergaß zu erklären bereits, dass alle meine repositories sind unter
/var/lib/svn/repository
UPDATE (20090529-1245):
Immer noch kein Glück bekommen dies funktioniert, aber alle Zeichen scheinen zu zeigen, um das Problem mit Pfad-access-control in subversion funktioniert nicht richtig. Meine Vermutung ist, dass ich nicht im apache konfiguriert oder svn richtig zu erkennen meine repository-Struktur.
Dies ist, weil die '[ /] ' - Eintrag scheint zu funktionieren perfekt.
Tritt es auch mir, dass diese Frage gehört wohl besser auf StackOverflow?
InformationsquelleAutor kaybenleroll | 2009-06-02
Du musst angemeldet sein, um einen Kommentar abzugeben.
Erzeugen Sie md5-Passwort-Dateien des apache - htpasswd-Dienstprogramm (befindet sich im bin-Verzeichnis).
Dann, in Ihre httpd.conf:
Dies erfordert eine Benutzer-Authentifizierung, und nur Benutzername/Passwort-Kombinationen, die sich in der Passwort-Datei (aus dem htpasswd) werden akzeptiert.
Darüber hinaus können Sie auch angeben, nur-lese-Zugriff für alle, aber die Passwort-Datei für übertragungen, etc durch die folgenden (innerhalb der location-tag):
Wenn ich verstehen, was Sie brauchen, das sollte es lösen, für user-level-Zugriff.
EDIT:
Ich vergaß zu erwähnen, dass, wenn Sie tun, verwenden Sie einen Passwort-Datei, stellen Sie sicher, es ist nicht zugänglich über das web (also kein alias oder das Verzeichnis zugeordnet sind, in apache, wo es gespeichert ist).
hi @Chris S können Sie mir helfen, dieses stackoverflow.com/questions/13541629/...
InformationsquelleAutor Chris S
Müssen Sie geben, jeder, der Lesezugriff auf die root. Danach entfernen Sie lese-Zugang aus bestimmten repositories wie erforderlich. Die Arbeit mit Benutzergruppen kann helfen, die Konfiguration klein.
Könnte man es versuchen wie diesem:
InformationsquelleAutor Lars