trac 및 git 사용자가 gitolite 서버 저장소에 액세스할 수 있는 올바른 파일 권한

trac 및 git 사용자가 gitolite 서버 저장소에 액세스할 수 있는 올바른 파일 권한

내 서버에서는 gitolite를 통해 일부 git 저장소를 호스팅하고 모든 저장소에 대한 trac을 가지고 있습니다.

서버에서 푸시/풀을 수행하는 git이라는 사용자가 있습니다( git clone git@server:repo). trac은 mod_wsgi를 사용하는 Apache 가상 호스트입니다. 이는 www-data 사용자로 실행됩니다.

따라서 저를 수수께끼로 만드는 것은(어쩌면 파일 권한에 대한 단서가 별로 없기 때문일 수도 있습니다) git 저장소( /home/git/repositories/...)에 대한 최상의 권한 설정(chown, chmod)이 무엇인지입니다.

www-data(또는 trac)에는 최소한 읽기 권한이 필요합니다(제 생각에는). git(또는 gitolite)에는 변경 세트를 푸시하려면 읽기/쓰기 권한이 분명히 필요합니다.

나는 약간의 시도를 해 보았지만(즉, www-data/git 그룹에 www-data 및/또는 git을 추가하는 것) 제대로 작동하지 않았습니다. 둘 중 적어도 하나는 작동하지 않습니다(git 또는 trac).

어떤 제안이라도 높이 평가됩니다.

답변1

내가 말하고 싶은 가장 안전한 방법은 git-readers라는 그룹을 갖는 것입니다.

git 및 www-data를 추가한 후 다음과 같은 폴더 구조를 갖습니다.

/home/git - git:git-readers u=rwx,g=rx,o=
/home/git/repositories - git:git u=rwx,g=rwx,o=rx

이렇게 하면 읽기를 위해 폴더에 www-data가 허용되지만 git 사용자에게만 쓰기 액세스 권한이 부여됩니다. 다른 사용자는 아무것도 할 수 없습니다.

작성자를 더 추가하려면 다른 그룹 git-writers를 추가하고 git-readers 그룹뿐만 아니라 사용자와 git도 추가한 후 다음 구조를 사용합니다.

/home/git - git:git-readers u=rwx,g=rx,o=
/home/git/repositories - git:git-writers u=rwx,g=rwxs,o=rx

그룹 권한의 's'를 참고하세요. 이렇게 하면 작성자 사용자가 git-writers 그룹을 기본 그룹으로 사용하게 됩니다. 이는 작성자가 모두 umask 0002인 경우에만 제대로 작동합니다.

답변2

관련 정보