git多用户管理及权限控制

用过svn的朋友都知道,每个开发者都需要一个svn账号,通过这个查看项目的提交记录,可以更加清楚项目的开发情况,便于版本控制。git也是如此。所以我们说其实git在很多方面和svn是很相识的。
提到用户,那么用户的管理和权限控制就是避不开的话题了。
一.新建用户
新增git账号其实就是添加一个系统用户,将这个用户作为git账号:
这里写图片描述
首先建新增用户,然后为了避免git用户登录操作系统,可以将新增用户的shell改为git-shell;这样该用户就无法登录操作系统,但是不会影响他提交和更新的操作。
创建远程仓库
这里写图片描述
保证用户对这个文件夹有读写权限(我这里直接将git用户的主目录指向该文件夹,这样改用户就拥有对改文件的读写权限了)

usermod -d /gitResp git

在本地clone项目
这里写图片描述
要是能成功clone代码 那么该用户就建立成功了。

二 权限管理
1.最简单的方法
最简单的方式就是添加用户,然后设置用户对某个文件夹得读写权限就行了。这种方式是最简单的。除了创建用户,最好再创建不同的用户组,然后江将不同的项目文件件归属于不同的用户组,最后通过控制账户的所属用户组来实现不同用户对于不同项目的读写权限。
这里写图片描述
通过上面用户+用户组的方式就可以管理多个用户了。
但是如果有几十个开发者,那就意味着你要新建几十个用户。就算你不厌其烦的添加了几十个用户,但是管理这几十个用户,也不是一件很方便的时。这个是时候往往可以使用下面提到的这种方法。
2.公钥登录
公钥登录的好处有:
1)免密码检验,不用每次提交或者更新都需要密码。
2)不用建立n多个用户。让多个git用户公用同一个git用户。
具体操作:
首先在共用的用户主目录下建立.ssh文件夹

mkdir .ssh

进入.ssh

cd .ssh

执行ssh-keygen -t rsa 生成秘钥对

ssh-keygen -t rsa 

新建authorized_keys文件保存公钥(多个公钥换行处理)

touch authorized_keys 

将前面生成的id_rsa.pub复制到authorized_keys
这里写图片描述

这个需要在开发者电脑生成公钥,然后上传到git服务器上,保存在authorized_keys中。
首先在客户端设置用户名和邮箱,这个不不是登录用户,可以看做是一个别称,用来跟踪代码提交记录的。

git config --global user.name "yangyangwang"

git config --global user.email wang839305939@outlook.com 

然后在客户端运行ssh-keygen -t rsa 生存秘钥对,然后到相对应的地方将公钥id_rsa.pub上传到服务器中git1主目录的authorized_keys文件中去

ssh-keygen -t rsa

然后通过上面公用的用户名就可以从服务器clone项目了。

看看是不是很简单,但是当你实际去搭建环境的时候往往会遇见很多问题,尤其是接触linux不久的小伙伴。具体的坑你们自己去踩吧。反正步骤就是上面这样的。
其实上面两种方式基本上就可以满足小型团队的开发工作了。如果是大公司管理成百上千的开发人员,那么上面的方法就不行了。有兴趣的可以去了解一下Gitosis
Gitosis也是通过公钥的方式来管理权限的。
总结:
如果你只是刚刚开始接触git不久的开发者,那么掌握前面两种方式就好了。毕竟git只是一个版本管理工具,是为我们服务的。不要弄得太复杂,不要把无限的精力放在权限控制上去。
如果你已经对git有比较好的了解了,而前面两种方式又不能很好的满足你的需求。那么你可以学习一下Gitosis
还是那句话,我的文章一般通假字比较多,请见谅!

扫描二维码关注公众号,回复: 1863836 查看本文章

猜你喜欢

转载自blog.csdn.net/wang839305939/article/details/78194944