Estoy tratando de instalar el servidor git. Cuando configuro el shell predeterminado para mi usuario de git en / usr / bin / git-shell, aparece un error al iniciar sesión como git.
fatal: Interactive git shell is not enabled.
hint: ~/git-shell-commands should exist and have read and execute access.
El acceso basado en clave Ssh funciona, los permisos están configurados correctamente.
La búsqueda de Google no muestra nada con respecto a este error.
También utilicé este método en instalaciones anteriores y no se mostró tal error. También miré el servidor en funcionamiento si tiene algunos archivos o configuraciones adicionales, pero no existe.
Especificación del sistema:
- Gentoo linux (último)
- Git 1.7.5.3
/ etc / passwd línea:
git:x:1002:1004::/home/git:/usr/bin/git-shell

git-shelles un shell restringido que se utilizará solo para la funcionalidad de inserción / extracción (es decirgit push,git fetchygit pull). No está destinado a ser interactivo, por lo que no debe iniciar sesión en un shell interactivo. Puede hacerlo algo interactivo agregando ungit-shell-commandsdirectorio en la página de inicio del usuario y simulando algunos binarios dentro. Pero es muy limitado (no hay binario paracd, por ejemplo), por lo que una mejor alternativa es iniciar sesión comorootunsudousuario capaz ysudo -u git -sobtener unbashshell completo debajo delgitusuario.Respuestas:
Encontré esto después de correr
locate git-shell-commandsEntonces ejecuté los siguientes comandos como root:
Luego pude ejecutar lo siguiente como
gitusuario:Ahora no veo qué buena ayuda y lista son, pero el inicio de sesión funcionó. :)
fuente
solo tenía que hacerlo y
# mkdir ~git/git-shell-commandsluegosu gittrabajé paragit 1.8.1.5-r1fuente
git-shell-commandscarpeta. Creo que es más útil omitir todo eso y hacerlosudo -u git -spara obtener unbashshell completo con acceso a todos los binarios. También te quedas en el directorio actual.Si observa el código que activa ese mensaje de error (que parece haber sido diferente en versiones anteriores de Git):
Esto debería ser un problema correcto en el directorio git-shell.
fuente
~/git-shell-commandslos permisos correctos?