【05】Jenkins:用户权限管理

写在前面的话

在一个企业研发部门内部,可能存在多个运维人员,而这些运维人员往往负责不同的项目,但是有可能他们用的又是同一个 Jenkins 的不同用户。那么我们就希望实现一个需求,能够不同的用户登录 Jenkins 以后看到不同的项目。Jenkins 提供了简单的权限管理,我们可以在 系统管理 --> 全局安全配置 看到:

但是这里的权限配置太过简略,显然无法满足我们复制的需求,所以在这个时候引入了 Jenkins 的一个插件:Role-based Authorization Strategy

插件:Role-based Authorization Strategy

打开插件中心,我们可以搜索:

重启 Jenkins 以后,再度打开:系统管理 --> 全局安全配置 会发现多了我们刚刚插件的选项

我们选择该配置,同时在 系统管理 中出现了新的选项:

准备工作:

1. 将我们的项目复制成如下用于测试:

2. 新建 3 个测试用户:test / develop / product

打开:系统管理 --> 管理用户

最终用户格式:

配置权限:

打开:系统管理 --> Manage and Assign Roles

我们主要使用上面两种。一个用户想要进行操作必须要有两种角色,一种是全局,一种是 Project:

1. 创建角色:Manage Roles

2. 分配角色:Assign Roles

说明:我们这三个用户其实代表着三个不同的属性,为了区分我给他定义了三种不同角色。这样以后就可以给每个角色授权不一样的权限。

当然,我们这里就给了一个全部的只读权限,用户可以登录,并且修改自己的东西。

3. 创建项目角色:Manage Roles

4. 给用户分配项目权限:Assign Roles

说明:我们给用户分配不同的项目和权限,便于测试对比。

5. 查看权限效果:

test 用户登录后项目:

test 用户项目权限:

test 用户权限说明:test 用户登录后能看到 TEST 开头的项目,包括文件夹,但是对于项目,test 用户都只具有执行权限,而没有修改和配置的权限。

develop 用户登录后项目:

develop 用户项目权限:

develop 用户权限说明:可以看到,因为我们多配置了 Config 权限的原因,develop 相比于 test 用户对于分配给自己权限的项目多了修改配置权限。

product 用户登录后项目:

product 用户对于 TEST 项目权限:

product 用户对于 PRODUCT 项目权限:

product 用户授权说明:我们可以看到,PROCUDT 项目由于授权了 config 权限,所以用户能够修改,TEST 项目没用 config 权限,虽然同样是授权给了 product 用户,但是也是只有执行权限而已。

至此,基本的权限管理大致完成!

特别注意

在我们设置用户权限的时候,默认已经包含了管理员角色:

如果我们一不小心把这个勾去掉了,然后就炸了!

最终的解决办法是:

1. 停止 Jenkins。

2. 备份 /data/jenkins/jenkins-data/config.xml 配置文件。

3. 修改配置:

<useSecurity>true</useSecurity>

# 改为
<useSecurity>false</useSecurity>

4. 删除权限配置:建议文件拿来了使用 nodepad++ 类似的工具修改

删除:<authorizationStrategy> 标签及其内部内容。

删除:<securityRealm> 标签及其内部内容。

5. 启动 jenkins,此时不需要用户名密码,查看设置:

默认没有启动安全,我们需要重新配置我们之前的东西!

小结

Role 插件相比于系统的虽然完善了不少,但是仍然在很多时候显得不那么只能,而且前端似乎并不友好。但没办法,这东西没得挑。

原文地址:https://www.cnblogs.com/Dy1an/p/11202544.html

时间: 2024-10-01 22:47:56

【05】Jenkins:用户权限管理的相关文章

Jenkins 用户权限管理

Jenkins 用户权限管理 插件管理 搜索下面插件 并下载插件:Role-based Authorization Strategy 功能:全局安全配置下 --> 访问控制下回多出Role-based选项 默认注册用户 (拥有管理员权限功能) 1.进入安全配置下--> 启用用户允许登录,并保存.配置如下图 2.进入登录页面,手动选择注册用户 3.填写注册信息,点击注册 4.登录成功.为了下面演示在创建user2角色. 使用权限管理用户配置 1.全局安全配置 --> 打开Role选项配置,

jenkins+gitlab+maven+docker部署项目之jenkins用户权限管理

一.用户管理 jenkins自身带有权限管理,入口:系统管理-->全局安全配置,这里的权限配置太过简略,没有角色的概念,显然无法满足我们复杂的需求,所以在这个时候引入了 Jenkins 的一个插件:Role-based Authorization Strategy 安装插件:Role-based Authorization Strategy,插件管理-->可选插件搜索一下点击安装,安装完后重启就可以使用该插件 系统管理-->全局安全配置,然后用重新登录一下 系统管理-->Manag

Jenkins用户权限管理

一.插件安装 插件:Role-based Authorization Strategy版本:2.3.2 二.全局安全配置 进入Jenkins后点击系统管理进入全局安全配置 当插件安装好的时候,授权策略会多出一个Role-Based Strategy选项,选择该项并保存 三.管理和分配角色 在系统管理页面进入 Manage and Assign Roles 1.管理角色 点击manage roles 设置全局角色(全局角色可以对jenkins系统进行设置与项目的操作)admin:对整个jenkin

实现业务系统中的用户权限管理--实现篇

在设计篇中,我们已经为大家阐述了有关权限管理系统的数据库设计,在本篇中,我们将重点放在其实现代码部分.为了让你能够更直接更有效的看到全部动作的代码,我们使用"动作分解列表"的方式来陈述每个动作以及相关资源. 实现权限管理功能的动作 动作分解 动作名 相关表名 操作集类型 (S,U,I,D,SQL) 表单 模组 字符资源 是否分页? 返回提示? 权限检测 权限初始化安装 setup 无 无 无 setup setupok 否 否 否 显示添加管理组界面 addnewgroup 无 无 a

mysql用户权限管理

mysql数据在实际生产环境中大量被使用,那平时在做好服务器上防火墙策略以外平时,对mysql下的用户权限也要严格管理,mysql的用户权限都是放在mysql.user这张表里,平时的用户权限管理都是隐式使用着这张表的,先说下权限: 权限 意义 select 查询 insert 插入 update 更新 delete 删除记录,一般用于清空表或者某一条记录 create 创建 drop 删除,从表空间里删除 grant 授予,一般用于给用户授权 references 引用 index 索引 al

Linux用户权限管理(二)

今天继续讲下用户权限管理,上一章节讲述了用户和组的创建.修改和删除.这篇文章延续上篇文章,来讲述用户具体的权限管理. 首先我们来讲下权限的相关说明:权限分为读(r).写(w).执行(x).对于文件和目录,其权限对应的功能不尽相同. 文件权限: 读(r):查看文件类似cat的权限 写(w):对文件有编辑和删除权限. 执行(x):具有文件执行权限,可以将文件当作命令提交给内核运行 目录权限: 读(r):对目录下的文件只有ls查看权限(不能使用ls -l) 写(w):可以在目录下创建文件 执行(x):

linux 用户管理,用户权限管理,用户组管理

linux 用户管理,用户权限管理,用户组管理 一:ls -l 命令 解释 第个d表示是目录,如果是文件是-,如果是连接是l 第2到4个 rwx 表示创建者的操作权限 r 读,w 写,x 执行 第5到7个 rwx 表示该文件或目录对所属组操作权限, 依次的后面3个 r-x 表示该文件或目录对其他人的操作权限,这里是 r读,和 x 执行权限 权限后面的 数字2 表示当前目录或文件的连接数量: 数据后面的 名字,表示的是该文件或目录的所有者 依次后面的 名字,表示该文件或目录的所在组: 依次后面的

【转载】SQL Server 2005数据库用户权限管理的设置

SQL Server 2005数据库中,我们可以设置每个用户对应的权限,以提高数据库的安全性.这类用户权限设置的应用非常广泛.比如设置某个用户访问某个表的权限,甚至是CRUD的权限,更小粒度的还可以去到某几个字段的访问权限等等.其实这一设置过程是很简单的,接下来就让我们来一起学习吧. 一.操作步骤 1. 首先进入数据库级别的[安全性]-[登录名]-[新建登录名] (图1:新建登录名) 2. 在[常规]选项卡中,如下图所示,创建登陆名,并设置默认的数据库. (图2:设置选项) 3. 在[用户映射]

数据的备份与恢复与用户权限管理

一.数据的备份与恢复 将已有的数据复制一份,存放到其他的服务器上.MySQL提供的备份有很多,常见的有文本备份.数据备份.sql备份等 1.文本备份 文本备份是最简单的一种备份方式! 一般认为,文本备份只适合Myisam存储引擎的数据表,就是将数据表的三个文件(结构.数据.索引)备份到其他服务器就行了 文本备份的特点: 简单(只需要复制粘贴),每次都需要备份全部的文件,非常浪费磁盘空间 2.数据备份 1)备份语法 select *|字段列表 into outfile 文件地址 from 表名;

django 基于proxy实现用户权限管理

项目中经常会遇到用户权限管理的问题,django adminsite已经提供非常实用的用户权限管理机制.不过有些时候,我们希望根据相关用户属性来过滤adminsite中显示的内容.下文将结束如何实现: 原始类 假设我有这么一个问卷类,基于这个类可以实现增删改查的功能 class wenjuan(models.Model): """ 问卷 """ name=models.CharField(u'问卷名称',max_length=128) breif