天天看點

網站運維:git工具(11):Gitosis安裝與使用-添加使用者和設定權限

Gitosis 就是一套用來管理 authorized_keys檔案和實作簡單連接配接限制的腳本。
添加使用者和設定權限是管理一個特殊的 Git 倉庫。
           
Gitosis的安裝和配置
gitosis是用python寫的,安裝前需要提前安裝python相關解析相關庫
yum -y  install python-setuptools

從 Gitosis 項目首頁克隆并安裝
git clone https://github.com/tv42/gitosis.git

注意:git clone時可能發生錯誤,提示:fatal: HTTP request failed。
更新軟體
yum update -y nss curl libcurl
cd gitosis
安裝python
sudo python setup.py install

 生成本機SSH密鑰
 ssh-keygen -t rsa -C "[email protected]"

将~/.ssh/id_rsa_pub公鑰檔案上傳到伺服器上
上傳管理者公鑰 , (如果已有ssh,在 ~/.ssh下 id_rsa.pub檔案) 
scp ~/.ssh/id_rsa.pub [email protected]:/tmp

初始化gitosis
sudo -H -u git gitosis-init < /tmp/id_rsa.pub

在本地拉取
git clone [email protected]:gitosis-admin.git

說明:此時會得到一個名為 gitosis-admin 的工作目錄,主要由兩部分組成:./gitosis.conf   ./keydir   ./keydir/[email protected].com, 倉庫管理在gitosis.conf 中,keydir目錄下用來儲存需要拉代碼的人員的公鑰。gitosis.conf 檔案是用來設定使用者、倉庫和權限的控制檔案。keydir 目錄則是儲存所有具有通路權限使用者公鑰的地方— 每人一個。在 keydir 裡的檔案名([email protected].com.pub)Gitosis 會自動從使用 gitosis-init 腳本導入的公鑰尾部的描述中擷取該名字。
[gitosis]

[group gitosis-admin]
writable = gitosis-admin
members = [email protected].com

說明:使用者 [email protected].com — 初始化 Gitosis 公鑰的擁有者 — 是唯一能管理 gitosis-admin 項目的人。
例如:添加一個新項目,叫shop
[group shop]
members = [email protected].com
writable = shop

修改完之後,送出 gitosis-admin 裡的改動,并推送到伺服器使其生效。

git add .
git commit -m ‘add project’;
git push [email protected]:gitosis-admin.git master
或
git push origin master
注意:不用事先到伺服器上手工建立該項目的裸倉庫— Gitosis 會在第一次遇到推送時自動建立。
要和朋友們在一個項目上協同工作,就得重新添加他們的公鑰。
不過這次不用在伺服器上一個一個手工添加到 ~/.ssh/authorized_keys 檔案末端,
而隻需管理 keydir 目錄中的公鑰檔案。檔案的命名将決定在 gitosis.conf 中對使用者的辨別。

           
git