2010-11-26 3 views
1

동일한 파일 시스템에서 작업하는 내 동료가 액세스 할 수있는 내 홈 디렉토리에서 맨손으로 git-repo를 만들고 싶습니다. git push을 허용합니다. 그러나 나는 그들이 012P을 사용하여 repo를 실수로 수정할 수 없도록하고자하므로 단지 chmod g+w 일 수는 없습니다.루트 권한없이 자식 repo 관리하기

루트 권한이 없어도 가능합니까? 당신이 노출하는 경우

답변

2

많은 번거 로움을 다루는 gitolite과 같은 것을 사용할 수 있습니다. 당신이 일반 자식을 사용하려는 경우, 당신은이 작업을 수행 할 수

:

는 동료의 모든 작업을 수행하려면 당신은 같은 그룹 (예를 들어, 개발자)에 있어야합니다. 한 번에 모든 것을 수정할 수 있습니다.

newgrp developers 
git init --bare --shared=group repo 

하지만 빈 저장소가 표시됩니다. 현재 작업을 거기로 밀어 넣고 거기에서 계속할 수 있습니다.

git init 경로를 사용하지 않는 경우에는 사용자가 직접 apprioprate 권한을 설정하고 core.sharedrepository=1 설정 변수를 설정해야합니다.

+0

궁극적으로 나는 [gitolite] (http://gitolite.com/gitolite/master-toc.html) –

1

... 내가 생각할 수있는 유일한 것은 나에게로 REPO에 액세스 할 수 git 그래서 자식에 SUID 비트를 설정했다,하지만 정말 좋은 생각이다 모르겠어요 당신의 repo를 file:///으로 설정하면 파일 권한이 적용됩니다. 내가 아는 한, git 자체는 "사용 권한"을 처리하지 않습니다. 레포 게시에 사용하는 메커니즘은 해당 측면 (ssh, .htacess 또는 웹용 키)을 관리합니다.


이 안된하지만 난 당신이 설정으로 사용자가의 repo에서/풀을 밀어하는 데 사용할 수있는 git daemon를 사용하여 데몬 수 있어야한다고 생각합니다. 리포지토리에 대한 읽기/쓰기 액세스가 필요합니다.하지만 실행 중이므로 괜찮습니다. 사용자는이 기능을 통해서만 레포에 액세스 할 수 있습니다. 자세한 내용은 매뉴얼 페이지 (git help daemon)와 this을 확인하십시오. 그러나 내 원래 지점은 여전히 ​​유효합니다. 이것은 이 아닌의 한 방법으로 file:/// 프로토콜을 사용하여 루트 권한이 필요없는 저장소를 노출합니다.

+0

그래서 repo를 git에 대해 읽기 - 쓰기 가능하게 만들 수있는 방법은 없지만 그것 없이는 읽기 전용으로 만들 수는 없습니까? –

+0

나는 어떤 생각도 갖고 있다고 생각했지만 어떤 아이디어가 있습니다. 내 대답을 업데이트했습니다. –

+0

+1 세분화 된 사용 권한 설정이 필요하지 않은 한 +1 감사합니다. –

0

가장 좋은 방법은 gitosis를 사용하는 것입니다. 또는 새로운 git 사용자를 생성하고 신뢰할 수있는 사용자가 ssh 키를 사용하여 해당 계정으로 ssh를 보내도록하는 것입니다.

후자는 실제로 gitosis를 올바르게 구성하는 데 시간을 할애하는 것이 중요하다면 사람들이 자식을 사용하지 않고 파일에 액세스하는 것을 실제로 막지는 못합니다.

+2

새로운 자식 사용자를 만들려면 관리자 권한이 필요합니다. –

+0

@Noual Ibrahim : gitosis에 내 계정을 사용할 때의 단점은 무엇입니까? 그것은 기본적으로 gitosis에 의해 승인 된 모든 사람들이 내 계정으로 직접 ssh 할 수있는 방법을 제공할까요? –

+0

@Tobias : 다소 많습니다. Gitosis는 opensshd를 사용하여 해당 사용자에게 권한이 부여 된 공개 키로 지정된 매우 특정한 명령 만 실행할 수 있습니다. – Arafangion