2012-11-26 2 views
4

전체 액세스 권한이있는 유일한 개발자이므로 처음에는 개발자가 한 명만있는 git 서버를 구현하려고합니다. 나는 이미 이것을 할 아무런 문제가 없다. 이 사용자는 ssh 액세스로 작업하고 있습니다.일부 사용자에게만 gitweb에 리포지토리를 표시합니다.

그리고 특정 종류 (gitweb, gitlist, gitalist ...)의 특정 GUI를 사용하여 프로젝트에 대한 읽기 전용 액세스 권한을 공유하고 싶습니다. 특정 사용자에게 선택하는 repos와 완전히 다른 일부를 선택할 수있는 아파치에서 실행 중입니다. 공공의. 같은 뭔가 :

  • 환매 특약 X는 - 사용자 1 및 사용자
  • 리포 z 용 읽기 액세스 - - 사용자 1과 사용자 3
  • 환매 특약 Y에 대한 읽기 액세스 권한을 모든 사용자에 대한 액세스를 참조하십시오.

어떤 것이 적절한 해결책인지 알 수 없습니다.

인증 된 사용자에게만 repos를 보여주기 위해 인증을 수행하는 방법에 대한 문서를 찾을 수 있지만, 인증 된 사용자에게 아파치에서 실행되는 GUI 중 하나를 사용하는 일부 repos 만 표시 할 수 있도록 세분화 된 제어는하지 않습니다.

webmin git 모듈을 사용하여 dav와 gitweb을 시도했지만 모든 사용자가 인증 한 사용자가 일부 저장소에만 액세스 할 수 있고 모든 사용자가 아닌 모든 저장소가 gitweb에 표시됩니다.

웹 서버는 suitec을 git user로 실행하고 있고 repos에 대한 전체 읽기 권한을 가지고 있습니다.

어떻게 구현해야합니까? 어쩌면 어떤 걸까요?

게다가 저는 사용자가 패키지 된 tar.gz 프로젝트를 다운로드 할 수있는 옵션에만 관심이 있습니다. 사용자가 프로젝트와 공동 작업을 할 수 있도록 계획되어 있지 않습니다. 어쩌면 해결책은 이것 이외 일 것입니다. trac 시스템이 더 나은 솔루션이라면 프로젝트에 대한 피드백을받을 수 있기 때문에 재미있을 수도 있습니다.

답변

3

gitolite과 같은 authorization layer을 추가하는 것이 적절한 해결책입니다.

httpd.conf 파일은, 예를 들면, 선언 순서에 gitolite를 호출합니다

:

ScriptAlias /hgit/ @[email protected]/gitolite/bin/gitolite-shell/ 
SetEnv GIT_HTTP_BACKEND "@[email protected]/usr/local/apps/git/libexec/git-core/git-http-backend" 
관련 문제