0 votes

Contrôle d'accès pour plusieurs projets à l'aide de SVN

Je suis nouveau sur SVN et j'essaie de configurer le contrôle d'accès pour plusieurs projets sur SVN. Je veux utiliser un seul fichier de mots de passe et un seul fichier d'authentification pour le contrôle d'accès de tous les projets. Mais cela ne fonctionne pas. Voici mes configurations. Ma structure de répertoire :

/srv
|--svn
   |--repos
      |-- conf
          |-- passwd
          |-- authz
      |-- projectX
      |-- projectY
      |-- projectZ

les entrées de projectX/conf/svnserve.conf pour projectX :

[general]
anon-access = none
auth-access = write
password-db = /srv/svn/repos/conf/passwd
authz-db = /srv/svn/repos/conf/authz
realm = Project Repository

La même configuration est utilisée pour le projetY et le projetZ. Entrées pour /srv/svn/repos/conf/passwd :

[users]
user1 = password
user2 = password
user3 = password

Entrées pour /srv/svn/repos/conf/authz :

[/]
* = 
user1 = rw
[projectX:/]
user2 = rw
user3 = r
[projectY:/]
user3 = rw
user2 = r
[projectZ:/]
user2 = r
user3 = r

Ainsi, l'utilisateur2 doit avoir un accès en lecture-écriture au projetX et l'utilisateur3 doit avoir un accès en lecture seule au projetX. Mais seul l'utilisateur 1 peut accéder à tous ces référentiels. L'utilisateur 2 et l'utilisateur 3 ne peuvent jamais accéder à aucun des référentiels. A chaque fois, il donne le message d'erreur : Commit failed (Authorization failed !) Quelqu'un peut-il m'aider à trouver l'erreur ? J'utilise la version 1.6.5 de Subversion sur le serveur et 1.6.4 sur le client.

1voto

markonian Points 36

J'ai utilisé avec succès cette structure avec Subversion 1.4 :

Subversion
|-- Config
    |-- a-users
    |-- b-users
|--Repositories
    |-- x-repos
        |-- conf
            |-- svnserve.conf
    |-- y-repos
        |-- conf
            |-- svnserve.conf

... où les fichiers svnserve.conf contenaient une ligne comme celle-ci :

password-db = ../../../Config/a-users

De cette façon, je peux utiliser un seul fichier password-db pour un nombre quelconque de référentiels ou je peux avoir un fichier password-db distinct pour chaque référentiel.

Si vous utilisez Subversion > 1.4, vous devrez regarder comment la configuration a changé dans les nouvelles versions. Un point est que, au moins dans 1.4, les chemins relatifs fonctionnent. J'espère que cela vous aidera.

Mise à jour : je suis sur unix (Mac OS X).

0voto

ur. Points 2130

Je pense, la ligne

* =

est la cause de vos problèmes. Je vous recommande également d'utiliser une section [groupes] et d'ajouter vos utilisateurs aux groupes, même si vous n'avez actuellement qu'un seul utilisateur par groupe.

0voto

Andrew Keith Points 5627

Je pense que c'est parce que l'utilisateur 2 et l'utilisateur 3 n'ont pas accès à [/].

Ce n'est qu'une supposition ; je ne sais pas vraiment comment configurer SVN.

0voto

Si. Points 10543

Assurez-vous que vous avez le CaSe des dépôts (projectX...) sont correctes dans les deux authz et sur l'URL client. Subversion a un question désagréable lors de l'utilisation d'authz où les vérifications sont des cas sur mais les commits sont sensibles à la casse.

Voici un exemple :

svn co svn://server/projectx/trunk .  // success
... // do work
svn ci // fail 

svn co svn://server/projectX/trunk .  // success
... // do work
svn ci // success

J'ai également eu un problème où la dernière ligne dans authz et passwd n'était pas une ligne blanche, c'est-à-dire que l'ajout de CRLF à la dernière ligne a réglé le problème. C'était il y a longtemps, alors peut-être que c'est maintenant réglé.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X