Estou tentando instalar o servidor git. Quando defino o shell padrão para meu usuário do git como / usr / bin / git-shell, recebo um erro ao fazer o login como git.
Com o trabalho de acesso baseado em chave ssh, as permissões estão definidas corretamente.
A pesquisa do Google não mostra nada sobre esse erro.
Eu também usei esse método em instalações anteriores e nenhum erro foi mostrado. Também olhei para o servidor em funcionamento, se ele tiver alguns arquivos ou configurações extras, mas não existe.
Gentoo linux (mais recente)
git-shellé um shell restrito a ser usado apenas para a funcionalidade push / pull (ou seja git push, git fetche git 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 um git-shell-commandsdiretório na página inicial do usuário e associando alguns binários dentro dele. Mas é muito limitado ( cdpor exemplo, não há binário ), portanto, uma alternativa melhor é fazer login como rootum sudousuário capaz e fazer isso sudo -u git -spara obter um bashshell completo sob o gitusuário.
— ADTC 23/07
Encontrei isso depois de executar locate git-shell-commands
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:
Pude executar o seguinte como gitusuário:
Agora não vejo o que é uma boa ajuda e lista, mas o login funcionou. :)
lá teria que ser repositórios nuas nos diretórios pessoais dos usuários para 'lista' para fazer qualquer coisa (de acordo com o readme)
eu só tinha que fazer, # mkdir ~git/git-shell-commandsentão su gittrabalhei paragit 1.8.1.5-r1
Sim, funciona. Agora você está no shell git. Então o que? É completamente inútil para a interação, a menos que você vincule alguns binários dentro da git-shell-commandspasta. Eu acho que é mais útil pular tudo isso e fazer sudo -u git -scom que você obtenha um bashshell completo com acesso a todos os binários. Você também permanece no diretório atual.
Se você observar o código que aciona essa mensagem de erro (que parece ter sido diferente nas versões mais antigas do Git):