无法登录的原因

  1. 忘记管理员admin账号密码;
  2. 管理员admin账号登录权限丢失/全局角色被删除(一般都是操作不当引起的)

本人之前一不小心删除了管理员admin账号的全局角色权限,然后导致管理员admin账号再登录时无权限,当时的情况就是我也没有建立其他登录账号,这样就导致我的代码发布工作一时无法进行。如下:
在这里插入图片描述

解决方案(原理)

查了一些资料最后找到解决办法,其实一开始jenkins安装好之后是有 admin用户+默认初始密码可以登录的,但是那个初始密码是系统随机生成的很长字符串,我们往往会将admin的密码修改成我们容易记住的字符串。并且为了安全起见,系统都会允许我们建立其他普通用户并分配不同的权限让我们可以登录(条件是:必须进入系统管理-全局安全配置-勾选‘启用安全’选项)。在jenkins中你建立的所有用户的权限配置最终都是写入到jenkins软件中的config.xml文件中的,我们在浏览器页面中没有办法登录成功的时候,都可以直接去安装jenkins服务端的config.xml修改配置(注意:1.修改配置文件前记得备份;2.修改完毕之后需要重启jenkins服务)然后用户再以空密码登录,只要能登录成功,后面再重置密码并重新设置权限就好啦。

解决方案(实操)

情况一、admin密码从未更改
  1. 进入/var/lib/jenkins/secrets目录,打开initialAdminPassword文件,复制密码;

  2. 访问Jenkins页面,输入管理员admin,以及刚才复制的默认初始密码;

  3. 登录管理员admin账号之后便可更改所有用户密码及权限。

情况二、admin密码更改过并忘记的情况
  1. 找到jenkins安装目录下的config.xml文件并进行备份;
  2. 删除config.xml文件中以下代码,并保存文件。
 <useSecurity>true</useSecurity>
  <authorizationStrategy class="hudson.security.FullControlOnceLoggedInAuthorizationStrategy">
    <denyAnonymousReadAccess>true</denyAnonymousReadAccess>
  </authorizationStrategy>
  <securityRealm class="hudson.security.HudsonPrivateSecurityRealm">
    <disableSignup>true</disableSignup>
    <enableCaptcha>false</enableCaptcha>
  </securityRealm>
  1. 重启Jenkins服务;
  2. 进入jenkins首页>“系统管理”>“Configure Global Security/全局安全配置”;
  3. 勾选“启用安全”选项;
  4. 点选“Jenkins专有用户数据库”,并点击“保存”;
  5. 重新进入jenkins首页>“系统管理”,此时页面会出现“管理用户”选项;
  6. 点击进入展示“用户列表”;
  7. 点击右侧进入修改密码页面,修改后即可重新登录。
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐