87 votes

Comment configurer le contrôle d'accès dans le SVN?

J'ai mis en place un référentiel à l'aide de SVN et chargés de projets. Il y a plusieurs utilisateurs de travailler sur ces projets. Mais, pas tout le monde est de travailler sur tous les projets et demander l'accès. Je veux configurer les permissions pour chacun des projets avec les utilisateurs.

Comment puis-je y parvenir?

89voto

Stephen Bailey Points 1180

Dans votre svn\repos\YourRepo\conf dossier, vous trouverez deux fichiers, authz et passwd. Ce sont les deux que vous devez régler.

Dans le passwd fichier, vous devez ajouter quelques noms d'utilisateur et mots de passe. Je suppose que vous avez déjà fait cela, car vous avez des gens à l'utiliser:

[users]
User1=password1
User2=password2

Ensuite, vous voulez attribuer des autorisations en conséquence avec les authz fichier:

Créer le conceptuel groupes que vous voulez, et de les ajouter à cela:

[groups]
allaccess = user1
someacces = user2

Puis choisissez le type d'accès qu'ils ont à partir à la fois les autorisations et des projets.

Donc, nous allons donner notre "all access" les gars, tous les accès à partir de la racine:

[/]
@allacces = rw

Mais seulement de donner à nos "certains accès" les gars accès en lecture seule à l'un des niveaux inférieurs de projet:

[/someproject]
@someaccess = r

Vous trouverez aussi quelques une simple documentation dans le authz et passwd fichiers.

28voto

VonC Points 414372

@Stephen Bailey

Pour compléter votre réponse, vous pouvez également déléguer les droits d'utilisateur pour le gestionnaire de projet, par l'intermédiaire d'un fichier texte dans votre référentiel.

Pour ce faire, vous l'installation de votre SVN base de données avec une valeur par défaut authz fichier contenant le texte suivant.

###########################################################################
# The content of this file always precedes the content of the
# $REPOS/admin/acl_descriptions.txt file.
# It describes the immutable permissions on main folders.
###########################################################################
[groups]
svnadmins = xxx,yyy,....

[/]
@svnadmins = rw
* = r
[/admin]
@svnadmins = rw
@projadmins = r
* =

[/admin/acl_descriptions.txt]
@projadmins = rw

Cette valeur par défaut authz le fichier d'autoriser le SVN les administrateurs à modifier une plaine visibles fichier texte à l'intérieur de votre dépôt SVN, appelé '/admin/acl_descriptions.txt', dans lequel le SVN administrateurs ou gestionnaires de projets à modifier et enregistrer les utilisateurs.

Ensuite, vous configurez un pre-commit hook qui permet de détecter si la révision est composé de ce fichier (et uniquement ce fichier).

Si elle l'est, ce crochet scripts de valider le contenu de votre fichier texte et de vérifier si chaque ligne est compatible avec la SVN droit de la syntaxe.

Puis un post-commit hook sera mise à jour de l' \conf\authz le fichier avec la concaténation de:

  • le MODÈLE authz le fichier présenté ci-dessus
  • le fichier de texte brut /admin/acl_descriptions.txt

La première itération est effectuée par le SVN administrateur, il ajoute:

[groups]
projadmins = zzzz

Il engage sa modification, et que les mises à jour de l' authz le fichier.

Ensuite, le gestionnaire de projet "zzzz" permet d'ajouter, de supprimer ou de les déclarer n'importe quel groupe d'utilisateurs et des utilisateurs à qui il veut. Il s'engage le fichier et l' authz fichier est mis à jour.

De cette façon, le SVN de l'administrateur de ne pas suivre n'importe quel et tous les utilisateurs pour tous les dépôts SVN.

27voto

Chris Burgess Points 1634

Une chasse aux sorcières qui m'a pris:

[repos:/path/to/dir/] # this won't work

mais

[repos:/path/to/dir]  # this is right

Vous avez besoin de ne pas inclure une barre oblique sur le répertoire ou vous verrez 403 pour la demande OPTIONS.

8voto

Matthew Schinckel Points 15596

Vous pouvez utiliser svn+ssh:, et puis il est basé sur le contrôle d'accès pour le dépôt à l'emplacement donné.

C'est de cette façon que je l'hôte d'un groupe de projet de référentiel à mon Uni, où je ne peux pas l'installation de tout autre chose. Juste d'avoir un répertoire que le groupe est propriétaire, et en cours d'exécution svn-admin (ou de ce qu'il était), il signifie que je n'ai pas besoin de faire n'importe quelle configuration.

3voto

Mladen Mihajlovic Points 2476

La meilleure façon est de configurer Apache et de définir les accès à travers elle. Vérifiez le svn livre pour obtenir de l'aide. Si vous ne voulez pas utilisez Apache, vous pouvez aussi le faire aux normes de contrôle de l'accès à l'aide de svnserve.

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