找回 admin 用戶的密碼后,可以登錄系統修改其他用戶的密碼。
1. Jenkins 目錄結構
Jenkins 沒有使用數據庫,所有的信息都保存在 JENKINS_HOME 目錄下的文件中。其中 JENKINS_HOME 目錄:
Linux 下通常是 /var/lib/jenkins 或 /var/jenkins_home
Windows 下通常是 C:\Users\[用戶名]\.jenkins
通過 Docker 安裝時,JENKINS_HOME 目錄和啟動容器時指定的卷相關。例如 -v /home/demo/jenkins:/var/jenkins_home 參數中,JENKINS_HOME 目錄是 Docker 宿主機的 /home/demo/jenkins 目錄。
2. admin 密碼密文
Jenkins 中所有的用戶信息都保存在 JENKINS_HOME 目錄下的 users 目錄中,每個用戶對應一個目錄。對應 admin 用戶,可以查看 users/admin/config.xml 文件,其中 passwordHash 字段中 #jbcrypt: 后面的部分就是密碼經過 hash 加密后的密文。
我們可以將其修改為
#jbcrypt:$2a$10$MiIVR0rr/UhQBqT.bBq0QehTiQVqgNpUGyWW2nJObaVAM/2xSQdSq
上面這個段加密的是123456,如果不想有錯誤發現,建議上面disableSignup的配置改成false先試下。
然后我們保存文件,重啟jenkins使用admin/123456登錄即可。
3. admin 密碼明文
JENKINS_HOME 目錄中的 /secrets/initialAdminPassword 文件明文保存 admin 用戶的密碼,直接查看即可。下面例子中的 JENKINS_HOME 需要替換為你實際的目錄。
cat JENKINS_HOME/secrets/initialAdminPassword