[server] 힘내 쉘이 활성화되지 않았습니까?

자식 서버를 설치하려고합니다. 내 자식 사용자의 기본 쉘을 / usr / bin / git-shell로 설정하면 git으로 로그인 할 때 오류가 발생합니다.

fatal: Interactive git shell is not enabled.
hint: ~/git-shell-commands should exist and have read and execute access.

SSH 키 기반 액세스 작업, 권한이 올바르게 설정되었습니다.

Google 검색에는이 오류와 관련된 내용이 표시되지 않습니다.

또한 지난 설치에서이 방법을 사용했으며 이러한 오류는 표시되지 않았습니다. 또한 추가 파일이나 구성이 있지만 작동하지 않는 서버가 작동하는지 살펴 보았습니다.

시스템 사양 :

  • 젠투 리눅스 (최신)
  • 힘내 1.7.5.3

/ etc / passwd 라인 :

git:x:1002:1004::/home/git:/usr/bin/git-shell



답변

나는 실행 후 이것을 발견 locate git-shell-commands

고양이 /usr/share/doc/git-1.7.4.4/contrib/git-shell-commands/README

git-shell을 통해 호출 가능한 샘플 프로그램. 쉘이 git-shell 인 사용자의 홈 디렉토리에 ‘git-shell-commands’라는 디렉토리를 배치하십시오. 그런 다음 해당 사용자로 로그인하면 누구나 ‘git-shell-commands’디렉토리에서 실행 파일을 실행할 수 있습니다.

제공된 명령 :

help : 사용 가능한 명령의 이름을 인쇄합니다. 대화식으로 실행하면 git-shell은 시작시 자동으로 ‘도움말’을 실행합니다 (있는 경우).

list : 사용자의 홈 디렉토리에서 이름이 “.git”로 끝나는 기본 저장소를 표시합니다. 다른 자식 저장소는 보이지 않지만 git-shell을 통해 복제 할 수는 있습니다. ‘list’는 사용 가능한 저장소를 찾는 데 필요한 git 호출 횟수를 최소화하도록 설계되었습니다. 설정에 사용자가 검색 할 수있는 추가 리포지토리가있는 경우 그에 따라 ‘목록’을 수정할 수 있습니다.

그래서 다음 명령을 루트로 실행했습니다.

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

그런 다음 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

이제 좋은 도움과 목록이 무엇인지 알지 못하지만 로그인이 작동했습니다. 🙂


답변

난 그냥 # mkdir ~git/git-shell-commands다음 su git일을했다git 1.8.1.5-r1


답변

해당 오류 메시지를 트리거하는 코드보면 ( 이전 버전의 Git에서 다른 것으로 보임 ) :

if (access(COMMAND_DIR, R_OK | X_OK) == -1) {
  die("Interactive git shell is not enabled.\n"
     "hint: ~/" COMMAND_DIR " should exist "
     "and have read and execute access.");

이것은 git-shell 디렉토리에서 올바른 문제입니다.

프로그램을 실행하려면 사용자에게 디렉토리에 대한 읽기 및 실행 권한이 있어야합니다.


답변