Gitlab权限诠释

Gitlab权限概念

用户具有不同的能力,具体取决于他们在特定组或项目中的访问级别。如果用户同时在组的项目和项目本身中,则使用最高权限级别。

在公共和内部项目中,不会强制实施Guest角色。所有用户都可以创建问题,发表评论,克隆或下载项目代码。

当成员离开团队时, 将自动取消分配所有分配的问题和合并请求。

GitLab 管理员获得所有权限。

权限

用户组的权限

用户组有这几种权限的概念:Guest、Reporter、Developer、Master、Owner
这个概念在设置用户组的时候会遇到,叫做:Add user(s) to the group,比如链接:http://192.168.1.111/admin/groups/组名称

下表完整的列出了Guest,Reporter,Developer,Master,Owner对应的权限。

行为 Guest Reporter Developer Master Owner
浏览组 ✓ ✓ ✓ ✓ ✓
编辑组 ✓
创建项目 ✓ ✓
管理组成员 ✓
移除组 ✓

角色
Gitlab定义了以下几个角色:

Gitlab用户在组中有五种权限:Guest、Reporter、Developer、Master、Owner

Guest:可以创建issue、发表评论,不能读写版本库
Reporter:可以克隆代码,不能提交,QA、PM可以赋予这个权限
Developer:可以克隆代码、开发、提交、push,RD可以赋予这个权限
Master:可以创建项目、添加tag、保护分支、添加项目成员、编辑项目,核心RD负责人可以赋予这个权限
Owner:可以设置项目访问权限 – Visibility Level、删除项目、迁移项目、管理组成员,开发组leader可以赋予这个权限
Gitlab中的组和项目有三种访问权限:Private、Internal、Public

Private:只有组成员才能看到
Internal:只要登录的用户就能看到
Public:所有人都能看到
开源项目和组设置的是Internal

Gitlab权限列表

这里要列一下权限分类,因为gitlab的成员权限不单单只有一种。

  • 项目成员角色
    • Guest – 客人
    • Reporter – 记者
    • Developer – 开发者
    • Master (11.0版本中已重命名为 Maintainer) – 维护者
    • Owner – 所有者
  • 组成员角色
    • Guest – 客人
    • Reporter – 记者
    • Developer – 开发者
    • Master (11.0版本中已重命名为 Maintainer) – 维护者
    • Owner – 维护者
  • GitLab CI-CD 角色
    • Guest, Reporter – 客人,记者
    • Developer – 开发者
    • Maintainer – 维护者
    • Admin – 管理员
  • 工作角色
    • Guest, Reporter – 客人,记者
    • Developer – 开发者
    • Maintainer – 维护者
    • Admin – 管理员

一般管理员邀请用户加入到项目里都需要分配权限,如下:

项目成员权限

注意:在GitLab 11.0中,Master已重命名为Maintainer。

Action Guest Reporter Developer Maintainer Owner
创建新问题 ✓ ✓ ✓ ✓ ✓
创建机密问题 ✓ ✓ ✓ ✓ ✓
查看机密问题 ✓ ✓ ✓ ✓ ✓
留言 ✓ ✓ ✓ ✓ ✓
查看相关问题 ✓ ✓ ✓ ✓ ✓
查看工作列表 ✓ ✓ ✓ ✓ ✓
查看工作日志 ✓ ✓ ✓ ✓ ✓
下载并浏览作业工件 ✓ ✓ ✓ ✓ ✓
查看维基页面 ✓ ✓ ✓ ✓ ✓
查看许可证管理报告 ✓ ✓ ✓ ✓ ✓
查看安全报告 ✓ ✓ ✓ ✓ ✓
查看项目代码 ✓ ✓ ✓ ✓
拉项目代码 ✓ ✓ ✓ ✓
下载项目 ✓ ✓ ✓ ✓
分配问题 ✓ ✓ ✓ ✓
分配合并请求 ✓ ✓ ✓
标签问题 ✓ ✓ ✓ ✓
标签合并请求 ✓ ✓ ✓
创建代码段 ✓ ✓ ✓ ✓
管理问题跟踪器 ✓ ✓ ✓ ✓
管理标签 ✓ ✓ ✓ ✓
查看提交状态 ✓ ✓ ✓ ✓
查看容器注册表 ✓ ✓ ✓ ✓
查看环境 ✓ ✓ ✓ ✓
查看合并请求列表 ✓ ✓ ✓ ✓
管理相关问题 ✓ ✓ ✓ ✓
锁定问题讨论 ✓ ✓ ✓ ✓
从漏洞创建问题 ✓ ✓ ✓ ✓
查看错误跟踪列表 ✓ ✓ ✓ ✓
锁定合并请求讨论 ✓ ✓ ✓
创建新环境 ✓ ✓ ✓
停止环境 ✓ ✓ ✓
管理/接受合并请求 ✓ ✓ ✓
创建新的合并请求 ✓ ✓ ✓
创建新分支 ✓ ✓ ✓
推送到未受保护的分支机构 ✓ ✓ ✓
强制推送到不受保护的分支机构 ✓ ✓ ✓
删除未受保护的分支 ✓ ✓ ✓
添加标签 ✓ ✓ ✓
写一个维基 ✓ ✓ ✓
取消并重试作业 ✓ ✓ ✓
创建或更新提交状态 ✓ ✓ ✓
更新容器注册表 ✓ ✓ ✓
删除容器注册表图像 ✓ ✓ ✓
创建/编辑/删除项目里程碑 ✓ ✓ ✓
查看已批准/列入黑名单的许可 ✓ ✓ ✓
使用安全仪表板 ✓ ✓ ✓
解除漏洞 ✓ ✓ ✓
应用代码更改建议 ✓ ✓ ✓
使用环境终端 ✓ ✓
运行Web IDE的交互式Web终端 ✓ ✓
添加新的团队成员 ✓ ✓
推送到受保护的分支 ✓ ✓
启用/禁用分支保护 ✓ ✓
为开发人员打开/关闭受保护的分支推送 ✓ ✓
启用/禁用标签保护 ✓ ✓
重写/删除Git标签 ✓ ✓
将部署密钥添加到项目中 ✓ ✓
配置项目挂钩 ✓ ✓
管理跑步者 ✓ ✓
管理工作触发器 ✓ ✓
管理变量 ✓ ✓
管理GitLab页面 ✓ ✓
管理GitLab Pages域和证书 ✓ ✓
删除GitLab页面 ✓
查看受访问控制保护的GitLab页面 ✓ ✓ ✓ ✓ ✓
管理集群 ✓ ✓
管理许可证政策 ✓ ✓
编辑评论(由任何用户发布) ✓ ✓
管理错误跟踪 ✓ ✓
切换可见性级别 ✓
将项目转移到另一个名称空 ✓
删除项目 ✓
删除问题 ✓
删除页面 ✓
强行推动受保护的分支机构
删除受保护的分支
查看项目审核事件 ✓ ✓

组成员权限

Action Guest Reporter Developer Maintainer Owner
浏览组 ✓ ✓ ✓ ✓ ✓
编辑组 ✓
创建子组 ✓
在组中创建项目 ✓ ✓ ✓
管理小组成员 ✓
删除组 ✓
管理组标签 ✓ ✓ ✓ ✓
创建/编辑/删除组里程碑 ✓ ✓ ✓
查看组史诗 ✓ ✓ ✓ ✓ ✓
创建/编辑组史诗 ✓ ✓ ✓ ✓
删除组史诗 ✓
查看组审核事件 ✓

GitLab CI / CD权限

Action Guest, Reporter Developer Maintainer Admin
查看提交和工作 ✓ ✓ ✓ ✓
重试或取消工作 ✓ ✓ ✓
擦除作业工件和跟踪 ✓ ✓ ✓
删除项目 ✓ ✓
创建项目 ✓ ✓
更改项目配置 ✓ ✓
添加特定的跑步者 ✓ ✓
添加共享的运行者 ✓
查看系统中的事件 ✓
管理界面 ✓

工作权限

Action Guest, Reporter Developer Maintainer Admin
运行CI作业 ✓ ✓ ✓
从当前项目克隆源和LFS ✓ ✓ ✓
从公共项目克隆源和LFS ✓ ✓ ✓
从内部项目克隆源和LFS ✓ ✓ ✓
私有项目的克隆源和LFS ✓ ✓ ✓
推送源和LFS
从当前项目中提取容器图像 ✓ ✓ ✓
从公共项目中提取容器图像 ✓ ✓ ✓
从内部项目中提取容器图像 ✓ ✓ ✓
从私人项目中提取容器图像 ✓ ✓ ✓
将容器图像推送到当前项目 ✓ ✓ ✓
将容器图像推送到其他项目 ✓

以上是权限明细列表,在给成员分配权限时需要合理分配。

参考资料

https://docs.gitlab.com/ee/user/permissions.html

CentOS 7/8 安装 oniguruma 和 oniguruma-devel

CentOS 7/8 安装 oniguruma和oniguruma-devel 。解决 configure: error: Package requirements (oniguruma) were not met: Package 'oniguruma', required by 'virtual:world', not found 问题。

CentOS 7 安装

yum -y install http://mirror.centos.org/centos-7/7.7.1908/cloud/x86_64/openstack-queens/oniguruma-6.7.0-1.el7.x86_64.rpm
yum -y install http://mirror.centos.org/centos-7/7.7.1908/cloud/x86_64/openstack-queens/oniguruma-devel-6.7.0-1.el7.x86_64.rpm

备用下载:

oniguruma:http://down.24kplus.com/linux/oniguruma/oniguruma-6.7.0-1.el7.x86_64.rpm
oniguruma-devel:http://down.24kplus.com/linux/oniguruma/oniguruma-devel-6.7.0-1.el7.x86_64.rpm

CentOS 8 安装

yum config-manager --set-enabled PowerTools
yum -y install oniguruma oniguruma-devel