天天看點

從使用者組權限講起git多人協作模式庫的建立(ssh)

如果想建立一個基于固定使用者組多人協作的git庫,那麼我們就可以從建立使用者組入手。

比如我們建立一個git使用者組,規定此組下的使用者才有權限操作某個git庫,

grep git /etc/group    ##檢視是否有git使用者組,如果沒有此使用者組,就先新添使用者組:


groupadd git   ### 添加git使用者組


sudo  usermod -a -G git xiaoang   ###将xiaoang加入git組
           

如果想要将某個使用者從git組中删除:

gpasswd -d 使用者名 組名    ## 将使用者從組删除

或者

usermod -G git  yangxue-pd    ###将yangxue-pd使用者從git另一組中移動到git組中,相當于從别組中删除

添加完使用者後,可以驗證一下user是否屬于git組了

groups xiaoang   ##檢視xiaoang屬于哪個組

接下來建立git庫

mkdir  web.git  //建立一個web.git庫

cd  web.git

git init --bare --shared=group    //初始化空庫為一個基本的可分享的庫
           

ok一個多人協作的git庫就建立成功了

其他人可以clone這個庫了

git  clone ssh://your address/~/path/web.git

另一種方式我們通過git init直接初始化一個git目錄庫

git init --bare --shared=group web     //意思是我們建立了一個目錄為web的git庫

我們還可以将該目錄的權限限定到指定的開發者, 上面的步驟我們建立了git使用者組,在這我們把web目錄的使用者權限改為git組

sudo chgrp -R git git/web/         //将git/web/目錄的組權限更改為git組


chmod -R g+rw web               //将web目錄加上全局讀寫權限


chmod g+s `find web -type d`  //找出web目錄裡所有建立檔案,并把組權限繼承目錄
           

至此隻有屬于git群組的使用者才能使用此git庫,是不是安全一些呢

其它補充知識:

上面步驟建立的git庫,是一個多人協作的空庫,并不是指你平時開發要用到的版本庫, 你需要通過git clone 生成一個自己的開發庫。

git  clone ssh://your address/~/path/web.git

通過git remote -v 可以看到我們的公共庫的資訊

然後我們執行平常的開發寫入工作

echo 111 >> a.html 

git add a.html

git commit -m'添加新的檔案'

git push origin master   ## 将你的修改push到公共庫的master分支上
           

但更為規範的是,平常開發都應該建立一個分支,在需要上線的時候才會merge到master分支,然後再push到遠端庫的。

是以我們可以:

git checkout -b dev   ### 建立一個dev的分支并切換到該分支下,

[[email protected]_dev_app ~/front/home]$ git checkout -b dev
Switched to a new branch 'dev'
           

git branch    ###檢視分支資訊,帶*号表示目前所處在哪個分支

[[email protected]_dev_app ~/front/home]$ git branch
  master
* dev
           

再補充

sudo chown -R xiaoang webhome/ 更改webhome/的使用者為xiaoang

chown [-R] 賬号名稱:使用者組名稱 檔案或目錄

git config pack.windowMemory 10m
git config pack.packSizeLimit 20m
git repack -a -d
           

github的ssh配置如下:

一 、

設定git的user name和email:

$ git config --global user.name "xuhaiyan"      
$ git config --global user.email "[email protected]"      

二、生成SSH密鑰過程:

1.檢視是否已經有了ssh密鑰:cd ~/.ssh

如果沒有密鑰則不會有此檔案夾,有則備份删除

2.生存密鑰:

$ ssh-keygen -t rsa -C “[email protected]

按3個回車,密碼為空。

Your identification has been saved in /home/tekkub/.ssh/id_rsa.

Your public key has been saved in /home/tekkub/.ssh/id_rsa.pub.

The key fingerprint is:

………………

最後得到了兩個檔案:id_rsa和id_rsa.pub

3.添加密鑰到ssh:ssh-add 檔案名

需要之前輸入密碼。

4.在github上添加ssh密鑰,這要添加的是“id_rsa.pub”裡面的公鑰。