檢查基礎服務
檢查伺服器是否有sshd相關的程序資訊,git是否安裝,perl環境和perl模組perl-data-dumper是否安裝。一般伺服器上都安裝了這些基礎的服務。
建立git使用者
# 在root許可權下
useradd -m git
#建立新的使用者git專門管理git伺服器
# 修改git使用者密碼
passwd
git# 切換使用者
sugit
設定乙個管理員使用者dvt0551# 在git的home目錄下clone gitolite**
git clone
# 安裝gitolite
mkdir bin
$home/gitolite/install -to $home/bin # 一定要用絕對位址,用相對位址會報錯
ls bin
# 顯示下列檔案就說明成功安裝
commands gitolite gitolite-shell lib syntactic-sugar triggers version vref
用dvt0551登陸,然後轉殖gitolite管理倉庫# 在管理員dvt0551的home目錄下,檢查是否有公鑰
# ~/.ssh/is_rsa.pub是否存在
ssh-keygen -t rsa # 如果不存在,存在就跳過這一步
# 將管理員dvt0551的ssh公鑰copy到git的home目錄下
cp ~/.ssh/is_rsa.pub /home/git/dvt0551.pub
# 初始化gitolite,在git目錄下並設定dvt0551為管理員
bin/gitolite setup -pk ./dvt0551.pub
# 初始化後建立了repositories和.gitolite目錄
# repositories/gitolite-admin.git是管理員配置倉庫
# .gitolite/對應gitolite-admin.git的內容
# 所有配置修改必須由管理員提交到gitolite-admin.git
管理使用者許可權# 在dvt0551的home目錄下
git clone git@192.168.137.121:gitolite-admin
ls gitolite-admin
conf keydir
# do some change, add & commit
# 新增使用者:將新使用者的ssh公鑰放置在keydir中,即可新增使用者,並在conf/gitolite.conf中配置使用者許可權。
# 建立倉庫:在conf/gitolite.conf中增加repo可以建立新倉庫,並新增使用者許可權
在conf/gitolite.conf中沒有設定的repo會提示以下錯誤
# 假設你之前建立了helloworld版本庫,現在使用git clone git@192.168.137.121:helloworld 試圖clone
fatal: r any helloworld id_rsa denied by fallthru
(or you mis-spelled the reponame)
fatal: the remote end hung up unexppectedly
提交到git倉庫repo helloworld
rw+ = dvt0551
這樣乙個基本的git伺服器就搭建完成了!git add conf keydir
git commit -m "add the repo and add rw+ to dvt0551"
git push
設定許可權,讓普通使用者可以建立自己的版本庫
但是,這樣設定以後,使用者仍然不能自己建立版本庫並提交到git伺服器上。每次有新的版本庫建立後,需要管理員手動新增新的repository,然後設定許可權,很麻煩。下面就是解決方法
例如,使用者dev1執行git push命令在gitolite伺服器上自己的名字空間下建立版本庫。# 管理員dvt0551在~/gitolite-admin/conf/gitolite.conf中新增一下**
@administrators = dvt0551
repo creator/[a-za-z].*
c = @all # 設定使用者可以在自己的名字空間下(/),自己建立版本庫。
rw+ = creator # 設定版本庫建立者對版本庫具有完全許可權。
rw = writers
r = readers @administrators # 讓管理員組administrators的使用者有讀取許可權
# 至於writers & readers這兩個使用者組,是有ssh命令建立,具體可以使用setperms命令來設定。
git push git@192.168.137.121:dev1/repo1.git master
在Ubuntu下快速安裝gitolite
在ubuntu下快速安裝gitolite 我的環境 客戶端 mac lion 10.7 服務端 ubuntu 12.04 ec2 instance 客戶端操作 1.建立 ssh 公鑰私鑰對 ssh keygen t rsa 2.上傳公鑰到ubuntu伺服器 scp ssh id rsa.pub ub...
UOS 下的VScode 使用經驗
我已經把uos作為我的主力工作機。遇到麻煩就遠端登入到windows,嘿嘿。現在使用vscode 進行主力c 和 c 開發。vscode 本質上是乙個文字編輯器,各種外掛程式均以單專案為目標設計。進行多專案開發時,語法提示之類的東西就變得很麻煩了。這裡記錄一下主要的一些心得。不管你有多少專案,最好還...
使用gitolite管理git許可權
1 伺服器上新增專用管理賬戶git,並在伺服器上安裝git 2 建立本地機器的公私鑰 3 伺服器安裝gitolite 4 倉庫新增與管理 5 新增使用者並管理使用者許可權 6 修改管理員的公鑰 7 修復管理員的許可權 一 伺服器上安裝git略過 二 建立本地機器的公私鑰 ssh keygen f s...