设为首页 收藏本站
查看: 1055|回复: 0

[经验分享] git远程仓库创建及权限管理(二)多个项目

[复制链接]

尚未签到

发表于 2018-1-13 14:46:33 | 显示全部楼层 |阅读模式
  本文介绍ubutu下使用gitolite实现多项目的权限管理
  1、安装git
  sudo apt-get install git
  2、设置Git的user name和email:
  git config --global user.name "git_name"
  git config --global user.email "email"
  3、生成公钥
  ssh-keygen -t rsa -C "email"
  如果不设置密码直接3个回车即可,生成的公钥(id_rsa.pub)会在主目录的.ssh文件下面。
  拷贝id_rsa.pub到tmp目录下,后面会用到
  cp ~/.ssh/id_rsa.pub yourname.pub
  4、添加一个git用户
  sudo adduser git
  5、安装gitolite
  切换到git用户
  su git
  进入git主目录
  cd /home/git
  创建bin目录
  mkdir bin
  下载gitolite
    git clone git://github.com/sitaramc/gitolite
  安装gitolite
  gitolite/install -ln ~/bin # please use absolute path here
  gitolite setup -pk /tmp/yourname.pub
  6、克隆gitolite-admin 
  git clone git@127.0.0.1:/home/git/repositories/gitolite-admin #我是再本地模拟配置的,所以ip为本地
  到此工作完成。

  7、管理
  Gitolite 会创建一个特殊仓库 gitolite-admin ,用于管理用户权限及仓库信息。
  git clone git@host_git_repo:gitolite-admin
  1、 添加用户
  以添加位于主机 host-dev-1 的用户 dev_user_1 为例:
  clone Gitolite 管理配置目录 gitolite-admin 到本地
  将用户 dev_user_1 的 SSH 公钥保存到 gitolite-admin/keydir/ ,文件名要遵守 Gitolit 要求的格式:
  * 不能将同一密钥分配给不同用户,虽然在其他情况下是没有任何问题的,但是 gitolite 是通过密钥来区分和检索不同用户的,我理解它的工作原理是,它读取 git 用户下 .ssh/authorized_keys 文件,读入为 Hash 结构,所以刷新该文件时,各条记录是无次序的,但是一个用户连接进来时,Gitolite 读取用户的公钥,并按文件 .ssh/authorized_keys 中公钥出现顺序比对,找到符合的第一个,然后确认就是该文件中公钥对应的用户,然后根据该用户确认权限。也就是说,即使连接的用户是位于主机 host-dev-1 的用户 dev_user_1 ,如果 .ssh/authorized_keys 中有用户 dev_user_2 的公钥与它相同,并且首先出现,那么 Gitolite 认为 dev_user_1 就是 dev_user_2 ,并使用 dev_user_2 的权限,这不是我们需要的
  * 文件需要以 .pub 结尾,否则不能被 Gitolite 导入
  * Gitolite 仍然支持(兼容)旧的命名规范,对于本例是 dev_user_1@host-dev-1.pub ,注意,host-dev-1 是用户所在主机名(或其它标识信息),在 Gitolite 权限配置文件 conf/gitolite.conf 中不应当出现。Gitolite 仍然支持 Email 地址形式的主机名,但必须至少存在一个 "**.**" ,比如 dev_user_1@gmail.com ,Gitolite 以此认定是一个 Email 地址,对于 dev_user_1@gmail-com ,它认为 gmail-com 是一个主机名(或其它标识信息),Email 形式的用户名需要完整地写在 Gitolite 权限配置文件 conf/gitolite.conf 中
  修改权限配置文件 conf/gitolite.conf ,为该用户分配指定的权限,注意,用户名是 dev_user_1 ,而非 dev_user_1@host-dev-1 : repo DEV_REPO
  RW+     =   dev_user_1
  提交到本地,然后推送到 gitolite-admin 远程仓库
  2、删除用户
  删除用户也很简单,删除用户的公钥,删除权限配置文件 conf/gitolite.conf 中的用户名
  提交到本地,然后推送到 gitolite-admin 远程仓库
  3、添加/删除仓库
  如果是添加一个新的仓库,那么操作十分简单,直接在权限配置文件 conf/gitolite.conf 中添加该仓库名: repo New_DEV_REPO
  提交到本地,然后推送到 gitolite-admin 远程仓库,Gitolite 会自动创建这个仓库
  

gitolite all-in-one page  

  在Ubuntu下快速安装gitolite

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-434701-1-1.html 上篇帖子: svn 和 git的区别 下篇帖子: git 生成公钥与私钥
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表