[Subversion] gestion de droits d'acces a un repository

gestion de droits d'acces a un repository [Subversion] - Logiciels - Linux et OS Alternatifs

Marsh Posté le 28-04-2006 à 17:39:29    

Bonjour,
 
J'aurai une petite question concernant la configuration de subversion.
Je souhaite mettre en place un serveur subversion (svnserve) et surtout gerer des droits d'acces dessus (sans passer par des comptes et acl systeme).
pour cela il semblerait que ce soit le fichier authz dans le repertoire conf (cree a la creation d'un repository) qui gere cela.
mais je n'arrive pas a le faire fonctionner:
si je donne acces a tout le monde:

[/]
* = r ou rw


ca fonctionne:

moi@waha:~/testssvn$ svn co svn://moi@waha/depot-test
A    depot-test/toto
A    depot-test/tata
Révision 2 extraite.


par contre, si je rajoute mon user:

[/]
moi = r ou rw


la ca ne fonctionne plus du tout, j'ai droit a:

moi@waha:~/testssvn$ svn co svn://moi@waha/depot-test
svn: Autorisation refusée


le user 'moi' est bien sur declare dans le fichier passwd (pas celui systeme, mais celui du repository).
et voici le fichier svnserve.conf:

[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz


si vous pouviez m'aiguiller (doc, aide, je prends tout ;) ), parceque je galere pas mal, je n'ai pas l'impression que ce soit le user que je specifie qui soit utilise.
Pis si vous savez comment avoir plus d'infos sur le demon svnserve (qu'il soit verbeux, il n'a pas d'option de debug et du coup je ne sais pas ce qu'il se passe de son cote :/ ), ca m'interesse aussi ;)
 
Merci.
 
Edit: ah oui, j'oubliai, j'utilise la version 1.3.1


Message édité par zoidberg le 28-04-2006 à 17:40:46
Reply

Marsh Posté le 28-04-2006 à 17:39:29   

Reply

Marsh Posté le 28-04-2006 à 18:21:59    

Bon, je viens de me rendre compte que lors de mes essais precedents j'avais utilise un autre compte (genre: svn co svn://zozo@waha/depot-test).
il semblerait que svn ne stocke qu'un seul compte par utilisateur et par repository, donc je ne peux pas me connecter a ce repository avec un user different, a chaque fois, meme si je specifie un autre compte, il prend celui qu'il a enregistre de precedemment (dans le repertoire ~/.subversion/auth/svn/simple/)
bon, faut le savoir ca, maintenant que je suis au courant ca marche mieux, mais j'ai quand meme un souci pour construire le fichier authz:
svnserve est lance avec l'option "-r /home/svn", sous /home/svn j'ai cree plusieurs repos, repos1, repos2, ...
mon probleme vient du fait que je ne sais pas quoi mettre entre les crochets (precedemment je mettais [/] mais ca me donne acces ou pas a tout, ca ne permet pas de configurer par repository):
j'ai tente: [/home/svn/repos1] [/repos1] [repos1] [repository: /repos1] [repository: /home/svn/repos1] [repository:repos1] ... rien ne fonctionne, donc je suis un peu embette.
le probleme est que meme dans le pdf officiel je ne trouve rien au sujet de ce fichier, donc j'y vais un peu au pif :/
si vous avez la syntaxe je suis preneur ;)
merci d'avance.


Message édité par zoidberg le 28-04-2006 à 18:22:38
Reply

Marsh Posté le 02-05-2006 à 14:17:06    

Allez, siouplait, personne n'a une idee du fonctionnement de ce fichier authz?

Reply

Marsh Posté le 08-05-2006 à 21:22:37    

En reprenant ton exemple "-r /home/svn", sous /home/svn j'ai cree plusieurs repos, repos1, repos2, ...  
 
Admettons l'arbo sous le depot repos1/:
    repos1/trunk     -> pour l'integration
    repos1/tags      -> pour les versions avec label
    repos1/branches  -> pour les developpements
 
Prenons les utilisateurs nom1 (un intégrateur), nom2 (un developpeur)
 
Dans le fichier authz tu peux mettre des regles par groupe d'utilisateur:
### Definition des groupes
[groups]
admin=admin
responsable=
validation=
integration=nom1
developpement=nom1,nom2
documentation=
invitation=
 
######################################################
### Gestion depot repos
######################################################
# Accès complet => RW pour admin - R pour les autres
[repos1:/]
@admin = rw
@responsable = r
@integration = r
@developpement = r
 
# Accès branche principale => INTEGRATION
[repos1:/trunk]
@integration = rw
 
# Accès tags => INTEGRATION
[repos1:/tags]
@validation = r
@integration = rw
@invitation = r
 
# Accès branches => DEVELOPPEMENT
[repos1:/branches]
@integration = rw
@developpement = rw
 
ou des regles par utilisateur:
[repos1:/branches]
nom1 = rw
nom2 = r
 
Attention, les logins nom1 et nom2 sont en minuscules (note: sous windows tu peux mettre en MAJ les mots de passe dans le fichier passwd sans que cela ne pose probleme).
 
Pour désactiver le cache d’identification, il faut activer la ligne « store-auth-creds = no » du fichier « %APPDATA% »/Subversion/config (sous windows).
Par défaut, subversion utilise le login courant pour l’identification et Si tu souhaites changer d’identification, il faut soit utiliser l’option --username <login> dans les commandes ou soit activer la variable store-auth-creds=no pour s’identifier à chaque commande.
 
Lorsqu’une identification subversion échoue plusieurs fois sur un dépôt, une clé est enregistrée dans le cache subversion de l’utilisateur pour refuser les l’accès à l’utilisateur sur le dépôt. Pour supprimer cette clé, le plus simple est de supprimer tous les fichiers se trouvant dans « %APPDATA% »/Subversion/auth/svn.simple (encore sous windows! désolé j'ai pas d'unix sous la main).
 
Si cela peut t'aider ...
 
Philippe


Message édité par pbardaud le 08-05-2006 à 21:25:11
Reply

Marsh Posté le 09-05-2006 à 11:38:32    

Oki merci bien pour les details, ca m'aide beaucoup.
En fait n'etant pas developpeur ni utilisateur de svn/cvs je ne comprenais pas trop le fonctionnement, notemment des 'sous projets' qu'on cree sous le repository, il peut y en avoir plusieurs, c'est cela qu'il me manquait ;)
 
Encore une petite question: dans ton exemple est-ce que le groupe admin a acces en ecriture a autre chose que / ? en fait est-ce que les droits sont herites ou bien est-ce qu'il faut les reconduire a chaque fois? parceque d'apres mes tests ils ne sont pas herites, c'est a dire que l'admin ne peut que cree un depot dans / et il n'a pas le droit d'aller plus bas.
 
Et une derniere: quelle est la difference entre les notations [/] et [repos:/]? de toute facon le fichier authz ne sera effectif que pour 'repos' non? donc pas besoin de specifier?
 
Merci en tout cas pour tout ca  :jap:
 
Edit: rectification, apres tests il semblerait que les droits soient bien herites, j'ai rien dit ;)


Message édité par zoidberg le 09-05-2006 à 15:22:20
Reply

Marsh Posté le 10-05-2006 à 18:47:07    

Si tu utilises le fichier authz c'est que tu as mis en place du client-serveur svnserve (ou autre) qui gère plusieurs repositories comme tu l'indiques: repo1, repo2 ...
Bref, la notation [/] s'applique à tous tes repositories tandis que [repo1:/] ne s'applique qu'au repository repo1. Donc tu peux faire moduler les autorisations en fonctions de tes repos (si tu en as plusieurs).
Oui, les droits sont propagés dans l'arbo du repo, et heureusement!!
 
Philippe


Message édité par pbardaud le 10-05-2006 à 18:47:29
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed