前言

在使用jenkins的过程中,需要为不同的角色分配相应的权限,如果jenkins的用户数据能和公司现在的帐号系统结合起来那会更好。

关于如何为用户分组,我推荐使用 role based authorization strategy 这个插件

我的环境如下:

版本:Jenkins ver. 2.32.3

系统: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内置的用户管理比较详细

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. 记住要为所有用户组勾选overallread权限

我的测试可以只勾选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用户和权限管理策略的更多相关文章

  1. 理解OpenShift(4):用户及权限管理

    理解OpenShift(1):网络之 Router 和 Route 理解OpenShift(2):网络之 DNS(域名服务) 理解OpenShift(3):网络之 SDN 理解OpenShift(4) ...

  2. MySQL/MariaDB数据库的用户和权限管理

    MySQL/MariaDB数据库的用户和权限管理 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.元数据数据库(mysql) 系统授权表(均在mysql数据库中): db hos ...

  3. MySQL基础篇(07):用户和权限管理,日志体系简介

    本文源码:GitHub·点这里 || GitEE·点这里 一.MySQL用户 1.基础描述 在数据库的使用过程中,用户作为访问数据库的鉴权因素,起到非常重要的作用,安装MySQL时会自动生成一个roo ...

  4. Asp.Net MVC+BootStrap+EF6.0实现简单的用户角色权限管理

    这是本人第一次写,写的不好的地方还忘包含.写这个的主要原因是想通过这个来学习下EF的CodeFirst模式,本来也想用AngularJs来玩玩的,但是自己只会普通的绑定,对指令这些不是很熟悉,所以就基 ...

  5. Asp.Net MVC+BootStrap+EF6.0实现简单的用户角色权限管理10

    今天把用户的菜单显示和页面的按钮显示都做好了,下面先来个效果图 接下来说下我实现的方法: 首先我在每个方法前面都加了这个属性, /// <summary> /// 表示当前Action请求 ...

  6. MySQL用户与权限管理

    执行mysql select 查询报错: SELECT command denied to user 'root'@'localhost' for table "xxx" 问题原因 ...

  7. mysql用户和权限管理

    用户和权限管理 Information about account privileges is stored in the user, db, host, tables_priv, columns_p ...

  8. 【linux相识相知】用户及权限管理

    linux系统是多用户(Multi-users)和多任务(Multi-tasks)的,这样的目的是为了一台linux主机可以给很多用户提供服务同时运行多种服务,但是我们是怎么区分每个用户呢?作为一个管 ...

  9. linux用户及权限管理

    [文件管理.管道.用户及组管理.用户及权限管理]\用户及组管理 用户与组管理 Linux系统是一个多用户多任务的分时操作系统,任何一个要使用系统资源的用户,都必须首先向系统管理员申请一个账号,然后以这 ...

随机推荐

  1. Java 并发编程-再谈 AbstractQueuedSynchronizer 2:共享模式与基于 Condition 的等待 / 通知机制实现

    共享模式acquire实现流程 上文我们讲解了AbstractQueuedSynchronizer独占模式的acquire实现流程,本文趁热打铁继续看一下AbstractQueuedSynchroni ...

  2. spring面试问题与答案集锦

    我收集了一些spring面试的问题,这些问题可能会在下一次技术面试中遇到.对于其他spring模块,我将单独分享面试问题和答案. 如果你能将在以前面试中碰到的,且你认为这些应该是一个有spring经验 ...

  3. Python面向对象基础:设置对象属性

    用类存储数据 类实际上就是一个数据结构,对于python而言,它是一个类似于字典的结构.当根据类创建了对象之后,这个对象就有了一个数据结构,包含一些赋值了的属性.在这一点上,它和其它语言的struct ...

  4. 华为交换机以 LACP 模式实现链路聚合

    LACP 链路聚合模式简介 以太网链路聚合是指将多条以太网物理链路捆绑在一起成为一条逻辑链路,从而实现增加链路带宽的目的.链路聚合分为手工模式和LACP模式. LACP模式需要有链路聚合控制协议LAC ...

  5. Python系列:三、流程控制循环语句--技术流ken

    Python条件语句 Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执行的代码块. 可以通过下图来简单了解条件语句的执行过程: Python程序语言指定任何非0和非 ...

  6. zabbix实现百台服务器的自动化监控--技术流ken

    前言 最近有小伙伴通过Q联系到我说:公司现在有百多台服务器,想要部署zabbix进行监控,怎么实现自动化全网监控? 本篇博客将讲解一个我工作时做的一个实际项目,现在写出来供大家以后参考使用. 实现自动 ...

  7. Java并发(一)—— 使用多线程

    Java的线程机制是抢占式的,所谓的抢占式指的是每一个线程都会被分配一个指定大小的时间片,一旦这个时间片用完,就会通过上下文切换到另一个线程上去. 并发是主要是为了提高单处理器的性能.创建一个线程会有 ...

  8. OpenCV入门之寻找图像的凸包(convex hull)

    介绍   凸包(Convex Hull)是一个计算几何(图形学)中的概念,它的严格的数学定义为:在一个向量空间V中,对于给定集合X,所有包含X的凸集的交集S被称为X的凸包.   在图像处理过程中,我们 ...

  9. EF(EntityFramework) 插入或更新数据报错

    报错信息:Store update, insert, or delete statement affected an unexpected number of rows (0). Entities m ...

  10. 第一讲 从头开始做一个web qq 机器人,第一步获取smart qq二维码

    新手教程: 前言:最近在看了一下很久很久以前做的qq机器人失效了,最近也在换工作目前还在职,时间很挺宽裕的.就决定从新搞一个web qq机器人 PC的协议解析出来有点费时间以后再做. 准备工作: 编译 ...