Git Server com vários repos

2

Estou configurando um servidor Git e haverá três grupos diferentes trabalhando em diferentes projetos iOS , WebDevel , Android . Eu preciso fazer isso de uma maneira segura e protegida.

Enquanto isso, não quero que os desenvolvedores do iOS consigam alterar as coisas do Android ou vice-versa. Em outras palavras, quero restringir qualquer grupo apenas ao seu próprio projeto. (A permissão de leitura não é um problema, mas se você puder me dizer como posso restringir a permissão de leitura também, ficarei grato)

Preciso da sua ajuda na configuração do servidor de forma que os desenvolvedores possam usar pull / push / commit por meio de sua chave pública, mas SOMENTE para seu próprio projeto! Existe uma maneira de prendê-los ao seu próprio diretório de repo do projeto? Por exemplo, existe uma maneira de dizer sempre que X usuário com a chave pública de x_id_rsa.pub ou com a solicitação de [email protected]:~/git/iOS tentando enviar ou puxar dados, deve ser preso ao iOS?

E a questão final é como eu posso usar diferentes tipos de políticas para cada diretório repo pelo SELinux?

Estou usando o CentOS e aqui você pode ver minhas tentativas malsucedidas - e ridículas -:

  1. Criado um usuário chamado git e atribuído 3 grupos ao usuário git.
    • iOS
    • Android
    • WebDevel
  2. Criado 3 diretórios necessários e usuário chown git:$ProjectGroup $Dir
  3. Usado chmod g+rwxs * nos diretórios.
  4. Alterei meu sshd_conf para recusar a senha por autenticidade e habilitei a Autenticação [Pubkey / RSA].
  5. Criado um .ssh/authorized_keys e colocado em /home/git/ .
  6. Usado git init --bare em todos os diretórios colocados no diretório inicial do usuário do git, por exemplo iOS, Android e WebDevel.
  7. Eu fiquei confuso!

Por favor explique em detalhes, e me diga o que eu devo mudar e o que eu estava errado. Estou aberto a qualquer sugestão.

É possível usar qualquer repositório como diretório pessoal do grupo? Ou seja iOS → $HOME=/home/git/iOS

    
por Parsa Samet 06.09.2016 / 13:09

0 respostas