Note: À l'origine, j'ai posé cette question sur serverfault.com mais je n'ai reçu qu'une seule réponse à ce jour, et plus j'y pense, plus je me rends compte que c'est probablement mieux sur stackoverflow.Comment restreindre l'accès au référentiel via WebSVN?
J'ai plusieurs dépôts subversion qui sont servis par Apache 2.2 et WebDAV. Ils sont tous situés dans un endroit central, et j'ai utilisé cet article debian-administration.org comme base (j'ai abandonné l'utilisation de l'authentification de base de données pour un simple fichier htpasswd cependant).
Depuis lors, j'ai également commencé à utiliser WebSVN. Mon problème est que tous les utilisateurs du système ne devraient pas être en mesure d'accéder aux différents référentiels, et la configuration par défaut de WebSVN est de permettre à tous ceux qui peuvent s'authentifier. Selon la documentation de WebSVN, le meilleur moyen d'y parvenir est d'utiliser le système d'accès de chemin subversion. J'ai donc cherché à le créer en utilisant la directive AuthzSVNAccessFile. Lorsque je fais cela, je continue à recevoir des messages "403 Interdits".
Mes fichiers se présenter comme suit:
Je paramètres de stratégie par défaut dans un fichier:
<Location /svn/>
DAV svn
SVNParentPath /var/lib/svn/repository
Order deny,allow
Deny from all
</Location>
Chaque dépôt obtient un fichier de stratégie comme ci-dessous:
<Location /svn/sysadmin/>
Include /var/lib/svn/conf/default_auth.conf
AuthName "Repository for sysadmin"
require user joebloggs jimsmith mickmurphy
</Location>
Le default_auth. fichier conf contient:
SVNParentPath /var/lib/svn/repository
AuthType basic
AuthUserFile /var/lib/svn/conf/.dav_svn.passwd
AuthzSVNAccessFile /var/lib/svn/conf/svnaccess.conf
Je ne suis pas tout à fait sûr de savoir pourquoi j'ai besoin du second SVNParentPath dans default_auth.conf, mais je viens d'ajouter cela aujourd'hui car je recevais des messages d'erreur suite à l'ajout de la directive AuthzSVNAccessFile.
Avec un fichier d'accès totalement permissive
[/]
joebloggs = rw
le système a bien fonctionné (et est resté pratiquement inchangé), mais comme je l'ai dès que je commence à essayer d'ajouter tout type de restrictions telles que
[sysadmin:/]
joebloggs = rw
à la place, j'obtiens à nouveau les erreurs 'Permission denied'. Les entrées du fichier journal sont:
[Thu May 28 10:40:17 2009] [error] [client 89.100.219.180] Access denied: 'joebloggs' GET websvn:/
[Thu May 28 10:40:20 2009] [error] [client 89.100.219.180] Access denied: 'joebloggs' GET svn:/sysadmin
Que dois-je faire pour que cela fonctionne? Avez-vous mal configuré apache, ou ma compréhension du fichier svnaccess.conf est-elle incorrecte?
Si je m'y prends mal, je n'ai aucun attachement particulier à mon approche globale, alors n'hésitez pas à proposer des alternatives.
MISE À JOUR (20090528-1600):
j'ai essayé de mettre en œuvre this answer, mais je ne peux toujours pas faire fonctionner correctement.
Je sais que la plupart de la configuration est correcte, comme je l'ai ajouté
[/]
joebloggs = rw
au début et « joebloggs » a alors tout l'accès correct.
Lorsque je tente d'aller spécifiques au dépôt cependant, faire quelque chose comme
[/]
joebloggs = rw
[sysadmin:/]
mickmurphy = rw
puis je me suis une erreur de permission refusée pour mickmurphy (joebloggs fonctionne toujours), avec une erreur similaire à ce que j'avais déjà précédemment
[Thu May 28 10:40:20 2009] [error] [client 89.100.219.180] Access denied: 'mickmurphy' GET svn:/sysadmin
aussi, j'ai oublié d'expliquer précédemment que tous mes dépôts sont sous
/var/lib/svn/repository
MISE À JOUR (20090529-1245):
Toujours pas de chance pour que cela fonctionne, mais tous les signes semblent pointer vers la question étant avec un contrôle chemin d'accès à la subversion ne fonctionne pas correctement. Mon hypothèse est que je n'ai pas configuré apache ou svn pour reconnaître correctement la structure de mon référentiel. Ceci est dû au fait que l'entrée '[/]' semble fonctionner parfaitement.
Il me vient aussi à l'esprit que c'est une question qui pourrait être mieux sur StackOverflow?
J'ai déjà un fichier .htpasswd et que tout fonctionne bien. Le problème se produit lorsque j'essaie d'utiliser le contrôle d'accès basé sur le chemin de subversion, en utilisant le fichier svnaccess.conf que j'ai listé ci-dessus.Mon instinct me dit que la configuration ci-dessus est PRESQUE correcte, et que je laisse une directive Apache, ou que je manque quelque chose dans la façon dont j'ai écrit le fichier svnaccess.conf pour obtenir ce dont j'ai besoin. – kaybenleroll
Salut @Chris S pouvez-vous m'aider sur ce http://stackoverflow.com/questions/13541629/websvn-doesnt-ask-for-authentication-for-using-a-repository – juned