Jenkins2.32用户和权限管理策略
前言
在使用jenkins的过程中,需要为不同的角色分配相应的权限,如果jenkins的用户数据能和公司现在的帐号系统结合起来那会更好。
关于如何为用户分组,我推荐使用 role based authorization strategy 这个插件
我的环境如下:
系统:windows 7 x64
进入用户管理
如果使用的是jenkins内置的用户数据库,操作方法如下:
1.使用管理员帐号登录,选择 Configure Global Security 就可以打开用户管理界面
admin没有overall/Read权限
在授权策略中选择安全矩阵之后,并没有为amdin勾选 overall的权限

刷新或者点其它操作就会出现 admin没有overall/Read权限

解决办法:
1. 在jenkins的安装目录下找到 config.xml,备份一份,并打开
2. 找到 <authorizationStrategy> 节点 ,修改内容如下(两个配置可选)
<authorizationStrategy class="hudson.security.AuthorizationStrategy$Unsecured"/>
这个权限对应“任何用户可以做任何事(没有任何限制)” <authorizationStrategy class="hudson.security.FullControlOnceLoggedInAuthorizationStrategy"/>
这个权限对应“登录用户可以做任何事”
3. 重启jenkins的服务
内置用户和权限管理
推荐这篇博客讲解jenkins内置的用户管理比较详细
用户管理插件
在插件库搜索到的安装量较高的用户管理有两个:
Role-based Authorization Strategy:https://plugins.jenkins.io/role-strategy
安装量:20931
介绍:网上相关的文档资料较多(推荐使用)
Matrix Authorization Strategy:https://plugins.jenkins.io/matrix-auth
安装量:131937
介绍:文档较少,未使用。
Role-based Authorization Strategy
这个章节讲解这个插件的使用笔记,插件地址:https://plugins.jenkins.io/role-strategy
安装完 role based authorization strategy 之后,在系统管理的菜单项中会多出一项 “Manager and Assign Roles”
创建用户组
1. 选择 系统管理 - Manager and Assign Roles 中的 mangage Roles 进行创建用户组
2. 记住要为所有用户组勾选overall的read权限

我的测试可以只勾选Global roles,而无需在project roles中创建
为用户分配组
1. 选择 系统管理 - Manager and Assign Roles 中的 Assign Roles 可以为用户分组

我也只在Global roles为用户分配权限,并没有为特定的项目分配。
使用通配符
在Manager and Assign Roles - Project roles 中可以添加通配符,为不同组指定可以打包那些项,通配符是匹配创建的job名字

我的试验
1. 在Manage Roles中在Global roles创建用户组
2. 在Assign Roles 中为具体的用户分配组,只在global roles下为具体用户分配组
3 . 如上图所示,在project roles中并没有给qingqing_zhao没有分配权限,但global roles中分配了job_ops权限,所以qingqing_zhao这个用户拥有job_ops组的权限
4. 而在 anonymous 分配在 job_read 组,这样无需登录也可以项目信息,但仅仅可查看job信息,而无权进行任何操作
global roles 和 project roles
global roles全局角色(全局角色可以对jenkins系统进行设置与项目的操作)
project roles项目角色(项目角色只能对项目进行操作)
上述我的试验中,对qingqing_zhao 这个用户分配了全局角色权限,所以他也拥有项目的权限,golbal role 的权限大于project roles。
不同用户的视图
按照上面的测试,我对用户分了三个组:admin ,ops ,readonly,下面是这三个组进入jenkins的视图。
admin组视图
最高权限组,包括系统和job的管理权限

ops组图
仅仅可对job(项目)进行操作,包括build ,cancel

readonly 组
只可对job(项目)进行只读

不同用户组不同job
总结来说就是在建立job有一定的命名规范,在分配project roles时利用pattern进行过滤(例如:build.* 。表示build开头号的job都可以访问)
参考: https://my.oschina.net/boltwu/blog/404893
TODO
利用公司已有帐号系统
Jenkins 使用公司帐号体系或已有帐号进行登录,利用ldap,不同公司的配置数据不一样。
我使用的2.32.3版本自带ldap插件
参考:
http://blog.csdn.net/wanglei_storage/article/details/52935312
用户权限管理
Jenkins的用户组管理中的pattern (正规表达式)部分的使用
其他
通过Jenkins copy job 创建新的job 之后不能立即构建
小技巧
web页url操作jenkins
在web页就可以重启或关闭jenkins,操作如下:如果当前登录的帐号俱备管理员权限,在网址后面加上 /restart就可
http://192.168.70.224:8080/restart
/exit 退出
/reload 重载
Jenkins2.32用户和权限管理策略的更多相关文章
- 理解OpenShift(4):用户及权限管理
理解OpenShift(1):网络之 Router 和 Route 理解OpenShift(2):网络之 DNS(域名服务) 理解OpenShift(3):网络之 SDN 理解OpenShift(4) ...
- MySQL/MariaDB数据库的用户和权限管理
MySQL/MariaDB数据库的用户和权限管理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.元数据数据库(mysql) 系统授权表(均在mysql数据库中): db hos ...
- MySQL基础篇(07):用户和权限管理,日志体系简介
本文源码:GitHub·点这里 || GitEE·点这里 一.MySQL用户 1.基础描述 在数据库的使用过程中,用户作为访问数据库的鉴权因素,起到非常重要的作用,安装MySQL时会自动生成一个roo ...
- Asp.Net MVC+BootStrap+EF6.0实现简单的用户角色权限管理
这是本人第一次写,写的不好的地方还忘包含.写这个的主要原因是想通过这个来学习下EF的CodeFirst模式,本来也想用AngularJs来玩玩的,但是自己只会普通的绑定,对指令这些不是很熟悉,所以就基 ...
- Asp.Net MVC+BootStrap+EF6.0实现简单的用户角色权限管理10
今天把用户的菜单显示和页面的按钮显示都做好了,下面先来个效果图 接下来说下我实现的方法: 首先我在每个方法前面都加了这个属性, /// <summary> /// 表示当前Action请求 ...
- MySQL用户与权限管理
执行mysql select 查询报错: SELECT command denied to user 'root'@'localhost' for table "xxx" 问题原因 ...
- mysql用户和权限管理
用户和权限管理 Information about account privileges is stored in the user, db, host, tables_priv, columns_p ...
- 【linux相识相知】用户及权限管理
linux系统是多用户(Multi-users)和多任务(Multi-tasks)的,这样的目的是为了一台linux主机可以给很多用户提供服务同时运行多种服务,但是我们是怎么区分每个用户呢?作为一个管 ...
- linux用户及权限管理
[文件管理.管道.用户及组管理.用户及权限管理]\用户及组管理 用户与组管理 Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这 ...
随机推荐
- Hadoop YARN架构设计要点
YARN是开源项目Hadoop的一个资源管理系统,最初设计是为了解决Hadoop中MapReduce计算框架中的资源管理问题,但是现在它已经是一个更加通用的资源管理系统,可以把MapReduce计算框 ...
- 一篇文章让你成为 NIO 大师 - MyCAT通信模型
这篇文章没有详细介绍 NIO 的概念,对于 NIO 不了解的同学,可根据自己需要,阅读这篇介绍 NIO 的博客 io.mycat.net.NIOAcceptor NIOAcceptor负责处理客 ...
- 开始翻译Disruptor
刚开始接触Disruptor,看了作者的博客,发现这个大牛很与众不同,他不仅讲解自己的框架的设计思想,还深度介绍了这样设计的原因,其知识范围涵盖了操作系统.数据结构.计算机组成,很有学习的价值.网上有 ...
- μC/OS-II 的系统时钟
简介 μC/OS-II 与大多数计算机系统一样,用硬件定时器产生一个周期为 ms 级的周期性中断来实现系统时钟,最小的时钟单位就是两次中断之间相间隔的时间,这个最小时钟单位叫做时钟节拍(Time Ti ...
- Apollo 9 — adminService 主/灰度版本发布
目录 Controller 层 Service 层 publish 方法 发送 ReleaseMessage 消息 总结 1. Controller 层 主版本发布即点击主版本发布按钮: 具体接口位置 ...
- 操作数据库出现InvalidOpertionException(内部连接致命错误)
用DataTables时并发访问量较大,单个任务操作(获取数据)时间较长.连接数过多的时候就出现InvalidOpertionException错误.知道哪里有问题那就好办了,对GetDataTabl ...
- petapoco 实体中字段去掉关联(类似于EF中的NotMap)
怎么才能让不是数据库表中的字段放在实体中而不影响正常的插入和更新呢? 找到 PetaPoco.cs 文件,打开之后,搜索插入方法(Insert),然后继续找到下一层方法 就能看到如下代码: 看到这个注 ...
- 从零开始学安全(八)●Ubuntu 16 LAMP环境搭建
1.Apache2 web 服务器的安装 : 可以先更新一下服务器 sudo apt-get update # 获取最新资源包sudo apt-get upgrade # 本机软件全部更新sudo a ...
- Java_Collections工具类
Collections 工具类 * Collection与Collections区别 Collection 接口,(大部分集合类的实现接口) Collections 工具类(针对列表) * Colle ...
- Java8新特性-Lambda表达式是什么?
目录 前言 匿名内部类 函数式接口 和 Lambda表达式语法 实现函数式接口并使用Lambda表达式: 所以Lambda表达式是什么? 实战应用 总结 前言 Java8新特性-Lambda表达式,好 ...