Git是一個什么東西我就不介紹了,下文介紹的主要是說Git權(quán)限的一個管理工具配置了,有興趣的和小編來學學吧.
文章中使用的server,指的是的服務器端的公網(wǎng)ip,/mnt是我的阿里云外掛盤,新建用戶不指定目標位置,會自動在/home下生成.
Gitolite配置
1、在指定目錄/mnt/git下建立一個git的用戶并給用戶git設(shè)置密碼,服務器端-用戶:root.
useradd -d /mnt/git -s /bin/bash git
passwd git
測試是否建立成功,如果通過ssh連接成功即證明用戶已經(jīng)建立成功.
ssh git@server
2、clone gitolite,服務器端-用戶:git
- // 切換到git用戶
- su git
- // 切換到git根目錄
- cd
- // clone gitolite
- git clone https://github.com/sitaramc/gitolite.git
成功后會在根目錄看到一個gitolites的目錄.
3、客戶端生成秘鑰(客戶端)
ssh-keygen
會在你登錄的用戶的目錄下找到.ssh目錄,我的目錄是C:/Users/new/.ssh,復制id_rsa.pub到d盤根目錄,通過ssh上傳id_rsa.pub,并重命名為admin.pub.
- // 切換到d盤目錄執(zhí)行
- scp id_rsa.pub git@server:admin.pub
執(zhí)行完成后,切換到服務器端可以在git用戶的根目錄下找到admin.pub.
4、開始安裝gitolite(服務器端-用戶:git),所有操作都是在git的根目錄.
注意點:進入.ssh目錄,如果有authorized_keys,刪除即可。
- // 新建bin目錄
- mkdir bin
- // 安裝gitolite,默認會安裝到bin,如果想安裝到你自己之的指定的目錄請參考官方
安裝 -to
- gitolite/install -ln
- // 配置秘鑰
- bin/gitolite setup -pk admin.pub
測試是否執(zhí)行成功:首先git根目錄下是否生成了projects.list和repositories,同時可以進入.ssh,可以看到新生成的authorized_keys,以后每一次提交新用戶都會寫到這個里邊,判斷是否用戶添加成功,看這個里邊文件是否新增了那個用戶的key即可.
5、客戶端clone gitolite-admin(客戶端)
- // 結(jié)尾不需要加.git
- git clone git@server:gitolite-admin
6、添加新用戶(客戶端)
修改gitolite-admin/conf/gitolite.conf
- @developer = weiwei1628 mac
- repo gitolite-admin
- RW+ = weiwei1628 mac
- repo testing
- RW+ = @all
- repo anhei //Vevb.com
- RW+ = @developer
將新用戶的key都放到keydir,push到服務器即可,查看是否成功,去服務器進入git用戶,查看.ssh/authorized_keys,里邊會多了新的key.
Gitweb配置
1、安裝(服務器端-用戶:root)
yum install gitweb
2、配置(服務器端-用戶:root)
- /etc/gitweb.conf
- $projectroot = "/home/git/repositories/";
3、重啟httpd(服務器端-用戶:root)
service httpd restart
即可看到gitweb的網(wǎng)站,但是會出現(xiàn)404找不到項目的情況,這個問題是權(quán)限問題,查不不少資料,也遇到不少坑.
最終的解決方案:
首先要修改/home/git/.gitolite.rc中的UMASK,將0007修改為0027,修改git及其根目錄的讀寫權(quán)限為 755.
- // 切換到root,在root根目錄執(zhí)行
- chmod -R 755 /mnt/git
網(wǎng)上有配置方法,但是gitweb是找到項目了,但是客戶端有clone不下文件了,提示秘鑰沒權(quán)限.
- chmod g+r /mnt/git/projects.list
- chmod -R g+rx /mnt/git/repositories
新聞熱點
疑難解答
圖片精選