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 安装 onigurumaoniguruma-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