环境:Linux,Tomcat8(可选),JDK8
STEP-1. 首先的话我们要先找到 Jenkins 全局配置文件 config.xml(下面提供三种不同安装方式查找配置文件的方法):
方式一:如果不是使用 WAR 进行部署,直接通过命令将 Jenkins 配置成服务
cd /var/lib/jenkins/
# 查看 config.xml 文件
less config.xml
方式二:如果使用的是 Tomcat 部署的 WAR 包,假如 Tomcat 的安装路径是:/usr/local/tomcat8/
# 去 tomcat 的项目路径
cd /usr/local/tomcat8/webapps
# 找到 jenkins 目录
cd jenkins
# 查看 config.xml 文件
less config.xml
方式三:通过 java -jar jenkins.war 方式运行 Jenkins
# 首先查看运行 Jenkins 的用户
ps -ef | grep jenkis
# 显示如下
roc 21465 1 0 Feb17 ? 00:02:50 java -jar jenkins.war --httpPort=8090 --prefix=/jenkins
roc 25480 24684 0 11:25 pts/0 00:00:00 grep --color=auto jenkins
# 前面的 roc 就是运行 Jenkins 的用户,然后进入用户的主目录。
cd /home/roc # 如果就是当前登录的用户,则可以直接 cd ~
# 进入 Jenkins 的配置目录(该目录默认是隐藏的)
cd .jenkins
# 查看 config.xml 文件
less config.xml
STEP-2. 在配置文件中找到以下内容:
<authorizationStrategy class="hudson.security.GlobalMatrixAuthorizationStrategy">
<!-- 忽略部分代码 -->
<permission>hudson.model.Computer.Build:authenticated</permission>
<permission>hudson.model.Hudson.Administer:root</permission>
<permission>hudson.model.Hudson.Read:authenticated</permission>
<permission>hudson.model.View.Create:authenticated</permission>
<permission>hudson.model.View.Delete:authenticated</permission>
<permission>hudson.model.View.Read:anonymous</permission>
<permission>hudson.model.View.Read:authenticated</permission>
<permission>hudson.scm.SCM.Tag:authenticated</permission>
<!-- 忽略部分代码 -->
</authorizationStrategy>
最重要的是找到 authorizationStrategy 也就是 Jenkins 的授权策略,然后找到管理员账户权限:<permission>hudon.model.Hudson.Administer:root</permission>
这里的 root 就是管理员的用户名,这里的用户名是在安装 Jenkins 时设置的,也有可能是其他,例如:admin,administrator 之类的。不管是什么用户名都要注意的是使用 hudon.model.Hudson.Administer
标识的都是系统的管理员。
【注】如果 authorizationStrategy 是 hudson.security.FullControlOnceLoggedInAuthorizationStrategy
则任何一个用户都是管理员,直接按第三步操作即可。
<authorizationStrategy class="hudson.security.FullControlOnceLoggedInAuthorizationStrategy">
<denyAnonymousReadAccess>true</denyAnonymousReadAccess>
</authorizationStrategy>
STEP-3. 修改管理员的登陆密码。
进入存放用户的目录,然后找到以用户名开头的目录(假如管理员的用户名为 root ):
# Jenkins 存放用户的目录
cd users
ls
# 显示如下:
test_12345643213456 root_123456765345432 users.xml
cd root_123456765345432 # 进入该用户的配置目录
ls
config.xml # 该用户的配置文件
接下来在 config.xml 配置文件中找到 <passwordHash>
节点
<hudson.security.HudsonPrivateSecurityRealm_-Details>
<passwordHash>#jbcrypt:加密的密码</passwordHash>
</hudson.security.HudsonPrivateSecurityRealm_-Details>
Jenkins 的密码是使用 Java 加密工具 jBCrypt 生成的,所以可以随便生成一个密码来替换掉之前的密码,例如使用加密后的 123456 来替换,123456 加密后为:$2a$10$SRqhubr8eaDYxjgTcNjlOeJQJBpIVEYaJmMK2v5dgTqYpD09hMaAi
(生成的加密字符串并不是唯一的,但是都可用)
接下来保存配置文件,然后重新启动 Jenkins,接下来就可以使用密码 123456 来进行登录了。(切记正式环境登录之后一定要改密码,改密码,改密码,加粗说三遍)
登录成功之后,点击【系统管理】-【管理用户】打开用户列表,然后点击【设置】小齿轮对用户进行管理。
在用户设置界面,找到密码这一栏,修改完密码保存即可,以后要是忘了也可以通过以上步骤进行重置。
【注】对于想要删除的用户,点击红色图标即可删除。