从用户组权限讲起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的分支并切换到该分支下,

[xiaoang@xen118v_dev_app ~/front/home]$ git checkout -b dev
Switched to a new branch 'dev'
git branch    ###查看分支信息,带*号表示当前所处在哪个分支

[xiaoang@xen118v_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 "haiyan.xu.vip@gmail.com"


二、生成SSH密钥过程:
1.查看是否已经有了ssh密钥:cd ~/.ssh
如果没有密钥则不会有此文件夹,有则备份删除
2.生存密钥:

$ ssh-keygen -t rsa -C “haiyan.xu.vip@gmail.com”
按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”里面的公钥。


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值