Git server account management
-
Upload
pinglun-liao -
Category
Technology
-
view
72 -
download
2
description
Transcript of Git server account management
使用Gitolite管理 git repositories帳號及權限
Author: Pinglun.Liao
Email: pinglunliao at gmail dot com
目錄
Git Server 環境設定......................................................................................................3
新增個人帳號................................................................................................................5
設定新專案....................................................................................................................6
logs.................................................................................................................................9
參考資源......................................................................................................................10
2
Git Server 環境設定
建立 gitolite群組和 gitolite使用者
sudo addgroup gitolite
sudo adduser --disabled-password --home /home/gitolite --ingroup gitolite gitolite
安裝 git and gitolites
sudo apt-get install git-core gitolite
安裝完成會出現此訊息:
No adminkey given - not initializing gitolite in /var/lib/gitolite
若沒出現此訊息,則安裝未成功,請以 source code 的方式安裝 gitolite。
***以 source code 的方式安裝 gitolite***
git clone git://github.com/sitaramc/gitolite
gitolite/src/gl-system-install
export PATH=/home/gitolite/bin:$PATH
產生 git Server管理者公鑰
ssh-keygen -t rsa # 產生 id_rsa, id_rsa.pub
Generating public/private rsa key pair.
Enter file in which to save the key (/home/vmuser/.ssh/id_rsa): 管理者工號
Enter passphrase (empty for no passphrase): [請直接按 Enter]
Enter same passphrase again: [請直接按 Enter]
將 public/private key放到~/.ssh下
3
mv管理者工號.pub管理者工號 ~/.ssh/
將管理者的 public key放到 Server
scp ~/.ssh/管理者工號.pub [email protected]:/tmp/
管理者設定
ssh [email protected] # Login to Git Server
sudo su - gitolite
gl-setup -q /tmp/管理者工號.pub # 匯入管理者的 Public key.
exit
將 gitolite-admin.git移至公司專案存放的路徑
sudo mv /var/lib/gitolite/repositories/gitolite-admin.git [newAbsolutePath]
修改.gitolite.rc內容
sudo gedit /var/lib/gitolite/.gitolite.rc
找到 $REPO_BASE="repositories"此行,改成如下:
$REPO_BASE="[newAbsolutePath]"
存檔,離開 Editor。
至此,若沒有任何錯誤的話,git server的環境設定就設定成功了,而 gitolite是
用 gitolite-admin.git專案來管理帳號及權限,所以需要抓下來修改、設定。
gitolite-admin資料夾會看到下面內容:
conf/gitolite.conf # 設定檔, 設定誰可以讀寫哪個專案的 Repository
keydir # 目錄,放每個帳號的 public key
4
新增個人帳號
首先產生個人公鑰:
ssh-keygen -t rsa # 產生 id_rsa, id_rsa.pub
Generating public/private rsa key pair.
Enter file in which to save the key (/home/vmuser/.ssh/id_rsa): 工號(若同一個有多
個 linux host的話,請以工號-流水號命名,例如:u08459-1, u08459-2…)
Enter passphrase (empty for no passphrase): [請直接按 Enter]
Enter same passphrase again: [請直接按 Enter]
將 public/private key放到~/.ssh下
mv工號.pub工號 ~/.ssh/
將自己的 public key放到 Server的 /tmp 下
scp 工號.pub [email protected]:/tmp/
***上傳 public key後請 git server的管理者做下列步驟***:
git clone [email protected]:gitolite-admin
cd gitolite-admin
cp /tmp/工號.pub keydir
git add keydir/工號.pub
git push origin master
5
設定新專案
下載 gitolite-admin專案及修改 conf/gitolite.conf
git clone [email protected]:gitolite-admin
cd gitolite-admin
gedit conf/gitolite.conf
gitolite.conf的預設內容如下:
repo gitolite-admin
RW+ = admin
repo testing
RW+ = @all
註:不要任意更動 gitolite-admin的權限設定。
例子一:新增 hello專案及專案成員,專案成員都可讀取與寫入,非專案人員只
可讀取。在 gitolite.conf 預設內容下加入:
repo hello
RW = u08459 u08335 u08452 u7370
R = u1234 u08561 u01234
修改此檔後
git add conf/gitolite.conf
git commit -m '新增 hello專案成員與設定成員與非成員的權限(簡要說明修改的
內容)'
git push
例子二:新增 puzzle專案及專案成員,專案成員都可讀取與寫入,非專案人員
無法讀取與寫入。在 gitolite.conf 預設內容下加入:
@puzzleMembers = u08459 u08335 u08452 u7370
repo puzzle
RW = @puzzleMembers
修改此檔後
git add conf/gitolite.conf
git commit -m '新增 puzzle專案成員與設定成員與非成員的權限(簡要說明修改的
內容)'
git push
註:此兩例子會在Git Server上建立新的空專案,專案的內容必須由專案成員上
6
傳(git push)。
7
上傳專案內容
以 hello專案為例子:
git clone [email protected]:hello
cd hello
注意:請先刪除目前現有專案資料夾下的所有 git資訊
find . -name .git -type d -print0 | xargs -0 rm -rf
將要加入 hello專案的檔案移至 hello
mv /old/Hello/Path/* .
git add .
git commit -m '簡要說明專案的內容’
git push origin master
8
logssudo ls /var/lib/gitolite/.gitolite/logs/
or
ls ~/.gitolite/logs/
9
參考資源
Pro Git
http://progit.org/book/ch4-8.html
gitolite tutorial by Sena Wario
https://sites.google.com/site/senawario/home/gitolite-tutorial
Linux 使用 Gitolite 架設 Git Server
http://blog.longwin.com.tw/2011/03/linux-gitolite-git-server-2011/
10