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.
fatal: Interactive git shell is not enabled.
hint: ~/git-shell-commands should exist and have read and execute access.
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.
Especificações do sistema:
- Gentoo linux (mais recente)
- Git 1.7.5.3
/ etc / passwd line:
git:x:1002:1004::/home/git:/usr/bin/git-shell
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.Respostas:
Encontrei isso depois de executar
locate git-shell-commands
Então, eu executei os seguintes comandos como root:
Pude executar o seguinte como
git
usuário:Agora não vejo o que é uma boa ajuda e lista, mas o login funcionou. :)
fonte
eu só tinha que fazer,
# mkdir ~git/git-shell-commands
entãosu git
trabalhei paragit 1.8.1.5-r1
fonte
git-shell-commands
pasta. Eu acho que é mais útil pular tudo isso e fazersudo -u git -s
com que você obtenha umbash
shell 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):
esse deve ser um problema correto no diretório git-shell.
fonte
~/git-shell-commands
as permissões corretas?