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

相关文章

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

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

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

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

SpringBoot集成XXL-JOB实现任务管理全流程

《SpringBoot集成XXL-JOB实现任务管理全流程》XXL-JOB是一款轻量级分布式任务调度平台,功能丰富、界面简洁、易于扩展,本文介绍如何通过SpringBoot项目,使用RestTempl... 目录一、前言二、项目结构简述三、Maven 依赖四、Controller 代码详解五、Service

深入解析C++ 中std::map内存管理

《深入解析C++中std::map内存管理》文章详解C++std::map内存管理,指出clear()仅删除元素可能不释放底层内存,建议用swap()与空map交换以彻底释放,针对指针类型需手动de... 目录1️、基本清空std::map2️、使用 swap 彻底释放内存3️、map 中存储指针类型的对象

Linux系统管理与进程任务管理方式

《Linux系统管理与进程任务管理方式》本文系统讲解Linux管理核心技能,涵盖引导流程、服务控制(Systemd与GRUB2)、进程管理(前台/后台运行、工具使用)、计划任务(at/cron)及常用... 目录引言一、linux系统引导过程与服务控制1.1 系统引导的五个关键阶段1.2 GRUB2的进化优

Spring Security 前后端分离场景下的会话并发管理

《SpringSecurity前后端分离场景下的会话并发管理》本文介绍了在前后端分离架构下实现SpringSecurity会话并发管理的问题,传统Web开发中只需简单配置sessionManage... 目录背景分析传统 web 开发中的 sessionManagement 入口ConcurrentSess

Linux之UDP和TCP报头管理方式

《Linux之UDP和TCP报头管理方式》文章系统讲解了传输层协议UDP与TCP的核心区别:UDP无连接、不可靠,适合实时传输(如视频),通过端口号标识应用;TCP有连接、可靠,通过确认应答、序号、窗... 目录一、关于端口号1.1 端口号的理解1.2 端口号范围的划分1.3 认识知名端口号1.4 一个进程

SpringBoot结合Knife4j进行API分组授权管理配置详解

《SpringBoot结合Knife4j进行API分组授权管理配置详解》在现代的微服务架构中,API文档和授权管理是不可或缺的一部分,本文将介绍如何在SpringBoot应用中集成Knife4j,并进... 目录环境准备配置 Swagger配置 Swagger OpenAPI自定义 Swagger UI 底

Linux权限管理与ACL访问控制详解

《Linux权限管理与ACL访问控制详解》Linux权限管理涵盖基本rwx权限(通过chmod设置)、特殊权限(SUID/SGID/StickyBit)及ACL精细授权,由umask决定默认权限,需合... 目录一、基本权限概述1. 基本权限与数字对应关系二、权限管理命令(chmod)1. 字符模式语法2.

Spring Boot集成/输出/日志级别控制/持久化开发实践

《SpringBoot集成/输出/日志级别控制/持久化开发实践》SpringBoot默认集成Logback,支持灵活日志级别配置(INFO/DEBUG等),输出包含时间戳、级别、类名等信息,并可通过... 目录一、日志概述1.1、Spring Boot日志简介1.2、日志框架与默认配置1.3、日志的核心作用