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-shell
es un shell restringido que se utilizará solo para la funcionalidad de inserción / extracción (es decirgit push
,git fetch
ygit 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-commands
directorio 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 comoroot
unsudo
usuario capaz ysudo -u git -s
obtener unbash
shell completo debajo delgit
usuario.Respuestas:
Encontré esto después de correr
locate git-shell-commands
Entonces ejecuté los siguientes comandos como root:
Luego pude ejecutar lo siguiente como
git
usuario: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-commands
luegosu git
trabajé paragit 1.8.1.5-r1
fuente
git-shell-commands
carpeta. Creo que es más útil omitir todo eso y hacerlosudo -u git -s
para obtener unbash
shell 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-commands
los permisos correctos?