O servidor SVN permite somente confirmações quando executado como root

0

Então, há dois dias, eu tive um novo servidor SVN brilhante. Eu configurei-o para o WebDAV sem problemas. Foi só quando tentei hospedar vários projetos que tive problemas.

No começo, eu tinha todas as pastas do projeto em um repositório. Mas então eu vi o erro em meus caminhos e mudei para vários repositórios. Em vez de editar o arquivo /etc/apache2/sites-available/default com cada novo projeto, selecionei o daemon svnserve.

Então, o problema é que eu só posso fazer commits do Eclipse quando o daemon é executado como root. Caso contrário, recebo um erro "Permissão negada". Alguma ideia? Aqui estão as estatísticas do diretório:

    drwxr-xr-x 6 root root 4096 2011-06-07 09:38 .
    drwxr-xr-x 4 root root 4096 2011-06-05 00:48 ..
    lrwxrwxrwx 1 svn  svn     6 2011-06-06 22:35 all -> repos/
    drw-rw-r-- 6 svn  svn  4096 2011-06-06 13:53 EmpowerView
    drw-rw-r-- 6 svn  svn  4096 2011-06-06 13:54 GoogleVoicemail
    -rw-rw-r-- 2 svn  svn   307 2011-06-07 08:47 passwd
    drw-rw-r-- 6 svn  svn  4096 2011-06-06 13:54 PerlinNoise
    drw-rw-r-- 7 svn  svn  4096 2011-06-05 02:15 repos
    -rw-rw-r-- 3 svn  svn  2278 2011-06-07 08:46 svnserve.conf

EDITAR

Eu tentei o re-checkout sugerido com o daemon não rodando como root, e ainda sem charuto. O mesmo erro de permissão.

EDIT 2

Eu também tentei executar o daemon como o usuário svn, mas não tive essa sorte. Em um ponto eu estraguei meu grupo primário e não tinha mais privilégios de sudo! Eu tive que invadir meu próprio servidor através da conta de um amigo.

    
por Peaches491 07.06.2011 / 16:38

1 resposta

2

Você está tendo um problema clássico de permissão. Seu repositório possivelmente está localizado em um local como /some/dir/repos com /some sendo svn não sendo possível acessar /some porque o svn não possui /some e:

  • svn está no grupo de /some , mas as permissões estão definidas como 700
  • svn não está no grupo de /some e as permissões estão definidas como 750

Em ambos os casos, svn não pode descer em /some porque o bit de execução está faltando em /some .

Duas soluções são possíveis:

  • adicione o outro bit de execução a /some , para que as permissões pareçam 751
  • adicione o bit de execução do grupo a /some e verifique se o usuário svn é um membro do grupo

Você precisa verificar todos os diretórios acima do seu repo. Então, se o seu caminho parece com /i/am/very/long/repos , você precisa verificar /i , /i/am até /i/am/very/long/repos .

    
por Lekensteyn 07.06.2011 / 16:57