SVN Sudo para atualizar como outro usuário

1

Eu quero que nossos desenvolvedores (incluindo o moi) possam executar svn update como usuário www-data em nosso servidor, para permissões de arquivo / diretório.

Minha solução foi conceder acesso para executar sudo -u www-data svn com NOPASSWD no visudo. Eu também adicionei um alias para este comando e o nomeei svn para torná-lo transparente para nossos desenvolvedores.

Isso funciona, mas sempre me pedem credenciais de svn (ele não salva, mesmo se eu disser). Estou pensando em adicionar o parâmetro -i , embora eu achasse que deveria verificar com vocês primeiro:)

Como faço isso tão tranquilo quanto executar o comando svn update normalmente?

Esclarecimento: Está funcionando agora. Eu só não quero inserir minhas credenciais de svn toda vez que eu corro svn update :)

    
por Znarkus 25.11.2009 / 16:05

4 respostas

4

Eu não tenho certeza, mas passar -H como argumento para o sudo pode resolver o problema das credenciais (sendo solicitado a cada vez).

Isto irá definir a variável de ambiente HOME para / root por padrão, então eu acho que o svn client my então saberá procurar em /root/.subversion pela informação de autenticação. Especifique um diretório inicial diferente para onde quer que as credenciais devam ser para o seu caso específico. Além disso, certifique-se de que qualquer uso possa gravar / ler para esse arquivo.

    
por 25.11.2009 / 16:37
1

Não é para isso que o setuid foi feito? Crie um script ou um binário compilado (dependendo dos seus requisitos de segurança) que faça a atualização (um system deve fazê-lo) e configure-o e pertença a www-data.

    
por 25.11.2009 / 16:48
1

Por que não tentar executá-lo com svn update --username wwwdata

    
por 27.11.2009 / 18:32
0

Esse comportamento é implementado de maneira diferente entre diferentes distros - o que você está usando?

Para o RHEL5:

    Cmnd_Alias      SVN = /usr/bin/svn
    herbert         ALL = NOPASSWD: SVN

Alternativamente, você pode conseguir a mesma coisa com um único script (para restringir o usuário a um subconjunto da funcionalidade do programa de destino)

    
por 25.11.2009 / 16:16

Tags