如果忘记了 Jenkins 的管理员密码的话,也不用担心,只要你有权限访问 Jenkins 的根目录,就可以轻松地重置密码。
1. Jenkins 关闭用户认证
// 查看 jenkins 家目录(使用 docker 安装)
$ docker exec -it jenkins /bin/bash
$ ps -ef | grep jenkins
...
jenkins 7 1 99 05:34 ? 00:00:33 java -Duser.home=/var/jenkins_home -Djenkins.model.Jenkins.slaveAgentPort=50000 -Dhudson.lifecycle=hudson.lifecycle.ExitLifecycle -jar /usr/share/jenkins/jenkins.war
得到家目录:/var/jenkins_home
// 查看 jenkins 家目录(使用 systemctl 的方式安装)
$ ps -ef|grep -v grep | grep jenkins // 这种方式看不到家目录
jenkins 529510 1 0 Apr14 ? 00:38:23 /usr/bin/java -Djava.awt.headless=true -jar /usr/share/java/jenkins.war --webroot=/var/cache/jenkins/war --httpPort=8080
$ systemctl status jenkins
● jenkins.service - Jenkins Continuous Integration Server
Loaded: loaded (/usr/lib/systemd/system/jenkins.service; enabled; preset: enabled)
Active: active (running) since Mon 2025-04-14 17:52:13 CST; 2 days ago
Main PID: 529510 (java)
...
$ cat /usr/lib/systemd/system/jenkins.service |grep JENKINS_HOME
# $JENKINS_HOME, $JENKINS_LOG, and (if you have already run Jenkins)
Environment="JENKINS_HOME=/var/lib/jenkins"
# Note also that the particularly sensitive parts of $JENKINS_HOME (such as
得到家目录为:/var/lib/jenkins
// 进入到 jenkins 家目录(这里以 systemctl 方式为例)
$ cd /var/lib/jenkins
$ sed -i 's/<useSecurity>true<\/useSecurity>/<useSecurity>false<\/useSecurity>/' config.xml
其实就是把 <useSecurity>true</useSecurity>
改为 <useSecurity>false</useSecurity>
// 重启服务
$ docker restart jenkins // docker 方式安装
$ systemctl restart jenkins // systemctl 方式
2. jenkins 修改密码
// 配置全局安全配置
// 管理用户
// 选择要修改密码的用户
// 修改密码
当修改密码完成后,再次配置全局安全配置
,根据需要修改授权策略
,我这里修改为:登录用户可以做任何事情