Próbuję zainstalować serwer git. Kiedy ustawiam domyślną powłokę dla mojego użytkownika git na / usr / bin / git-shell, pojawia się błąd podczas logowania jako git.
fatal: Interactive git shell is not enabled.
hint: ~/git-shell-commands should exist and have read and execute access.
Dostęp oparty na kluczu SSH, uprawnienia są ustawione poprawnie.
Wyszukiwarka Google nie pokazuje niczego dotyczącego tego błędu.
Użyłem tej metody również w poprzednich instalacjach i nie pojawił się żaden taki błąd. Patrzyłem też na działający serwer, jeśli ma jakieś dodatkowe pliki lub konfigurację, ale nie ma czegoś takiego.
Specyfikacja systemu:
- Linux Gentoo (najnowszy)
- Git 1.7.5.3
/ etc / passwd line:
git:x:1002:1004::/home/git:/usr/bin/git-shell
git-shell
jest ograniczony shell być wykorzystywane do funkcji Push / ciągnącej tylko (tjgit push
,git fetch
igit pull
). Nie ma być interaktywny, więc nie powinieneś logować się w interaktywnej powłoce. Możesz uczynić go nieco interaktywnym, dodającgit-shell-commands
katalog w domu użytkownika i dowiązując do niego niektóre pliki binarne. Ale jest bardzo ograniczony (cd
na przykład nie ma pliku binarnego ), więc lepszą alternatywą jest zalogowanie się jako użytkownikroot
lubsudo
sprawny isudo -u git -s
uzyskanie pełnejbash
powłoki pod tymgit
użytkownikiem.Odpowiedzi:
Znalazłem to po uruchomieniu
locate git-shell-commands
Uruchomiłem więc następujące polecenia jako root:
Byłem wtedy w stanie uruchomić jako
git
użytkownik:Teraz nie widzę, jaka jest dobra pomoc i lista, ale logowanie zadziałało. :)
źródło
po prostu musiałem
# mkdir ~git/git-shell-commands
wtedysu git
pracować dlagit 1.8.1.5-r1
źródło
git-shell-commands
folderze. Myślę, że bardziej przydatne jest pominięcie tego wszystkiego i zrobieniesudo -u git -s
tego, aby uzyskać pełnąbash
powłokę z dostępem do wszystkich plików binarnych. Pozostajesz również w bieżącym katalogu.Jeśli spojrzysz na kod, który wyzwala ten komunikat o błędzie (który wydaje się być inny w starszych wersjach Git):
powinien to być właściwy problem w katalogu git-shell.
źródło
~/git-shell-commands
odpowiednie uprawnienia?