Como configurar corretamente as permissões do servidor SVN?

3

Eu uso o Debian 7 e tenho o Subversion instalado.

Eu não consigo descobrir quais permissões e proprietários definir para os repositórios depois de criá-los.

Eu quero ter 2 tipos de repositórios:

1) svn/private/* - apenas um usuário especificado pode ler e escrever

2) svn/public/* - somente um grupo de usuários especificado pode ler e gravar aqui

* significa vários repos lá

Eu quero que todos os usuários sejam retirados do sistema Linux, não especificados no arquivo passwd ou algo assim. Então, como eu defino as permissões dos repositórios (falando sobre as permissões do Linux) para conseguir isso?

Também para os repositórios públicos, deve ser possível para os usuários autorizados se comprometerem e isto para não quebrar os repositórios (porque eu tive um problema antes).

Estamos falando apenas do acesso ao svn + ssh.

Eu li muitos tutoriais na internet, mas nenhum deles tem o que eu preciso.

Você pode me ajudar?

    
por barakuda28 23.09.2013 / 19:28

1 resposta

1

Usar o svn + ssh para conectar-se a um repositório subversion simplesmente usa as permissões padrão do arquivo unix nos arquivos do repositório, pois o usuário está efetivamente conectado ao servidor remoto via ssh e simplesmente executando o comando svn localmente no referido servidor. servidor.

Se o usuário x tiver permissão de leitura / gravação para esse arquivo, o usuário x poderá confirmar as alterações nesse repositório. Se o usuário y NÃO tiver permissão para ler / gravar nesses arquivos, o usuário y não poderá confirmar alterações ou, se não tiver acesso de leitura, exibir (verificar) o conteúdo do repositório.

No modo mais simples, use chown e chmod para definir a propriedade e as permissões em um repositório para cada usuário:

$chown user:group /wherever/svn/private
$chmod 770 /wherever/svn/private

e assim por diante.

Para permissões mais complicadas, é necessário usar o svn através de um servidor http e usar os controles de acesso do servidor http para acessar caminhos específicos dentro de um repositório.

NOTA: Se um usuário tiver acesso de leitura / gravação a um repositório específico, ele poderá danificá-lo. Então, enquanto você estiver usando o svn + ssh, estará concedendo acesso considerável a esses usuários. Agora, mesmo em situações mais restritas, desde que um usuário possa fazer alterações em um repo, elas podem causar danos ... embora geralmente esse dano possa ser revertido.

Dê-me um minuto e ligarei para o capítulo relevante na documentação do SVN.

Aqui está a seção sobre svn + ssh configuração

Aqui está a seção sobre configuração HTTP

O take-away do livro é que o svn + ssh é simples e seguro, mas limitado, e o http é muito mais capaz, mas mais complexo. Eu praticamente uso apenas o método HTTP para fornecer acesso bonito somente leitura àqueles que eu quero, e todo mundo obtém acesso através de svn + ssh e eu limito severamente quem essas pessoas são e fazem backup em lote. Eu nunca tentei o método svnserve tanto quanto me lembro.

    
por 23.09.2013 / 23:28