Pregunta:
Estoy intentando 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 tal cosa.
Especificaciones del sistema:
- Gentoo linux (más reciente)
- Git 1.7.5.3
/ etc / passwd línea:
git:x:1002:1004::/home/git:/usr/bin/git-shell
Respuesta:
Encontré esto después de ejecutar locate git-shell-commands
cat /usr/share/doc/git-1.7.4.4/contrib/git-shell-commands/README
Programas de muestra que se pueden llamar a través de git-shell. Coloque un directorio llamado 'git-shell-commands' en el directorio de inicio de un usuario cuyo shell sea git-shell. Entonces cualquiera que inicie sesión como ese usuario podrá ejecutar ejecutables en el directorio 'git-shell-commands'.
Comandos proporcionados:
ayuda: imprime los nombres de los comandos disponibles. Cuando se ejecuta de forma interactiva, git-shell ejecutará automáticamente 'ayuda' al inicio, siempre que exista.
lista: muestra cualquier repositorio simple cuyo nombre termine con ".git" en el directorio de inicio del usuario. No hay otros repositorios de git visibles, aunque pueden ser clonables a través de git-shell. 'list' está diseñado para minimizar la cantidad de llamadas a git que se deben realizar para encontrar repositorios disponibles; Si su configuración tiene repositorios adicionales que deberían ser detectables por el usuario, es posible que desee modificar la 'lista' en consecuencia.
Entonces ejecuté los siguientes 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
Luego pude ejecutar lo siguiente como usuario de git
:
[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
Ahora no veo qué buena ayuda y lista son, pero el inicio de sesión funcionó. 🙂