Wie füge ich einen Benutzer in SVN hinzu?

12

UPDATE 3: Ich glaube, ich habe es gefunden.
/etc/httpd/conf.d/subversion.conf

<Location /repos>
        DAV svn
        SVNPath /var/www/svn/repos
        AuthType Basic
        AuthName "Subversion repos"
        AuthUserFile /etc/svn-auth-conf
        Require valid-user
</Location>

svn-auth-conf hat das Format

user1:$apr1$randome letters ... $random letters and numbers

Ich habe das Gefühl, dass ich ein Befehlszeilenprogramm verwendet habe, um die Benutzer hinzuzufügen, aber ich kann mich nicht erinnern, was.

UPDATE 2: Suchen Sie http.conf, um diese Ergebnisse zu erhalten

/usr/share/logwatch/default.conf/logfiles/http.conf
/usr/share/logwatch/default.conf/services/http.conf

Ich sehe in keinem von beiden etwas, das mit Subversion zu tun hat. Ich kann die Dateien hier posten, wenn es hilft.

ursprüngliche Frage:

Vor einigen Jahren habe ich Subversion installiert und eingerichtet. Ich kann mich nicht erinnern, wie ich einen Benutzer hinzugefügt habe. Ich muss jetzt eine weitere hinzufügen, aber als ich die passwdDatei überprüfte, wurden weder Benutzer definiert, noch wurde etwas in der Datei festgelegtsvnserve.conf Datei festgelegt - beide hatten alles auskommentiert. Nur so kann ich Nutzer über Google hinzufügen. Also habe ich es versucht:

passwd

user1 = password1
user2 = password2

svnserve.conf

anon-access = none
auth-access = write
pasword-db = passwd
authz-db - authz
realm = repos

aber ich kann immer noch nur mit darauf zugreifen user1, obwohl ich user1kein Benutzer auf dem Linux-Server bin . Gibt es eine andere Möglichkeit, Benutzer hinzuzufügen, oder ist in meiner Konfiguration etwas nicht in Ordnung?

aktualisieren:

Ich habe die folgende Zeile zu meiner Datei svnserve.conf hinzugefügt

authz-db = authz

dann sieht meine authz-Datei so aus

authz [Gruppen] devs = Benutzer1, Benutzer2

[repos:/]
devs = rw

funktioniert immer noch nicht. Das Passwort für Benutzer1 unterscheidet sich im Passwort von dem, mit dem ich mich anmelde. Ich denke also, dass Subversion das überhaupt nicht zur Authentifizierung verwendet. Zumal die Datei vorher leer war und ich mich noch anmelden konnte. Gibt es eine Möglichkeit, um sicherzustellen, dass die Dateien svnserve, passwd, authz zur Authentifizierung verwendet werden? Gibt es irgendwo eine andere Konfigurationsdatei?

Scott
quelle

Antworten:

8

Die Subversion-Authentifizierung besteht normalerweise aus zwei Teilen. Das erste ist eine Art Passwort-Repository. Die zweite ist eine Zugriffssteuerungsliste. Die Kennwortliste wird verwendet, um Benutzer zu authentifizieren und ihre Kennwörter zu überprüfen. Sie müssen jedoch auch festlegen, welche Benutzer Zugriff auf welche Ressourcen haben.

Es gibt verschiedene Kennwort-Repository-Typen. Ich bin mit dem Typ passwd nicht vertraut. Ich verwende den Typ htpasswd , der dieselben Benutzer- / Kennwortdateien verwendet, die Apache für die Benutzerauthentifizierung verwendet. Ich füge dieser Datei Benutzer hinzu mit htpasswd .htpasswd username. Es sieht so aus, als hätten Sie diesen Schritt für Ihren Passworttyp korrekt ausgeführt.

Der zweite Teil ist die ACL. Subversion sollte eine Datei accessmit Abschnitten für jedes Ihrer Repositorys haben. Sie müssen eine Zeile unter dem Repository hinzufügen, auf das Sie zugreifen möchten username = rw, um diesem Benutzer Lese- / Schreibzugriff auf dieses Repository zu gewähren.

Caleb
quelle
Ich werde es versuchen, wenn ich nach Hause komme. das kommt mir bekannt vor.
Scott
Ich denke nicht, dass es das ist. Auf meinem Server befand sich keine .htpasswd-Datei.
Scott
6

Die SVN-Serverkonfiguration besteht (hauptsächlich) aus drei Dateien:

  • authz
  • passwd
  • svnserve.conf Dies ist die Hauptdatei (authz-db = authz)

Wenn Sie uns also nur zwei Konfigurationsdateien zur Verfügung stellen, überprüfen Sie bitte, ob die Authz-Datei Folgendes enthält:

#[the_name_of_repository:/path_in_that_repository]
[test:/]
user1 = rw
user2 = rw

für das Projekt Test whant Sie Zugriff zu gewähren

Sergey
quelle
Ich habe es versucht, es hat nicht funktioniert. Das Passwort, mit dem ich mich als Benutzer1 anmelde, unterscheidet sich von dem, das ich in der passwd-Datei habe. Ich glaube also nicht, dass es überhaupt benutzt wird.
Scott
Bitte überprüfen Sie, ob Sie die richtige Konfigurationsdatei verwenden: Was ist die Ausgabe fürps aux|grep svn
Sergey
Und noch eine Frage. Wie erhalten Sie Ihre Repos-Verzeichnisstruktur (svn: // oder über den http-Server)?
Sergey
root 19578 0.0 0.3 4016 664 tty1 R+ 05:15 0:00 grep svn
Scott
über http server
scott
4
## Create testuser ##
htpasswd -m /etc/svn-auth-users testuser

New password:

Re-type new password:

Adding password for user testuser2

Hinweis: Verwenden Sie genau den gleichen Datei- und Pfadnamen wie in der subversion.confDatei. In diesem Beispiel wird eine /etc/svn-auth-usersDatei verwendet.

user139264
quelle
2
htpasswd -m /etc/subversion/svn-auth-file yourusername

Es wird dann nach dem Passwort gefragt und das Passwort bestätigt.

Test Test
quelle
1

Sie können Befehl verwenden,

sudo htpasswd -cm /etc/apache2/dav_svn.passwd XXXXX
  • XXXXX war der Benutzername, dann wird nach dem Passwort gefragt

Dies ist nur möglich, wenn Sie svn mit Apache einrichten, die keine svn conf-Ordner lesen

Supun Sameera
quelle