Como evitar que o ssh git push defina a propriedade do arquivo?

4

Eu tenho um repositório Git remoto nu em um servidor Ubuntu, onde os arquivos são de propriedade do usuário my_project e do grupo my_project , com permissões definidas de acordo. Todos os commiters são os mesmos no grupo my_project .

Quando alguém se compromete então a partir de qualquer laptop Ubuntu com o usuário my_user para o servidor via SSH, alguns arquivos no repositório remoto são criados (atualizados?) então eles agora pertencem ao usuário e grupo my_user . / p>

É claro que, quando alguém mais quer se comprometer, ele agora é incapaz de fazê-lo, porque ele não tem permissões de gravação. Eu poderia definir permissão para 777, mas não é a melhor opção.

Existe alguma maneira de resolver este problema mantendo as permissões de gravação restritas?

    
por e-satis 18.04.2010 / 11:48

2 respostas

3

Os bits SUID e SGID ajudariam você? Eu uso um mecanismo semelhante para permitir que membros do grupo bzr enviem arquivos para um repositório central do bazar e ainda mantenham as permissões acessíveis.

drwsrwsr-x  3 bzr          bzr          4.0K 2010-04-15 17:58 bzr

definido com sudo chmod ug+s /home/bzr

/ etc / group contém bzr:x:1012:bzr,tom,<and a whole bunch of other usernames>

Isto parece funcionar muito bem para nós, permitindo que os usuários no grupo bzr enviem arquivos para o repositório central.

O modo de configuração 777 provavelmente não é ideal, por razões óbvias de segurança.

Se eu perdi o ponto, opa.

    
por 18.04.2010 / 22:23
2

Confira a variável core.sharedRepository config em git config --help . Configurá-lo para agrupar pode fazer o truque.

Outra opção pode ser usar algo como gitosis para gerenciar o repositório.

    
por 18.04.2010 / 21:22