通过gitolite控制权限
git默认是所有用户权限都一样,可以用第三方工具来对用户权限进行控制,也可以用GitLab来对仓库进行管理。以下是使用gitolite来进行权限管理
安装gitolite git服务器上执行以下操作: 前提是已经有git服务和git用户,git用户的passwd属性为/bin/bash,且上传了管理员用户公钥(本文密钥名称为admin.pub)到服务器
git clone https://github.com/sitaramc/gitolite #下载gitolite代码
mkdir /home/git/bin #创建gitolite安装后的bin目录,主要为git用户操作,建议放在git宿主目录
su git #切换到git用户
cd gitolite #切换到检出的gitllite代码目录
install -to /home/git/bin #安装,并指定安装目录
/home/git/bin/gitolite setup -pk admin.pub #添加管理员的公钥并初始化
# 初始化操作后会在当前目录(git目录)创建仓库目录(repositories),并在里面创建两个库(gitolite-admin.git testing.git),一个是管理库,一个是测试库
# 在有管理员私钥的客户端检出gitolite-admin.git,该库将用做权限控制。“-” 去掉某一个权限
git clone git@git_domain:gitolite-admin.git
cd gitolite-admin
vi conf/gitolite.conf #权限配置文件
# user group
@admin= admin tom #设置admin用户组,组内包含admin 和 tom
# repository group
@app = @htmi @api #设置仓库组,组内包含html 和 api这两个仓库
# Repository Permission
repo gitolite-admin #库名
RW+ = admin # 权限控制,分RW+(读写推) RW(读写) R(只读)一行一个用户
RW+ = @admin #给@admin组分配权限
R = test #给test用户只读权限
- refs/tags/V[0-9] = jerry #删除该用户创建以“v”+数字开头的任何标签权限
- master = tom #删除该用户对master分支相关的操作权限
repo testing
RW+ = @all #所有用户
repo @app #仓库组
RW+ = @admin #给仓库组设置@admin用户组权限
vi keydir/username.pub # 添加新用户的公钥文件
git add .
git commit -m ‘add user ’
git push origin master添加全新的repository
在上面提到的gitolite.conf文件中配置好对应的名称和权限,再push到server即可,server会自动帮你创建一个empty的bare repository。
最后更新于