Wenn man die Berechtigungen in einem Subversion Repository feiner konfigurieren möchte hat man die Möglichkeit in der Datei /etc/apache2/mods-enabled/dav_svn.conf ein zusätzliche Authentifizierungs-stufe zu aktivieren.
Dazu kommentiert man die Zeile AuthzSVN….. wieder ein, wie dargestellt:
# Uncomment the following line to enable Authz Authentication
AuthzSVNAccessFile /etc/apache2/dav_svn.authz
Weiter unten in der Datei kommentiert man zwei Zeilen aus:
#<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
#</LimitExcept>
Die Zeile Require valid-user bleibt unverändert. Nun muss man natürlich noch die Datei anlegen, deren Pfad man weiter oben angegeben hat (/etc/apache2/dav_svn.authz).
sudo touch /etc/apache2/dav_svn.authz
Danach ruft man einen Editor wie vi auf:
sudo nano /etc/apache2/dav_svn.authz
und fügt folgende Text ein:
[groups]
Admin = myAdmin
Entwickler1 = lilli, chris
Entwickler2 = boris, gerrit
# Standardzugriffsrecht für alle Projekte
# greift immer da wo nichts spezifischeres angelegt wurde
# hier:
# [/] -> root des Repository
# * = -> Leserechte für alle entziehen
# * = r -> Leserechte für alle setzen
# @Admin = rw -> Schreib- und Leserechte für die Gruppe Admin
[/]
* =
@Admin = rw
# Spezielle Zugriffsregelung für einzelne Projekte
# Projekt1
# Gruppe Entwickler1 hat Lese- und Schreibrechte
# Gruppe Entwickler2 hat nur Leserechte
# User boris aus Gruppe Entwickler2 bekommt Lese- und Schreibrechte
[/projekt1]
@Entwickler1 = rw
@Entwickler2 = r
boris = rw
# Projekt2
# Gruppe Entwickler1 hat Lese- und Schreibrechte
# Gruppe Entwickler2 hat keine Rechte
# User gerrit aus Gruppe Entwickler2 bekommt Leserechte
[/projekt2]
@Entwickler1 = rw
@Entwickler2 =
gerrit = r
Wenn man nun den Apache neu startet
sudo /etc/init.d/apache2 restart
und sich an dem Repository anmeldet sollte man nur noch Zugriff auf die angegebenen Verzeichnisse haben bzw. evtl. nur Lesezugriff haben.