天天看點

Gitosis管理(權限管理建議使用這種方法)

三、Gitosis管理(權限管理建議使用這種方法)

伺服器端

1 安裝Gitosis 

下載下傳Gitosis 

wget  https://github.com/res0nat0r/gitosis/archive/master.zip

(位址可以自己尋找合适的,上面位址下載下傳以後為master,需要改名為master.zip)

$unzip master.zip

$ cd gitosis-master

$ python setup.py install(root使用者)

$ cd gitosis

分類: Python/Ruby

ImportError: No module named setuptools 解決方案  

shell中輸入:

wget http://pypi.python.org/packages/source/s/setuptools/setuptools-0.6c11.tar.gz

tar zxvf setuptools-0.6c11.tar.gz

cd setuptools-0.6c11

python setup.py build

python setup.py install

 初始化 Gitosis 了。需要通過自己的公鑰來運作 gitosis-init (git使用者)

useradd git

su - git

cd

cd /home/git

mkdir .ssh

ssh-keygen

$ gitosis-init < /home/git/.ssh/id_rsa.pub 

 将這個新的控制倉庫中的 postupdate腳本加上執行權限

$ chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update (root使用者)

測試是否配置正确 

$ ssh 

[email protected]

  (git使用者)

輸出下面内容為正确

PTY allocation request failed on channel 0

ERROR:gitosis.serve.main:Need SSH_ORIGINAL_COMMAND in environment.

Connection to 192.168.1.83 closed.

$ git clone 

[email protected]:gitosis-admin.git 

(若無法克隆,說明安裝有問題,不是絕對路徑)

$ cd gitosis-admin

$ ls

keydir 為放置公鑰的檔案路徑

gitosis.conf為配置權限目錄

$ cat gitosis.conf

預設内容:

[gitosis]

[group gitosis-admin]

writable = gitosis-admin

Members = git@localhost

添加一個群組 

[group myproject]

writable = melon_project 

Members = melon  (多個時候,空格分開)

----

生成密鑰,将公共密鑰 存為melon.pub (跟members相同),上傳到伺服器/home/git/gitosis-admin/melon.pub,儲存私鑰儲存

-----

$ git add .

$ git commit -m “message” .

$ git push

第一次需要通過這樣的方式生成項目倉庫

$ mkdir melon_p

$ cd melon_p

$ git init

$ git remote add origin 

[email protected]:melon_project.git

$ git push origin master  (會提示沒有送出任何檔案,無所謂,這步會建立melon_project.git倉庫,也可以添加些檔案 再送出push)

之後,就可以在外部克隆倉庫了..

Gitosis管理(權限管理建議使用這種方法)

注意: 使用gitosis進行控制時,不能在url前面添加 ssh:// 添加了會無法克隆倉庫

基本的服務端和用戶端都已經實作了,可以用git來作為項目的版本控制了