Linux下为git添加多个用户操作项目

作者: 小疯子 分类: 默认 发布时间: 2018-10-25 20:07

一、说明

目的是想让公司的其他战友都有针对于服务器的相关访问用户,然后又需要他们在某一个项目上执行git的拉取、推送等操作,这里通过gitosis来管理git和进行用户权限的分配,假设我们的需要新建的项目叫project_test,需要添加的战友用户有userone、usertwo,为了后期对战友们进行管理,最好是将战友们放到同一个群组里,然后这两个战友有对项目project_test进行git操作的权利;

前提是已经安装和搭建好了git与gitosis,未搭建的到linux下的php环境搭建——9. 配置git和gitosis

二、开始

  1. 添加一个群组developers,为后面的战友用户添加做准备
    shell> groupadd developers
  2. 添加战友用户,他们属于前面的群组
    shell> useradd -g developers userone
    
    shell> useradd -g developers usertwo
  3. 然后查看一下这两个用户添加成功没有
    shell> cat /etc/passwd #在这个文件中可以看到目前服务器上拥有的用户
    
    shell> id userone #这个命令可以看到userone的大体信息,看到它属于哪个group
  4. 下面就以userone为例进行编写,首先生成userone的秘钥和公钥
    shell> su - userone #使用userone用户访问shell
    
    shell> ssh-keygen -t rsa #生成秘钥,我是直接一路回车点了,生成的秘钥在用户的家目录/home/userone下
    
    shell> exit #退出userone的用户回到root用户
  5. 将用户的公钥配置到gitosis-admin下,这样这个用户就可以对指定的项目进行git访问了
    shell> cd /home/userone
    
    shell> cp /home/userone/.ssh/id_rsa.pub /root/gitosis-admin/keydir/  #root下的gitosis-admin是在gitosis安装那篇文章的最后clone出来的
    
    shell> cd /root/gitosis-admin/keydir/
    
    shell> mv id_rsa.pub userone.pub #将userone的公钥重命名
    
    shell> git add * #提交至gitosis-admin这个管理项目的git中去
    
    shell> cd ..
    
    shell> vi gitosis.conf #添加userone的账号和新项目project_test,内容如下
    
                [group project_test]
    
               members = userone
    
               writable = project_test
    
    shell> git commit -a -m "add new project and userone key" #提交刚刚添加和修改的内容
    
    shell> git push origin master #推送
  6.  使用用户userone克隆出项目project_test
    shell> cd /data #我要把项目部署到/data/wwwroot下,先把wwwroot的所属组更改为developers,之前的组是root
    
    shell> chgrp -R developers wwwroot #将wwwroot目录及以下所属群组更改为developers,这样以后只有属于developers组的用户才可以进行项目的修改
    
    shell> chmod -R 775 wwwroot #为群组赋予读写和执行的权限
    
    shell> su - userone
    
    shell> cd /data/wwwroot
    
    shell> mkdir project_test
    
    shell> chmod -R 775 project_test #不知道有没有用,就随手改了一下这个权限
    
    shell> cd project_test
    
    shell> git init
    
    shell> git remote add origin git@SERVER:project_test.git #SERVER是你的服务器的ip
    
    shell> vi index.html#创建个index.html,里面随便写点东西
    
    shell> git add *
    
    shell> git commit -am "初始化" #第一次需要输入邮箱和用户名:git config --global user.email "you@example.com"    git config --global user.name "Your Name"
    
    shell> git push origin master #提示内容就选yes即可
    
              Are you sure you want to continue connecting (yes/no)? yes

备注:目前这一块的功能还没有摸透彻,不是很清楚多个用户操作开发项目应该是怎样的设计,后期了解的更多会进一步更新

0