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

相关文章

IDEA和GIT关于文件中LF和CRLF问题及解决

《IDEA和GIT关于文件中LF和CRLF问题及解决》文章总结:因IDEA默认使用CRLF换行符导致Shell脚本在Linux运行报错,需在编辑器和Git中统一为LF,通过调整Git的core.aut... 目录问题描述问题思考解决过程总结问题描述项目软件安装shell脚本上git仓库管理,但拉取后,上l

Linux创建服务使用systemctl管理详解

《Linux创建服务使用systemctl管理详解》文章指导在Linux中创建systemd服务,设置文件权限为所有者读写、其他只读,重新加载配置,启动服务并检查状态,确保服务正常运行,关键步骤包括权... 目录创建服务 /usr/lib/systemd/system/设置服务文件权限:所有者读写js,其他

基于Python开发Windows自动更新控制工具

《基于Python开发Windows自动更新控制工具》在当今数字化时代,操作系统更新已成为计算机维护的重要组成部分,本文介绍一款基于Python和PyQt5的Windows自动更新控制工具,有需要的可... 目录设计原理与技术实现系统架构概述数学建模工具界面完整代码实现技术深度分析多层级控制理论服务层控制注

在Node.js中使用.env文件管理环境变量的全过程

《在Node.js中使用.env文件管理环境变量的全过程》Node.js应用程序通常依赖于环境变量来管理敏感信息或配置设置,.env文件已经成为一种流行的本地管理这些变量的方法,本文将探讨.env文件... 目录引言为什么使php用 .env 文件 ?如何在 Node.js 中使用 .env 文件最佳实践引

python库pydantic数据验证和设置管理库的用途

《python库pydantic数据验证和设置管理库的用途》pydantic是一个用于数据验证和设置管理的Python库,它主要利用Python类型注解来定义数据模型的结构和验证规则,本文给大家介绍p... 目录主要特点和用途:Field数值验证参数总结pydantic 是一个让你能够 confidentl

Git进行版本控制的实战指南

《Git进行版本控制的实战指南》Git是一种分布式版本控制系统,广泛应用于软件开发中,它可以记录和管理项目的历史修改,并支持多人协作开发,通过Git,开发者可以轻松地跟踪代码变更、合并分支、回退版本等... 目录一、Git核心概念解析二、环境搭建与配置1. 安装Git(Windows示例)2. 基础配置(必

Git打标签从本地创建到远端推送的详细流程

《Git打标签从本地创建到远端推送的详细流程》在软件开发中,Git标签(Tag)是为发布版本、标记里程碑量身定制的“快照锚点”,它能永久记录项目历史中的关键节点,然而,仅创建本地标签往往不够,如何将其... 目录一、标签的两种“形态”二、本地创建与查看1. 打附注标http://www.chinasem.cn

SpringBoot AspectJ切面配合自定义注解实现权限校验的示例详解

《SpringBootAspectJ切面配合自定义注解实现权限校验的示例详解》本文章介绍了如何通过创建自定义的权限校验注解,配合AspectJ切面拦截注解实现权限校验,本文结合实例代码给大家介绍的非... 目录1. 创建权限校验注解2. 创建ASPectJ切面拦截注解校验权限3. 用法示例A. 参考文章本文

SpringBoot 多环境开发实战(从配置、管理与控制)

《SpringBoot多环境开发实战(从配置、管理与控制)》本文详解SpringBoot多环境配置,涵盖单文件YAML、多文件模式、MavenProfile分组及激活策略,通过优先级控制灵活切换环境... 目录一、多环境开发基础(单文件 YAML 版)(一)配置原理与优势(二)实操示例二、多环境开发多文件版

Redis实现高效内存管理的示例代码

《Redis实现高效内存管理的示例代码》Redis内存管理是其核心功能之一,为了高效地利用内存,Redis采用了多种技术和策略,如优化的数据结构、内存分配策略、内存回收、数据压缩等,下面就来详细的介绍... 目录1. 内存分配策略jemalloc 的使用2. 数据压缩和编码ziplist示例代码3. 优化的