当前位置: 首页 > 工具软件 > Gitolite > 使用案例 >

gitolite做git的权限管理

岑畅
2023-12-01

1. 创建git管理用户

# 创建git用户
useradd git
# 设置git密码
passwd git

2. 生成git管理用户密钥

# 切换git用户
su git
# 生成一对 RSA 密钥
ssh-keygen -t rsa
# 一路回车下来创建成功

# 进入密钥的目标,将公钥文件改名
cd /home/git/.ssh
mv id_rsa.pub admin.pub

3. 安装gitolite

# 进入 git 用户主目录(~)
cd /home/git
# 下载 gitolite 的仓库
git clone git://github.com/sitaramc/gitolite
# 创建 bin 文件夹
mkdir -p $HOME/bin
# 安装 gitolite
gitolite/install -to $HOME/bin

4. 配置Gitolite

# 进入密钥目录
cd /home/git/.ssh
# 将管理的公钥文件 setup 到 gitolite 中
$HOME/bin/gitolite setup -pk admin.pub
# 切回git主目录,多出了一个文件、一个文件夹
cd /home/git
ls
# projects.list 文件:仓库列表文件(gitolite自动创建)
# repositories 文件夹:存放所有 git 仓库的文件夹
# 	repositories 文件夹已经存在两个仓库 gitolite-admin.git、test.git
# gitolite-admin.git  管理配置权限的仓库
# testing.git         测试仓库
# 管理员把 gitolite-admin 直接 clone 到本地,就可以进行管理 git 服务

5. 下载服务器端的远程管理仓库

git用户下配置 gitolite-admin,也可以在其他电脑上下载 gitolite-admin 进行管理。
注:使用其他电脑进行管理,需要将其他电脑生产的公钥文件 setup 到 gitolite 中。

# 进入 git 主目录
cd /home/git
# 下载远程管理仓库, 请把 192.168.xx.xx 换成你自己服务器的域名或者ip
git clone git@192.168.xx.xx:gitolite-admin
# 进入 gitolite-admin 目录,可以看到 conf、keydir 两个文件夹
cd gitolite-admin
# 文件夹解释
# keydir  用来存放所有用户的pub公钥文件的,当前目录有 admin.pub 文件
# conf    用来配置 Git 仓库、用户、用户组权限的,由目录下 gitolite.conf 文件来配置

6. 配置gitolite.conf

# 进入 conf 目录,编辑 gitolite.conf
cd conf
vi gitolite.conf
# 文件内容如下:
  repo gitolite-admin  # 仓库名gitolite-admin
  RW+     =   admin    # 用户 admin 拥有可读写权限
  repo testing         # 仓库名testing
  RW+     =   @all     # 用户组 all 拥有可读写权限

仿照gitolite-admin仓库和testing仓库格式新建仓库可配置权限例如:

# 文件内容如下:
  @admin = admin    # 定义用户组
  @dev = admin devuser  # 定义dev用户组
  repo gitolite-admin  # 仓库名gitolite-admin
  RW+     =   admin    # 用户 admin 拥有可读写权限
  repo testing         # 仓库名testing
  RW+     =   @all     # 用户组 all 拥有可读写权限
  repo 仓库名
  RW+ master = @admin  # admin组里的用户才可以操作master分支
  RW dev = @dev   	   # dev组里的用户才可以操作dev分支

配置完之后,将用户的公钥放入keydir文件夹中并把名字改成和上面的用户名一致
1. git add .
2. git commit -m “初始化项目”
3. git push

 类似资料: