In Ihrem Ordner svn \ repos \ YourRepo \ conf finden Sie zwei Dateien, authz und passwd . Dies sind die beiden, die Sie anpassen müssen.
In der passwd- Datei müssen Sie einige Benutzernamen und Passwörter hinzufügen. Ich gehe davon aus, dass Sie dies bereits getan haben, da Sie Leute haben, die es verwenden:
[users]
User1=password1
User2=password2
Dann möchten Sie mit der authz- Datei entsprechende Berechtigungen zuweisen :
Erstellen Sie die gewünschten konzeptionellen Gruppen und fügen Sie Personen hinzu:
[groups]
allaccess = user1
someaccess = user2
Wählen Sie dann den Zugriff aus, den sie sowohl auf Berechtigungs- als auch auf Projektebene haben.
Lassen Sie uns also unseren "All Access" -Typen von der Wurzel aus Zugriff gewähren:
[/]
@allaccess = rw
Aber geben Sie unseren "einigen Zugriff" -Typen nur Lesezugriff auf ein Projekt auf niedrigerer Ebene:
[/someproject]
@someaccess = r
Eine einfache Dokumentation finden Sie auch in den Dateien authz und passwd .
@groupname
diesem einen Bit bei der Definition von Regeln aufgerufen , es ist perfekt in Ihren Beispielen, nur um darauf hinzuweisen.@ Stephen Bailey
Um Ihre Antwort zu vervollständigen, können Sie die Benutzerrechte auch über eine Nur-Text-Datei in Ihrem Repository an den Projektmanager delegieren.
Dazu richten Sie Ihre SVN-Datenbank mit einer Standarddatei ein
authz
, die Folgendes enthält:Diese Standarddatei
authz
berechtigt die SVN-Administratoren, eine sichtbare Nur- Text-Datei in Ihrem SVN-Repository mit dem Namen "/admin/acl_descriptions.txt" zu ändern , in der die SVN-Administratoren oder Projektmanager die Benutzer ändern und registrieren.Anschließend richten Sie einen Pre-Commit-Hook ein, der erkennt, ob die Revision aus dieser Datei (und nur dieser Datei) besteht.
Wenn dies der Fall ist, überprüft das Skript dieses Hooks den Inhalt Ihrer Nur-Text-Datei und prüft, ob jede Zeile der SVN-Syntax entspricht.
Anschließend aktualisiert ein Post-Commit-Hook die
\conf\authz
Datei mit der Verkettung von:authz
dargestellte TEMPLATE- Datei/admin/acl_descriptions.txt
Die erste Iteration wird vom SVN-Administrator durchgeführt, der Folgendes hinzufügt:
Er schreibt seine Änderung fest und das aktualisiert die
authz
Datei.Dann kann der Projektmanager 'zzzz' jede Benutzergruppe und jeden gewünschten Benutzer hinzufügen, entfernen oder deklarieren. Er schreibt die Datei fest und die
authz
Datei wird aktualisiert.Auf diese Weise muss der SVN-Administrator nicht alle Benutzer für alle SVN-Repositorys einzeln verwalten .
quelle
Ein Gotcha, das mich erwischt hat:
aber
Sie müssen keinen abschließenden Schrägstrich in das Verzeichnis einfügen, sonst wird 403 für die OPTIONS-Anforderung angezeigt.
quelle
Sie können svn + ssh: verwenden und es basiert dann auf der Zugriffssteuerung auf das Repository am angegebenen Speicherort.
Auf diese Weise hoste ich ein Projektgruppen-Repository an meiner Uni, in dem ich nichts anderes einrichten kann. Nur ein Verzeichnis zu haben, das der Gruppe gehört, und svn-admin (oder was auch immer es war) darin auszuführen, bedeutet, dass ich keine Konfiguration vornehmen musste.
quelle
Obwohl ich vorschlagen würde, dass der Apache-Ansatz besser ist, funktioniert SVN Serve einwandfrei und ist ziemlich einfach.
Angenommen, Ihr Repository heißt "my_repo" und wird in C: \ svn_repos: gespeichert.
Erstellen Sie eine Datei mit dem Namen "passwd" in "C: \ svn_repos \ my_repo \ conf". Diese Datei sollte folgendermaßen aussehen:
In C: \ svn_repos \ my_repo \ conf \ svnserve.conf setzen:
Dadurch werden Benutzer gezwungen, sich anzumelden, um in dieses Repository zu lesen oder zu schreiben.
Befolgen Sie diese Schritte für jedes Repository, und schließen Sie nur die entsprechenden Benutzer in die
passwd
Datei für jedes Repository ein.quelle
Der beste Weg ist, Apache einzurichten und den Zugriff über ihn einzurichten. Überprüfen Sie das SVN-Buch auf Hilfe. Wenn Sie Apache nicht verwenden möchten, können Sie mit svnserve auch eine minimalistische Zugriffskontrolle durchführen.
quelle
Apache Subversion unterstützt die pfadbasierte Autorisierung , mit der Sie detaillierte Berechtigungen für Benutzer- und Gruppenkonten für Pfade in Ihren Repositorys (Dateien oder Verzeichnisse) konfigurieren können. Die pfadbasierte Autorisierung unterstützt drei Zugriffsebenen: Kein Zugriff, Schreibgeschützt und Lesen / Schreiben.
Pfadbasierte Berechtigungsberechtigungen werden in Berechtigungsdateien pro Repository oder pro Server mit einer speziellen Syntax gespeichert. Hier ist ein Beispiel aus SVNBook:
Wenn Sie eine komplexe Berechtigungsstruktur mit vielen Pfaden und Konten benötigen, können Sie von den von VisualSVN Server bereitgestellten GUI-basierten Berechtigungsverwaltungstools profitieren:
Repository-Berechtigungen in VisualSVN Server Manager
Repository-Berechtigungen in PowerShell
Benutzer ohne Administratorrechte können Berechtigungen über das RepoCfg-Tool verwalten
quelle