git版本控制gitosis的安裝與使用是怎樣的,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
創(chuàng)新互聯(lián)公司-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價比吳興網(wǎng)站開發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫,直接使用。一站式吳興網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋吳興地區(qū)。費用合理售后完善,十載實體公司更值得信賴。
gitosis是Git下的權(quán)限管理工具,通過一個特殊的倉庫(gitosis-admin.git)對Git權(quán)限進行管理。
一、服務(wù)端安裝并配置gitosis
(1)通過以下方式獲取到安裝包
root@wz:/home/git# git clone https://github.com/res0nat0r/gitosis
(2)使用python進行安裝
root@wz:/home/git# python gitosis/setup.py install
(3)將authorized_keys移除或重新命名為authorized_keys.bak,Gitosis 將為我們管理公鑰,后再重新添加公鑰,并且讓 Gitosis 自動控制authorized_keys文件。
root@wz:/home/git/.ssh# pwd
/home/git/.ssh
(4)將之前的git用戶bash登陸設(shè)置修改過來
vim /etc/passwd
46 git:x:1002:1002:,,,:/home/git:/bin/bash
(5)初始化 Gitosis ,需要通過自己的公鑰來運行g(shù)itosis-init,首先將我本地的公鑰復制到服務(wù)端:
y@y:git$ scp /home/y/.ssh/id_rsa.pub wzh@192.168.0.143:tmp/
wzh@192.168.0.143's password:
id_rsa.pub 100% 399 0.4KB/s 00:00
y@y:git$
服務(wù)端執(zhí)行以下操作:注意不是在超級管理員用戶下的:
wzh@wz:/home/git$ sudo -H -u git gitosis-init < ~/tmp/id_rsa.pub
這樣該公鑰的擁有者就能修改包含著 Gitosis 設(shè)置的那個 Git 倉庫了。
此時目錄結(jié)構(gòu)如下:
同時.ssh下面會生成一個:authorized_keys文件
由gitosis管理的倉庫放在:repositories/目錄下面
此時在repositories/目錄下面初始化一個空的倉庫:
二、客戶端操作gitosis
(1)現(xiàn)在可以試一下用初始化 Gitosis 公鑰的擁有者身份 SSH 進服務(wù)器:
說明 Gitosis 認出了該用戶的身份,但由于沒有運行任何 Git 命令所以它切斷了連接。
(2)克隆 Gitosis 的控制倉庫到本地:
注意:IP后面直接跟倉庫的名稱,無需路徑,gitosis-admin.git在服務(wù)端的 repositories/目錄下面。
gitosis-admin目錄結(jié)構(gòu)如下:
gitosis.conf文件是用來設(shè)置用戶、倉庫和權(quán)限的控制文件。
keydir 目錄則是保存所有具有訪問權(quán)限用戶公鑰的地方每人一個。
(3)修改 gitosis.conf配置文件并同步到服務(wù)端:其操作方式與普通的Git倉庫一致,
提交到服務(wù)端之后,查看服務(wù)端:
(4)如果是多人協(xié)助開發(fā)同用一個版本庫,則需要將他們每個人的公鑰文件添加到keydir文件夾然后push到服務(wù)端。
文件的命名將決定在gitosis.conf配置文件中的稱呼。
例如:參考《ProGit》
現(xiàn)在我們?yōu)?John,Josie 和 Jessica 添加公鑰:
$ cp /tmp/id_rsa.john.pub keydir/john.pub
$ cp /tmp/id_rsa.josie.pub keydir/josie.pub
$ cp /tmp/id_rsa.jessica.pub keydir/jessica.pub
然后把他們都加進 ‘mobile’ 團隊,讓他們對iphone_project具有讀寫權(quán)限:
[group mobile]
writable = iphone_project
members = scott john josie jessica
Gitosis 也具有簡單的訪問控制功能。如果想讓 John 只有讀權(quán)限,可以這樣做:
[group mobile]
writable = iphone_project
members = scott josie jessica
[group mobile_ro]
readonly = iphone_project
members = john
現(xiàn)在 John 可以克隆和獲取更新,但 Gitosis 不會允許他向項目推送任何內(nèi)容。
看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進一步的了解或閱讀更多相關(guān)文章,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對創(chuàng)新互聯(lián)的支持。