2009-07-10 6 views
1

Problème vraiment étrange ici. J'installe un serveur SVN et je suis essentiellement essayer de faire respecter les règles suivantes:administrateur SVN peut créer des dossiers, mais ne peut pas les supprimer

  1. Tous les utilisateurs ont en lecture seule par défaut
  2. svnadmin peut écrire à la racine (pour créer de nouveaux projets) et dans le dossier du projet (pour créer le tronc/branches/tags répertoires)
  3. développeurs peuvent créer des répertoires dans // branches et peuvent engager des modifications à // tronc
  4. Seul le gestionnaire admin/projet peut créer des tags libération

Voici mes paramètres:

svnserve.conf

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

passwd

 
[users] 
svnadmin = svnadmin 
user1 = user1 

authz

 
[groups] 
svnadmin = svnadmin 
developers = user1 

[/] 
* = r 
@svnadmin = rw 

[/test-project/branches] 
@developers = rw 

[/test-project/trunk] 
@developers = rw 

I l emboîté comme svnadmin et créé/test-projet,/test-projet/trunk,/test-projet/branches, et/test-project/trunk-good.

Connecté en tant qu'utilisateur1 et accès refusé si vous essayez de créer quelque chose dans la racine ou dans/test-project - bien.

Toujours en tant qu'utilisateur1, j'ai créé un dossier dans la ligne de réseau et ajouté un fichier - bon.

Maintenant, je me suis connecté en tant que svnadmin et j'ai supprimé le fichier ... mais je ne peux pas supprimer le dossier! Plus précisément, il est dit Accès refusé

svnadmin a rw sur le dépôt tout, alors pourquoi je ne peux pas supprimer/test-projet/trunk/??? (bien sûr, user1 peut supprimer ce dossier). Pire, j'ai remarqué que svnadmin ne peut pas supprimer/tester-projet,/test-projet/branches,/test-projet/trunk, ou/test-project/tags. J'ai maintenant cet arbre de projet de test dans mon dépôt et je ne peux pas m'en débarrasser.

Y a-t-il un problème avec mes paramètres? Que puis-je faire?

Répondre

2

Je l'ai conçu seul et j'ai posté la réponse ici pour le bénéfice de tous ceux qui rencontrent le même problème.

Apparemment, contrairement au système d'exploitation Linux sous lequel ce serveur SVN est en cours d'exécution, vous n'êtes pas censé avoir des groupes portant le même nom que les utilisateurs.

auths

 
[groups] 
svnadmin = svnadmin 
developers = user1 

[/] 
* = r 
@svnadmin = rw 

[/test-project/branches] 
@developers = rw 

[/test-project/trunk] 
@developers = rw 

devraient en fait être ...

 
[groups] 
svnadmins = svnadmin # note the pluralization of the group name 
developers = user1 

[/] 
* = r 
@svnadmins = rw # note the pluralization of the group name 

[/test-project/branches] 
@developers = rw 

[/test-project/trunk] 
@developers = rw 

Ceci explique pourquoi @developers ont pu supprimer tous les répertoires qu'ils ont créés tout @svnadmin n'a pas été; Cependant, cela n'explique pas pourquoi @svnadmin était en mesure de créer des répertoires en premier lieu ...

... même si je ne me soucierai pas de cela, car ma configuration fonctionne maintenant.

+0

Juste une pensée, vous aviez 'auth-access = write' défini dans svnserve.conf. Puisque svnadmin est un utilisateur autorisé, c'est probablement la raison pour laquelle il pourrait créer des répertoires sans les supprimer. –

-1

ne s'agit pas de les rendre pural, vous devez mettre un '/' après le nom du répertoire, pour une raison quelconque, il n'est pas récursif si vous n'avez pas '/' à la fin. De cette façon, vous n'avez pas besoin de mettre les autorisations de suppression au sommet.

+0

Pourquoi la downvote? –

Questions connexes