Separe as contas git no servidor linux

2

Eu tenho muitos repositórios git no meu servidor linux (ubuntu). Eu acesso todos eles com o usuário do Apache www-data . Isso funcionou muito bem no passado porque eu era o único desenvolvedor da web. Agora tenho mais desenvolvedores e preciso restringir o acesso deles a alguns repositórios. Como modifico meus repositórios server / permissions / git para acomodar isso?

Deixe-me mostrar-lhe o processo atual pelo qual passei para configurar um repositório.

Para configurar um novo repositório para o projeto project no myserver.com, eu emito os seguintes comandos do terminal:

ssh [email protected]
password: (password for www-data)
cd /var/lib/repositories/
mkdir project.git
cd project.git
git init --bare
git update-server-info
cd /var/www/git.myserver.com/
ln -s /var/lib/repositories/project.git project

Para implantar o projeto no url http://project.myserver.com , eu emito os seguintes comandos do terminal:

ssh [email protected]
password: (password for project)
cd /var/www/project.myserver.com/public_html/
git init
git remote add origin http://[email protected]/project
git pull origin master
password: (password for www-data)

O usuário project precisa saber a senha de www-data para empurrar e puxar do repositório git.

Como eu modifico meu servidor / permissões / gitrepositories para que eu possa empurrar e puxar como project em vez de www-data ?

Notas adicionais

Veja como a entrada do vhost para git.myserver.com se parece

<VirtualHost 173.255.230.136:80>
     ServerAdmin [email protected]
     ServerName git.myserver.com
     DocumentRoot /var/www/git.myserver.com/public_html/
     ErrorLog /var/www/git.myserver.com/logs/error.log
     CustomLog /var/www/git.myserver.com/logs/access.log combined
</VirtualHost>

O diretório /var/lib/git é de propriedade do usuário www-data . Dessa forma, o apache pode gravar nos repositórios por meio do link simbólico em /var/www/git.myserver.com/public_html/project via url http://[email protected]/project

    
por John 07.01.2012 / 05:33

1 resposta

0

Primeiro eu teria criado um usuário separado para o login do git. No entanto, além disso, provavelmente a maneira mais fácil de gerenciar isso é usar algo como a gitosis, que é uma configuração simples que permite fazer acesso autenticado ao git com permissões granulares.

Isso permitirá que você dê às pessoas:

Sem acesso, somente leitura, leitura escrita. Etc

link

N.B. acabou de verificar o site dos desenvolvedores e há mais recursos nisto. Vale a pena conferir com certeza o link

    
por 07.01.2012 / 14:45