git多用户管理及权限控制

2024-09-06 14:18

本文主要是介绍git多用户管理及权限控制,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

usermod -d /gitResp git
1
2
在本地clone项目 
 
要是能成功clone代码 那么该用户就建立成功了。

二 权限管理 
1.最简单的方法 
最简单的方式就是添加用户,然后设置用户对某个文件夹得读写权限就行了。这种方式是最简单的。除了创建用户,最好再创建不同的用户组,然后江将不同的项目文件件归属于不同的用户组,最后通过控制账户的所属用户组来实现不同用户对于不同项目的读写权限。 

通过上面用户+用户组的方式就可以管理多个用户了。 
但是如果有几十个开发者,那就意味着你要新建几十个用户。就算你不厌其烦的添加了几十个用户,但是管理这几十个用户,也不是一件很方便的时。这个是时候往往可以使用下面提到的这种方法。 
2.公钥登录 
公钥登录的好处有: 
1)免密码检验,不用每次提交或者更新都需要密码。 
2)不用建立n多个用户。让多个git用户公用同一个git用户。 
具体操作: 
首先在共用的用户主目录下建立.ssh文件夹

mkdir .ssh
1
进入.ssh

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

ssh-keygen -t rsa 
1
新建authorized_keys文件保存公钥(多个公钥换行处理)

touch authorized_keys 
1
将前面生成的id_rsa.pub复制到authorized_keys 


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

git config --global user.name "yangyangwang"

git config --global user.email wang839305939@outlook.com 
1
2
3
然后在客户端运行ssh-keygen -t rsa 生存秘钥对,然后到相对应的地方将公钥id_rsa.pub上传到服务器中git1主目录的authorized_keys文件中去

ssh-keygen -t rsa
1
然后通过上面公用的用户名就可以从服务器clone项目了。

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

这篇关于git多用户管理及权限控制的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1142241

相关文章

Spring Security 基于表达式的权限控制

前言 spring security 3.0已经可以使用spring el表达式来控制授权,允许在表达式中使用复杂的布尔逻辑来控制访问的权限。 常见的表达式 Spring Security可用表达式对象的基类是SecurityExpressionRoot。 表达式描述hasRole([role])用户拥有制定的角色时返回true (Spring security默认会带有ROLE_前缀),去

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

软考系统规划与管理师考试证书含金量高吗?

2024年软考系统规划与管理师考试报名时间节点: 报名时间:2024年上半年软考将于3月中旬陆续开始报名 考试时间:上半年5月25日到28日,下半年11月9日到12日 分数线:所有科目成绩均须达到45分以上(包括45分)方可通过考试 成绩查询:可在“中国计算机技术职业资格网”上查询软考成绩 出成绩时间:预计在11月左右 证书领取时间:一般在考试成绩公布后3~4个月,各地领取时间有所不同

git使用的说明总结

Git使用说明 下载安装(下载地址) macOS: Git - Downloading macOS Windows: Git - Downloading Windows Linux/Unix: Git (git-scm.com) 创建新仓库 本地创建新仓库:创建新文件夹,进入文件夹目录,执行指令 git init ,用以创建新的git 克隆仓库 执行指令用以创建一个本地仓库的

安全管理体系化的智慧油站开源了。

AI视频监控平台简介 AI视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒,省去繁琐重复的适配流程,实现芯片、算法、应用的全流程组合,从而大大减少企业级应用约95%的开发成本。用户只需在界面上进行简单的操作,就可以实现全视频的接入及布控。摄像头管理模块用于多种终端设备、智能设备的接入及管理。平台支持包括摄像头等终端感知设备接入,为整个平台提

从状态管理到性能优化:全面解析 Android Compose

文章目录 引言一、Android Compose基本概念1.1 什么是Android Compose?1.2 Compose的优势1.3 如何在项目中使用Compose 二、Compose中的状态管理2.1 状态管理的重要性2.2 Compose中的状态和数据流2.3 使用State和MutableState处理状态2.4 通过ViewModel进行状态管理 三、Compose中的列表和滚动

git ssh key相关

step1、进入.ssh文件夹   (windows下 下载git客户端)   cd ~/.ssh(windows mkdir ~/.ssh) step2、配置name和email git config --global user.name "你的名称"git config --global user.email "你的邮箱" step3、生成key ssh-keygen

查看提交历史 —— Git 学习笔记 11

查看提交历史 查看提交历史 不带任何选项的git log-p选项--stat 选项--pretty=oneline选项--pretty=format选项git log常用选项列表参考资料 在提交了若干更新,又或者克隆了某个项目之后,你也许想回顾下提交历史。 完成这个任务最简单而又有效的 工具是 git log 命令。 接下来的例子会用一个用于演示的 simplegit

记录每次更新到仓库 —— Git 学习笔记 10

记录每次更新到仓库 文章目录 文件的状态三个区域检查当前文件状态跟踪新文件取消跟踪(un-tracking)文件重新跟踪(re-tracking)文件暂存已修改文件忽略某些文件查看已暂存和未暂存的修改提交更新跳过暂存区删除文件移动文件参考资料 咱们接着很多天以前的 取得Git仓库 这篇文章继续说。 文件的状态 不管是通过哪种方法,现在我们已经有了一个仓库,并从这个仓

忽略某些文件 —— Git 学习笔记 05

忽略某些文件 忽略某些文件 通过.gitignore文件其他规则源如何选择规则源参考资料 对于某些文件,我们不希望把它们纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。通常它们都是些自动生成的文件,比如日志文件、编译过程中创建的临时文件等。 通过.gitignore文件 假设我们要忽略 lib.a 文件,那我们可以在 lib.a 所在目录下创建一个名为 .gi