Encontrei isso depois de executar locate git-shell-commands
cat /usr/share/doc/git-1.7.4.4/contrib/git-shell-commands/README
Programas de amostra que podem ser chamados através do git-shell. Coloque um diretório chamado 'git-shell-command' no diretório inicial de um usuário cujo shell seja git-shell. Qualquer pessoa que faça login como esse usuário poderá executar executáveis no diretório 'git-shell-command'.
Comandos fornecidos:
ajuda: Imprime os nomes dos comandos disponíveis. Quando executado interativamente, o git-shell executa automaticamente 'help' na inicialização, desde que exista.
lista: exibe qualquer repositório vazio cujo nome termina com ".git" no diretório inicial do usuário. Nenhum outro repositório git é visível, embora possa ser clonável através do git-shell. 'list' é projetado para minimizar o número de chamadas ao git que devem ser feitas na localização de repositórios disponíveis; se sua instalação possui repositórios adicionais que podem ser descobertos pelo usuário, você pode modificar a 'lista' de acordo.
Então, eu executei os seguintes comandos como root:
cp /usr/share/doc/git-1.7.4.4/contrib/git-shell-commands /home/git -R
chown git:developers /home/git/git-shell-commands/ -R
chmod +x /home/git/git-shell-commands/help
chmod +x /home/git/git-shell-commands/list
exit
Pude executar o seguinte como git
usuário:
[me@svn ~]$ su git
Password:
Run 'help' for help, or 'exit' to leave. Available commands:
list
git> help
Run 'help' for help, or 'exit' to leave. Available commands:
list
git> list
git> exit
Agora não vejo o que é uma boa ajuda e lista, mas o login funcionou. :)
git-shell
é um shell restrito a ser usado apenas para a funcionalidade push / pull (ou sejagit push
,git fetch
egit pull
). Não é para ser interativo, portanto você não deve fazer login em um shell interativo. Você pode torná-lo um pouco interativo adicionando umgit-shell-commands
diretório na página inicial do usuário e associando alguns binários dentro dele. Mas é muito limitado (cd
por exemplo, não há binário ), portanto, uma alternativa melhor é fazer login comoroot
umsudo
usuário capaz e fazer issosudo -u git -s
para obter umbash
shell completo sob ogit
usuário.