Permissões de pasta no repositório SVN único

1

Temos uma grande configuração de repositório do SVN com várias pastas, como:

/svn
     /folder1
     /folder2
     /folder3

Usamos SVN + SSH e colocamos todos em um grupo "svn" que possui o repo. Eu quero fazer com que todos possam acessar folder1 e folder2, no entanto, apenas um determinado grupo de usuários pode acessar a pasta3 (ler e escrever).

Existe um caminho para isso? Ou eu deveria estar olhando apenas para mover a pasta3 do SVN para outra coisa?

Obrigado

    
por Pratik Amin 28.07.2011 / 16:41

2 respostas

2

Quando você diz acesso, você quer dizer acesso ao SVN (checkout / commit / etc)? Se assim for, você pode querer olhar para as opções de autorização no próprio svnserve, uma vez que permite a autorização baseada no caminho.

Você pode ler mais sobre isso aqui:

link

    
por 28.07.2011 / 17:20
2

Se você tem controle sobre o sistema de arquivos no servidor svn e esse sistema de arquivos é compatível com ACL (por exemplo, ext3 / 4), você pode ativar ACLs para ter um controle sobre as permissões de sua árvore svn.

Você pode ativar o acls para sua partição por:

mount partition-name -o remount,acl

ou editando seu fstab:

/dev/foo           /mount-point                   ext3    defaults,acl        1 2

Em seguida, altere as permissões na sua árvore svn:

~# setfacl -R -m g:"moreprivilegegroup":rwx /path/svnbase/
~# setfacl -R -d -m g:"moreprivilegegroup":rwx /path/svnbase/
~# setfacl -R -m g:"lessprivilegegroup":rwx /path/svnbase/
~# setfacl -R -d -m g:"lessprivilegegroup":rwx /path/svnbase/
~# setfacl -R -m g:"lessprivilegegroup":r-x /path/svnbase/folder3
~# setfacl -R -d -m g:"lessprivilegegroup":r-x /path/svnbase/folder3

Portanto, você terá um grupo chamado "moreprivilegegroup" com permissões completas sobre a árvore completa e um grupo chamado "lessprivilegegroup" com permissões totais sobre a árvore completa, mas com restrições para editar / gravar arquivos na pasta3 (e suas subpastas)

A pasta directory3 armazenará as permissões para ambos os grupos, o que não pode ser feito com permissões unix padrão.

Preencha os dois grupos com os respectivos usuários e pronto.

O exemplo não é exaustivo, apenas como exemplo. Leia setfacl e getfacl man pages para mais informações.

    
por 28.07.2011 / 16:54

Tags