前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >jenkins修改安全策略,权限设置丢失

jenkins修改安全策略,权限设置丢失

作者头像
py3study
发布2020-04-08 16:13:55
1.6K0
发布2020-04-08 16:13:55
举报
文章被收录于专栏:python3python3

一、概述

默认的jenkins用户权限,通过插件Role-based Authorization Strategy来设置的。

安装策略如下:

1.png
1.png

由于调式gitlab webhook自动提交部署,网上文章说,需要调整安全策略为:

1.png
1.png

保存之后,发现Manage and Assign Roles中的manage-roles只有admin,其他的权限都没有了。

1.png
1.png

普通用户登录之后,提示没有权限。

由于改之前,忘了对$JENKINS_HONE/config.xml 做备份,这咋办呢?

难道一个个重建?这么多用户,重建工作比较累。

二、恢复权限

最近的config.xml没有,但是2个月前的config.xml还有一份。不能直接拿这个文件直接覆盖掉,否则会导致很多Jenkins job丢弃。

config.xml大致结构如下:

复制代码
复制代码
代码语言:javascript
复制
<?xml version='1.1' encoding='UTF-8'?>
<hudson>
  <disabledAdministrativeMonitors>
    <string>hudson.diagnosis.ReverseProxySetupMonitor</string>
  </disabledAdministrativeMonitors>
  <version>2.164.2</version>
  <installStateName>RESTART</installStateName>
  <numExecutors>3</numExecutors>
  <mode>NORMAL</mode>  <useSecurity>true</useSecurity>
  <authorizationStrategy class="com.michelin.cio.hudson.plugins.rolestrategy.RoleBasedAuthorizationStrategy">
      <roleMap type="globalRoles">
      <roleMap type="projectRoles">
      <roleMap type="slaveRoles">
  </authorizationStrategy>
  <securityRealm class="hudson.security.HudsonPrivateSecurityRealm">
    <disableSignup>false</disableSignup>
    <enableCaptcha>false</enableCaptcha>
  </securityRealm>
  <disableRememberMe>false</disableRememberMe>
  <projectNamingStrategy class="jenkins.model.ProjectNamingStrategy$DefaultProjectNamingStrategy"/>
  <workspaceDir>${JENKINS_HOME}/workspace/${ITEM_FULLNAME}</workspaceDir>
  <buildsDir>${ITEM_ROOTDIR}/builds</buildsDir>
  <markupFormatter class="hudson.markup.EscapedMarkupFormatter"/>
  <jdks>
    <jdk>
      <name>JDK1.8.0_144</name>
      <home>/data/jdk1.8.0_144</home>
      <properties/>
    </jdk>
  </jdks>
  <viewsTabBar class="hudson.views.DefaultViewsTabBar"/>
  <myViewsTabBar class="hudson.views.DefaultMyViewsTabBar"/>
  <clouds/>
  <quietPeriod>5</quietPeriod>
  <scmCheckoutRetryCount>0</scmCheckoutRetryCount>
  <views>
    <hudson.model.AllView>
      <owner class="hudson" reference="../../.."/>
      <name>all</name>
      <description>建立job后默认分类ALL</description>
      <filterExecutors>false</filterExecutors>
      <filterQueue>false</filterQueue>
      <properties class="hudson.model.View$PropertyList"/>
    </hudson.model.AllView>
      <listView></listView>
      </views>
  <primaryView>all</primaryView>
  <slaveAgentPort>0</slaveAgentPort>
  <label></label>
  <crumbIssuer class="hudson.security.csrf.DefaultCrumbIssuer">
    <excludeClientIPFromCrumb>false</excludeClientIPFromCrumb>
  </crumbIssuer>
  <nodeProperties/>
  <globalNodeProperties/>
</hudson>
复制代码
复制代码

将<useSecurity>true</useSecurity>到<scmCheckoutRetryCount>0</scmCheckoutRetryCount> 这部分内容替换掉。

再次重启jenkins,查看权限,就恢复好了

1.png
1.png

最后申明一下,gitlab webhook自动提交部署,不需要修改安全策略:登录用户可以做任何事。

出现403的原因是,jenkins job的token和gitlab设置的token不一致导致的。改成一样,就可以了,出现http 200表示成功。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-04-03 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、概述
  • 二、恢复权限
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档