我是靠谱客的博主 俏皮樱桃,这篇文章主要介绍Gitlab禁止用户创建群组和项目,现在分享给大家,希望可以做个参考。

Gitlab 默认注册和创建的用户是拥有创建群组和创建项目权限的,在企业应用中,可能更希望普通用户没有这样的权限,需要通过申请获得。
下文将通过修改配置说明Gitlab限制创建群组和创建项目权限。

配置方法

1、创建用户界面有设置这两个权限的配置,这个只有管理员可以设置,用户自己的用户界面是没有的,如下所示:
在这里插入图片描述
2、如果我们希望设置这两个配置的默认值,可以按如下配置处理

Projects limit 在 Settings > Gereral 中可以直接配置生效:
在这里插入图片描述

Can create group 则需要通过修改配置文件 config/gitlab.rb 后,重启服务生效,如下所示:

复制代码
1
2
3
4
5
### GitLab user privileges # gitlab_rails['gitlab_default_can_create_group'] = true gitlab_rails['gitlab_default_can_create_group'] = false # gitlab_rails['gitlab_username_changing_enabled'] = true

本文截稿版本 gitlab-ce:15.0.2-ce.0 还不支持界面配置

更多内容详见官网文档:https://docs.gitlab.com/ee/raketasks/user_management.html#update-all-users-in-a-given-group-to-project_limit0-and-can_create_group-false

回收存量用户权限

通过脚本对 API 操作完成对现存用户的批量修改操作,回收创建组和创建项目权限

1、先安装 python-gitlab 包

复制代码
1
2
pip3 install python-gitlab

2、保存如下脚本为 gitlab.py 后,执行 python3 gitlab.py 会持续输出日志,等待执行结束

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#!/bin/python3 __autor__ = "chunk" __date__ = "2022-05-10" import gitlab import logging import sys logging.basicConfig( level=logging.INFO, format="%(asctime)s [%(levelname)s] %(message)s", handlers=[ logging.FileHandler("debug.log"), logging.StreamHandler(sys.stdout) ] ) logging.debug('This message is skipped as a level is set as INFO') logging.info('So should this') logging.warning('And this, too') logging.error('Testing non-ASCII character, Ø and ö') url = 'https://gitlab.abc.com/' # gitlab安装地址 private_token = '123456' # gitlab 登录密钥 需自己设置 # 登录 获取gitlab操作对象gl gl = gitlab.Gitlab(url, private_token) # 获取第一页的用户列表 (返回[<User id:1>,<User id:2>]) # users = gl.users.list() # log.info(users) # 获取所有的用户列表 users = gl.users.list(all=True) for a in users: if a.id != 1 and a.id != 2 and a.id != 23 and a.id !=13 and a.id !=4: # 修改用户属性权限 logging.info("正在处理当前用户: {user}".format(user=a.username)) a.can_create_group = False a.projects_limit = 0 a.save() logging.info("用户名:{a} ,名字: {b}, ID: {c}, projects limit: {d},允许创建组: {e}".format(a=a.username,b=a.name,c=a.id,d=a.projects_limit,e=a.can_create_group)) # print(a.username) # print(a.name) # print(a.id) # print(a.projects_limit) # print(a.can_create_group) # print(users) # log.info(users) # 创建用户 """ 常用参数:以下参数都可以使用user对象进行修改 email (必填)-电子邮件 username (必填)-用户名 name (必填)-名称 password (可选)-密码 can_create_group (可选)-用户可以创建组-正确或错误 skip_confirmation (可选)-跳过确认-正确或错误(默认) external (可选)-将用户标记为外部用户-true或false(默认) """ # user = gl.users.create({'email': 'qinsh@qq.com', # 'password': 'qinsh123456', # 'username': 'qinsh', # 'name': '秦始皇'}) # 根据用户ID获取用户对象 # user = gl.users.get(1) # 根据用户Git账号获取用户对象 # user = gl.users.list(username="qinsh")[0] # # 根据用户对象可以进行如下操作 # username = user.username # 获取用户Git账号 # name = user.name # 获取用户姓名 # user_id = user.id # 获取用户ID # # 修改用户属性 # user.external = True # 将用户标记为外部用户 # user.save() # # 删除用户 # gl.users.delete(user_id) # 根据用户ID进行删除 # user.delete() # 根据用户对象直接进行删除

脚本参考:https://blog.csdn.net/u010674101/article/details/124684940


(END)

最后

以上就是俏皮樱桃最近收集整理的关于Gitlab禁止用户创建群组和项目的全部内容,更多相关Gitlab禁止用户创建群组和项目内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(87)

评论列表共有 0 条评论

立即
投稿
返回
顶部