Jenkins的权限管理

插件名称:Role-based Authorization Strategy

插件安装方法:

系统管理---->插件管理---->可选插件(搜索)----->选取后(直接安装)

注意事项:切记在安装插件后,不要重启(可能会在构建的东西构建重启)

启用插件功能

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-m8sW3Mbo-1616580243558)(C:\Users\dell\Desktop\image-20200721101609294.png)]

权限管理配置

  1. 创建用户
    首先第一步进入系统管理创建你所需要的用户

jenkins 用户token jenkins权限_ide

  1. 权限设置
    返回系统管理菜单,选择Manage and Assign Roles菜单
  2. jenkins 用户token jenkins权限_ide_02

  3. 权限管理规则模块详解

jenkins 用户token jenkins权限_用户组_03

Mangae Roles 模块详细解释

  • 系统设置->Manage and Assign Roles->Manage Roles
  • Global roles:添加用户和用户组,分配某个用户属于哪个用户组。
  • Item roles:添加某个工程或某一组工程的用户或用户组
  • Slave roles:添加某个节点或某一组节点的用户或用户组

jenkins 用户token jenkins权限_Computer_04

Global roles 权限配置详细解释

(1)最基本的权限是Overall的Read:用户必须赋予阅读的权限,不然什么都看不到。
(2)凭证(Credentials):一般配置加密的认证信息的使用权限,一般配置给**管理员账号**

- 直译为“证书”,也可以理解为“**`钥匙`**”。即:**对这些钥匙所进行的统一管理**
  • 以**SVN** (版本控制器)为例来进行说明:当我们在访问SVN时,需要提供相应的账号与密码进行登录。假如把要访问的URL地址理解为锁,所提供的账号与密码就对应于开这把锁的钥匙
  • 所以说“Credentials”中所记录的就是各种各样的钥匙,钥匙对应的锁是有多种可能的,可能是**SVN,也可能是Git**等。
(3)**`代理(agents/slave)`**:设置Jenkins节点相关权限的角色,一般配置给**`管理员账号`**
(4)**`任务(job)`**:配置用户对job/project的**查看,操作**等权限,一般配置给**`普通用户`**
(5)**`运行(run)`**:配置**对job运行的权限**,例如更新,rerun
(6)**`视图(view)`**:配置job在主界面的显示权限
(7)**`SCM (source code management)`**:一般配置给**`管理员账号`** 

(8)**`Lockable Resources`**:**`锁定资源`**,这个权限就是在某一结点或者是某个构建任务是否可以因为其中一个构建而暂停其他的构建资源。

Item roles 权限配置

jenkins 用户token jenkins权限_用户组_05

这个模块的权限设置主要是用来区分项目的一些管理将项目进行分组管理,分组后针对不同的用户改变不同 的权限

一般设定如下图

jenkins 用户token jenkins权限_用户组_06

节点模块就不做过多介绍

assign Roles模块介绍

这个模块主要是将你配置好规则,进行一个权限授予。(坑爹的是user不能选则,而是需要手动添加,而且系统用户中必须要有此用户)

jenkins 用户token jenkins权限_Computer_07

  1. 验证权限是否生效
    手动验证

注意

如果手残配置错了,发现所用用户登录上去都无法配置和修改权限的时候请看一下教程

非容器安装属于安装包安装的jenkins

教程一:提前做数据备份

vim /var/lib/jenkins/config.xml 将这个配置文件做一个数据备份,权限出问题,直接替换然后重新启动

方法二:修改配置文件

jenkins 用户token jenkins权限_ide_08

<role name="admin" pattern=".*">
        <permissions>
          <permission>hudson.model.View.Delete</permission>
          <permission>hudson.model.Computer.Connect</permission>
          <permission>hudson.model.Run.Delete</permission>
          <permission>com.cloudbees.plugins.credentials.CredentialsProvider.ManageDomains</permission>
          <permission>hudson.model.Computer.Create</permission>
          <permission>hudson.model.View.Configure</permission>
          <permission>hudson.model.Computer.Build</permission>
          <permission>hudson.model.Item.Configure</permission>
          <permission>hudson.model.Hudson.Administer</permission>
          <permission>hudson.model.Item.Cancel</permission>
          <permission>hudson.model.Item.Read</permission>
          <permission>com.cloudbees.plugins.credentials.CredentialsProvider.View</permission>
          <permission>hudson.model.Computer.Delete</permission>
          <permission>hudson.model.Item.Build</permission>
          <permission>org.jenkins.plugins.lockableresources.LockableResourcesManager.Unlock</permission>
          <permission>hudson.model.Item.ExtendedRead</permission>
          <permission>hudson.scm.SCM.Tag</permission>
          <permission>hudson.model.Item.Move</permission>
          <permission>hudson.model.Item.Discover</permission>
          <permission>hudson.model.Hudson.Read</permission>
          <permission>com.cloudbees.plugins.credentials.CredentialsProvider.Update</permission>
          <permission>hudson.model.Item.Create</permission>
          <permission>hudson.model.Item.Workspace</permission>
          <permission>com.cloudbees.plugins.credentials.CredentialsProvider.Delete</permission>
          <permission>hudson.model.Computer.Provision</permission>
          <permission>hudson.model.Run.Replay</permission>
          <permission>hudson.model.View.Read</permission>
          <permission>org.jenkins.plugins.lockableresources.LockableResourcesManager.View</permission>
          <permission>hudson.model.Hudson.SystemRead</permission>
          <permission>hudson.model.View.Create</permission>
          <permission>hudson.model.Computer.ExtendedRead</permission>
          <permission>hudson.model.Item.Delete</permission>
          <permission>hudson.model.Computer.Configure</permission>
          <permission>com.cloudbees.plugins.credentials.CredentialsProvider.Create</permission>
          <permission>hudson.model.Computer.Disconnect</permission>
          <permission>org.jenkins.plugins.lockableresources.LockableResourcesManager.Reserve</permission>
          <permission>hudson.model.Run.Update</permission>
        </permissions>
        <assignedSIDs>
          <sid>luxsun</sid>
        </assignedSIDs>
      </role>

容器化安装也可以子Jenkin_home的数据卷持久化先备份,备份后在做用户权限操作。