gitosis 관리git
Gitosis는 Git와 ssh를 통해 중앙 서버를 쉽게 설치할 수 있는 소프트웨어다.이 문장
의 설치 절차는 매우 명확하게 썼지만 사용 중에 약간의 문제에 부딪혔기 때문에 본고는 이 절차의 보충이라고 할 수 있다.만약 Gitosis를 통해 서버를 가설하려고 한다면 본문을 통해 많은 시행착오를 줄일 수 있을 것이다.
1. 설치 절차
1.python setuptools 다운로드 및 설치
sudo apt-get install python-setuptools
2.gitosis 다운로드 및 설치
cd ~/src
git clone git://eagain.net/gitosis.git
cd gitosis
python setup.py install
3. 사용자git 추가
sudo adduser \
--system \
--shell /bin/sh \
--gecos 'git version control' \
--group \
--disabled-password \
--home /home/git \
git
4. 기본 키 생성
만약 ~/.ssh/id_rsa.pub 이 단계를 생략합니다.
ssh-keygen -t rsa
5. 서버 임시 디렉터리에 키 업로드
scp ~/.ssh/id_rsa.pub 사용자 이름@ 호스트:/tmp
6. 초사화gitosis
서버로 돌아가기
sudo -H -u git gitosis-init
7. post-update 권한 수정
sudo chmod 755/home/git/repositories/gitosis-admin.git/hooks/post-update
8. clonegitosis 관리 플랫폼
git clone git@ 호스트 이름:gitosis-admin.git
cd gitosis-admin
9. 설치 완료
gitosis-admin 수정을 통해 gitosis 사용자 권한 관리
키디르에 공밀 추가, 사용자 추가
수정이 끝난 후commit,push는 중 서버에 가서 창고 권한에 대한 작업을 완성할 수 있습니다.
2. 실례
목표: 사용자john과 창고foo를gitosis에 추가하고 관리자miao와 합작 관리
1. 사용자 john id_ 추가 및 보내기rsa.pub
john:~$ ssh-keygen -t rsaGenerating public/private rsa key pair.Enter file in which to save the key (/home/john/.ssh/id_rsa):
Created directory '/home/john/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in/home/john/.ssh/id_rsa.
Your public key has been saved in/home/john/.ssh/id_rsa.pub.
john:~$ cp/home/john/.ssh/id_rsa.pub/tmp
2.gitosis 관리자miao가 john 권한을 할당
miao:~$ cd ~/projectsgit clone [email protected]:gitosis-admincd gitosis-admincat gitosis.conf[gitosis]
[group gitosis-admin]
writable = gitosis-admin
members = miao@u32-192-168-1-110
ls keydir/[email protected]
cp/tmp/id_rsa.pub keydir/john.pubvi gitosis.conf
[gitosis]
[group gitosis-admin]
writable = gitosis-admin
members = miao@u32-192-168-1-110
[group foo]
writable = foo
members = miao@u32-192-168-1-110 john
git add .git commit -am "add member john and project foo"git push
3. 사용자 miao 항목 추가 foo
miao:~$ cd ~/projectsmkdir foocd foogit inittouch hello.txtgit add hello.txtgit commit -am 'first commit'git remote add origin [email protected]:foo.gitgit push origin master4. 사용자 john clone Foo 및 hello를 수정합니다.txt
john:~$ git clone [email protected]:foo.gitcd foolsdate > hello.txtgit commit -am 'add time to hello.txt' && git push5. 사용자 miao pull Foo
miao:~/projects/foo$ vi .git/config[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
url = [email protected]:foo.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
git pull
3. FAQ
우선/home/git/repositories/gitosis-admin을 확정합니다.git/hooks/post-update는 실행 가능한 속성입니다.
1.git 작업은 비밀번호를 입력해야 한다
원인 공밀을 찾지 못했습니다.업로드 해결 id_pub.rsa에서 keydir로'gitosis 계정으로 변경합니다.pub'형식, 예를 들어miao.pub.확장자pub 생략불가
2. ERROR:gitosis.serve.main:Repository read access denied
원인gitosis.conf의members와keydir의 사용자 이름이 일치하지 않습니다. 예를 들어gitosis의members=foo@bar하지만 키디르의 공밀명은foo라고 합니다.pub키디르의 이름이gitosis에서members가 가리키는 이름과 일치하도록 해결합니다.
members = foo 또는 공밀 이름으로 변경[email protected]
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.