Inserindo novo usuário no gitolite

750px-Git-logo-jengelh.svg_

Se você não sabe como instalar o gitolite, eu criei um post Montando um servidor de repositórios git com gitolite

Gitolite faz o controle de acesso de seus usuários usando chaves SSH, para criar novos usuários basta esse novo usuário gerar uma chave ssh e entregá-la a você para que você a envie para o servidor.

Vamos fazer o seguinte, como eu tenho a chave do administrador já em minha máquina, vou movê-la para um pasta, para agir como se fosse um novo usuário, e no decorrer da postagem vamos mudando as chaves para se passar, hora por administrador, hora pelo novo usuário.

Vamos para o diretório do ssh gerar a chave para o novo usuário

jackson@localhost: ~$ cd ~/.ssh

Para gerar a chave digite o comando abaixo, lembrando de alterar o nome de usuário para o pretendido.
ssh-keygen -t rsa -f jackson

jackson@localhost: ~/.ssh$ ssh-keygen -t rsa -f jackson
Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in jackson.
Your public key has been saved in jackson.pub.
The key fingerprint is:
26:cc:f1:1d:14:8a:05:58:7f:65:df:d1:c6:ba:6b:76 jackson@localhost.localdomain
The key's randomart image is:
+--[ RSA 2048]----+
| oo.. o.o o.|
| . + o o . .=|
| o o o .o.|
| o o o . . |
| + S . . |
| o . |
| . |
| + E|
| o . |
+-----------------+
jackson@localhost: ~/.ssh$

Agora basta esse usuário lhe entregar o arquivo NOME_DO_USUÁRIO.pub, que no meu caso ficou como jackson.pub.

Você deve colocar esse arquivo no diretório keydir daquele repositório chamado gitolite-admin que clonamos no post anterior

Lembre-se de após colocar o arquivo em seu local correto, devemos adicioná-lo, fazer um commit e empurrar para o servidor onde estão hospedados os repositórios.

jackson@localhost: ~/.ssh$ cd ~/gitolite-admin/
jackson@localhost: ~/gitolite-admin (master *)$ ls conf keydir
git.pub jackson.pub
jackson@localhost: ~/gitolite-admin (master *)$ git status
On branch master
Your branch is up-to-date with 'origin/master'.

Changes not staged for commit:
(use "git add ..." to update what will be committed)
(use "git checkout -- ..." to discard changes in working directory)

modified: keydir/jackson.pub

no changes added to commit (use "git add" and/or "git commit -a")
jackson@localhost: ~/gitolite-admin (master *)$ git add .
jackson@localhost: ~/gitolite-admin (master +)$ git commit -m "Inserindo usuário jackson"
[master 7518a48] Inserindo usuário jackson
1 file changed, 1 insertion(+), 1 deletion(-)
rewrite keydir/jackson.pub (93%)
jackson@localhost: ~/gitolite-admin (master)$ git push

Counting objects: 7, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 707 bytes | 0 bytes/s, done.
Total 4 (delta 0), reused 0 (delta 0)
To git@192.168.0.17:gitolite-admin
d9bffaa..7518a48 master -> master
jackson@localhost: ~/gitolite-admin (master)$

Sua saída do git será diferente sobre a linha modified: keydir/jackson.pub.
A questão aí é que eu já possuía uma chave jackson.pub e ela foi modificada, mas no seu caso geralmente será um novo arquivo.

Lembre-se que apenas criamos o usuário, ele ainda não tem nenhuma permissão no servidor:

Nós temos dois repositórios publicados, o gitolite-admin e um nomeado testing criado automaticamente peli gitolite para testes

jackson@localhost: ~$ ssh jackson@192.168.0.17
jackson@192.168.0.17's password:
Welcome to Ubuntu 12.04.4 LTS (GNU/Linux 3.11.0-20-generic x86_64)

* Documentation: https://help.ubuntu.com/

System information as of Wed May 7 17:41:00 BRT 2014

System load: 0.0 Processes: 72
Usage of /: 45.4% of 3.11GB Users logged in: 0
Memory usage: 11% IP address for eth0: 192.168.0.17
Swap usage: 0%

Graph this data and manage this system at:
https://landscape.canonical.com/

Last login: Sun May 4 22:11:54 2014 from 192.168.0.15

jackson@ubuntu12:~$ sudo su - git

git@ubuntu12:~$ ls
bin gitolite git.pub projects.list repositories
git@ubuntu12:~$ cd repositories/
git@ubuntu12:~/repositories$ ls
gitolite-admin.git testing.git
git@ubuntu12:~/repositories$
git@ubuntu12:~/repositories$ logout
jackson@ubuntu12:~$ exit
sair
Connection to 192.168.0.17 closed.
jackson@localhost: ~$

Vamos tentar clonar esse repositório de testes criado pelo gitolite usando o novo usuário criado.

É importante que a chave nomeada como git não esteja no diretório ssh para termos a certeza que o sistema irá usar o usuário jackson (no meu caso) e não o git.
Como eu tenho as duas na minha máquina eu a movi para um diretório criado (gitolite-admin-key) para criar este tutorial.

jackson@localhost: ~$ ls -a ~/.ssh/
. .. gitolite-admin-key jackson jackson.pub known_hosts
jackson@localhost: ~$ ls -a ~/.ssh/gitolite-admin-key/
. .. git git.pub
jackson@localhost: ~$

O que me causava dúvidas era sempre se eu tinha que colocar o nome do usuário na frente do domínio ou do ip, a resposta é NÃO, sempre deve ser usado git@ENDERECO_DO_SERVIDOR:NOME_DO_REPOSITORIO

jackson@localhost: ~$ git clone git@192.168.0.17:testing
Cloning into 'testing'...
warning: You appear to have cloned an empty repository.
Checking connectivity... done.

Está aí um repositório clonado pelo usuário jackson.

Você pode estar se perguntando, mas ele disse que não tínhamos ainda dado permissões a nenhum usuário.

É isso mesmo, só que como esse repositório foi um repositório criado pelo próprio gitolite
ele já o criou com configurações de permissões no arquivo conf/gitolite.conf

jackson@localhost: ~$ cat gitolite-admin/conf/gitolite.conf
repo gitolite-admin
RW+ = git

repo testing
RW+ = @all
jackson@localhost: ~$

Eu vou criar uma postagem sobre criação de repositórios e permissões, mas veja que para o repositório gitolite-admin só o usuário git tem permissões para escrita e leitura

repo gitolite-admin
RW+ = git

Já no testing, a permissão foi dada para um grupo @all
repo testing
RW+ = @all

Até a próxima!

Um comentário sobre “Inserindo novo usuário no gitolite
1 Pings/Trackbacks para "Inserindo novo usuário no gitolite"
  1. […] Quer inserir novos usuários? eu criei um post  Inserindo novo usuário no gitolite […]

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

*