Comment ajouter un utilisateur dans SVN?

12

MISE À JOUR # 3: Je pense que je l'ai trouvé.
/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 est au format

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

J'ai l'impression d'avoir utilisé un outil de ligne de commande pour ajouter les utilisateurs mais je ne me souviens pas quoi.

MISE À JOUR # 2: localiser http.conf donne ces résultats

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

Je ne vois rien dans l'un d'eux qui semblait lié à la subversion. Je peux poster les fichiers ici si cela peut aider.

question d'origine:

Il y a quelques années, j'ai installé et configuré subversion. Je ne me souviens pas comment j'ai ajouté un utilisateur. Je dois en ajouter un autre maintenant, mais lorsque j'ai vérifié le passwdfichier, aucun utilisateur n'était défini, et rien n'était défini dans le svnserve.conffichier - les deux avaient tout commenté. C'est le seul moyen que je puisse trouver pour ajouter des utilisateurs via Google. J'ai donc essayé:

passwd

user1 = password1
user2 = password2

svnserve.conf

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

mais je ne peux toujours y accéder qu'avec user1, même si ce user1n'est pas un utilisateur sur le serveur linux. Existe-t-il un autre moyen d'ajouter des utilisateurs ou ai-je un problème avec ma configuration?

mise à jour:

J'ai ajouté la ligne suivante à mon fichier svnserve.conf

authz-db = authz

alors mon fichier authz ressemble à ceci

authz [groupes] devs = user1, user2

[repos:/]
devs = rw

ne fonctionne toujours pas. le mot de passe pour user1 est différent dans le mot de passe que j'utilise pour me connecter. Je pense donc que la subversion ne l'utilise pas du tout pour l'authentification. d'autant plus que le fichier était vide auparavant et que je pouvais toujours me connecter. existe-t-il un moyen de s'assurer qu'il utilise les fichiers svnserve, passwd, authz pour l'authentification? y a-t-il un autre fichier de configuration quelque part?

Scott
la source

Réponses:

8

L'authentification Subversion se compose généralement de deux parties. Le premier est un référentiel de mots de passe quelconque. Le second est une liste de contrôle d'accès. La liste des mots de passe est utilisée pour authentifier les utilisateurs et vérifier leurs mots de passe, mais vous devez également définir quels utilisateurs ont accès à quelles ressources.

Il existe plusieurs types de référentiels de mots de passe. Je ne suis pas familier avec le type passwd , j'utilise le type htpasswd qui utilise les mêmes fichiers utilisateur / mot de passe qu'apache fait pour l'authentification des utilisateurs. J'ajoute des utilisateurs à ce fichier avec htpasswd .htpasswd username. Il semble que vous ayez effectué cette étape correctement pour votre type de mot de passe.

La deuxième partie est l'ACL. Subversion devrait avoir un fichier appelé accessquelque part avec des sections pour chacun de vos référentiels. Vous devrez ajouter une ligne sous le référentiel auquel vous souhaitez accéder username = rwpour donner à cet utilisateur un accès en lecture / écriture à ce référentiel.

Caleb
la source
je vais essayer quand je rentrerai. cela semble familier.
scott
Je ne pense pas que ce soit ça. il n'y avait pas de fichier .htpasswd sur mon serveur.
scott
6

La configuration du serveur SVN (principalement) se compose de trois fichiers:

  • authz
  • passwd
  • svnserve.conf Ceci est le fichier principal (authz-db = authz)

Donc, vous venez de nous fournir deux fichiers de configuration, veuillez vérifier que le fichier authz contient:

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

pour le test de projet que vous souhaitez accorder à l'accès

Sergey
la source
J'ai essayé ça n'a pas marché. le mot de passe que j'utilise pour me connecter en tant qu'utilisateur1 est différent de celui que j'ai dans le fichier passwd. donc je ne pense pas qu'il l'utilise du tout.
scott
s'il vous plaît, vérifiez que vous utilisez le bon fichier de configuration: à quoi sert la sortieps aux|grep svn
Sergey
Et encore une question. Comment obtenez-vous la structure de votre répertoire repos (svn: // ou via le serveur http)?
Sergey
root 19578 0.0 0.3 4016 664 tty1 R+ 05:15 0:00 grep svn
scott
via le serveur http
scott
4
## Create testuser ##
htpasswd -m /etc/svn-auth-users testuser

New password:

Re-type new password:

Adding password for user testuser2

Remarque: Utilisez exactement le même nom de fichier et de chemin d'accès que celui utilisé dans le subversion.conffichier. Cet exemple utilise un /etc/svn-auth-usersfichier.

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

Il vous demandera alors le mot de passe et confirmera le mot de passe.

Test Test
la source
1

vous pouvez utiliser la commande,

sudo htpasswd -cm /etc/apache2/dav_svn.passwd XXXXX
  • XXXXX est le nom d'utilisateur, puis il vous demandera le mot de passe

c'est seulement si vous configurez svn avec apache, qui ne lit pas les dossiers confn svn

Supun Sameera
la source