Jenkins查询,绕过密码登录
Jenkins查询,绕过密码登录
# 方法1:查看正在运行的Jenkins进程(最推荐)
ps aux | grep jenkins -- 没有返回结果
# 方法2:查看系统服务配置
systemctl cat jenkins -- -bash: systemctl: command not found
# 方法3:查看环境变量(如果通过Docker/Tomcat部署) -- 这个方法可以找到jenkins在服务器上面的目录 -- 正解
env | grep JENKINS_HOME
重点关注输出中的 -Djenkins.home=或 JENKINS_HOME参数,它会直接显示真实路径。
Jenkins 实际数据目录
既然 Jenkins 是通过 Tomcat 运行的,它的 JENKINS_HOME(数据目录)很可能在:
• Tomcat 的工作目录中:/home/data/tomcat_Jenkins/webapps/jenkins/ 或相关子目录
• 或者通过环境变量指定:可能在 Tomcat 的启动脚本中定义了 JENKINS_HOME
查找 Jenkins 实际数据目录的方法:
# 方法1:查看 Tomcat 的 setenv.sh 或 catalina.sh
grep -r "JENKINS_HOME" /home/data/tomcat_Jenkins/ 2>/dev/null
[root@VM-3-239-centos data]# grep -r "JENKINS_HOME" /home/data/tomcat_Jenkins/ 2>/dev/null
/home/data/tomcat_Jenkins/bin/catalina.sh:export JENKINS_HOME="/home/data/jenkins_data"
# 方法2:查看 Jenkins 系统信息(如果你能登录 Jenkins Web 界面)
# 登录 Jenkins → 系统管理 → 系统信息 → 搜索 "JENKINS_HOME"
# 方法3:在 Tomcat 目录中搜索 Jenkins 配置文件
find /home/data/tomcat_Jenkins -name "config.xml" 2>/dev/null -- 没有结果,因为目录不对
[root@VM-3-239-centos data]# find /home/data/jenkins_data -name "config.xml" 2>/dev/null -- 目录对了,但是查询很慢,卡住了
find /home/data/jenkins_data -maxdepth 5 -name "config.xml" 2>/dev/null -- 5级目录,卡
find /home/data/jenkins_data -maxdepth 4 -name "config.xml" 2>/dev/null -- 4级目录,返回结果比较快 正解
linux命令:
[root@VM-3-239-centos jenkins_data]# sudo lsof -i :8080 2>/dev/null || sudo netstat -tlnp 2>/dev/null | grep :8080
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 17928 root 46u IPv4 1024461 0t0 TCP *:webcache (LISTEN)
[root@VM-3-239-centos jenkins_data]# ps aux | grep -i java | grep -v grep
root 17928 4.0 41.3 7129740 3277612 ? Sl 2025 16386:08 /usr/local/java/bin/java -Dnop -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms4g -Xmx4g -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m -Xloggc:/home/data/tomcat_Jenkins/logs/gc.log -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/home/data/tomcat_Jenkins/logs/heapdump.bin -XX:+CMSParallelRemarkEnabled -XX:+ScavengeBeforeFullGC -XX:CMSInitiatingOccupancyFraction=75 -Djava.endorsed.dirs=/home/data/tomcat_Jenkins/endorsed -classpath /home/data/tomcat_Jenkins/bin/bootstrap.jar:/home/data/tomcat_Jenkins/bin/tomcat-juli.jar -Dcatalina.base=/home/data/tomcat_Jenkins -Dcatalina.home=/home/data/tomcat_Jenkins -Djava.io.tmpdir=/home/data/tomcat_Jenkins/temp org.apache.catalina.startup.Bootstrap start
[root@VM-3-239-centos tomcat_Jenkins]# pwd
/home/data/tomcat_Jenkins
[root@VM-3-239-centos tomcat_Jenkins]# env | grep JENKINS_HOME
JENKINS_HOME=/home/data/jenkins_data
[root@VM-3-239-centos jenkins]# env | grep JENKINS_HOME
JENKINS_HOME=/home/data/jenkins_data
# 1. 在常见位置搜索 config.xml
sudo find / -name "config.xml" 2>/dev/null | grep -E "(jenkins|JENKINS)" | head -10 没有返回结果~~
## 搜索文件命令
[root@VM-3-239-centos data]# locate config.xml | grep jenkins
/home/data/jenkins_data/config.xml
/home/data/jenkins_data/config.xml.back
/home/data/jenkins_data/config.xml.backup260408
/home/data/jenkins_data/config.xml.backupNoPwd
[root@VM-3-239-centos data]# find . -name "config.xml" 这个没有返回结果~~
[root@VM-3-239-centos data]# find ./ -maxdepth 3 -name "config.xml" 2>/dev/null #加上有限深度搜索 -maxdepth 3 解决
./jenkins_data/config.xml
[root@VM-3-239-centos data]# ls -la /home/data/jenkins_data/config.xml 判断文件是否存在
-rw-r--r-- 1 root root 13153 Apr 8 16:58 /home/data/jenkins_data/config.xml
# 2. 查看 Jenkins Web 界面(最直接的方法)
# 登录 Jenkins Web 界面 → 点击"系统管理" → 点击"系统信息"
# 在系统信息页面搜索 "JENKINS_HOME"
# 3. 查看 Tomcat 的环境变量设置
[root@VM-3-239-centos jenkins_data]# cat /home/data/tomcat_Jenkins/bin/setenv.sh 2>/dev/null
JAVA_OPTS="-Djava.awt.headless=true -Dfile.encoding=UTF-8
-server -Xms4g -Xmx4g
-XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=512m
-Xloggc:${CATALINA_BASE}/logs/gc.log
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${CATALINA_BASE}/logs/heapdump.bin
-XX:+CMSParallelRemarkEnabled -XX:+ScavengeBeforeFullGC
-XX:CMSInitiatingOccupancyFraction=75"
[root@VM-3-239-centos jenkins_data]# cat /home/data/tomcat_Jenkins/bin/catalina.sh | grep -i jenkins_home
export JENKINS_HOME="/home/data/jenkins_data"
config.xml文件目录: `/home/data/jenkins_data/config.xml`
1. 重启 Jenkins/Tomcat
# 进入 Tomcat 目录
cd /home/data/tomcat_Jenkins
# 停止 Tomcat
./bin/shutdown.sh
# 启动 Tomcat
./bin/startup.sh
# 查看日志
tail -f logs/catalina.out
2. 修改 Jenkins 配置文件
首先需要找到 Jenkins 的实际数据目录:
# 大概率是以下位置之一
ls -la /home/data/tomcat_Jenkins/webapps/jenkins/
# 或
ls -la /home/jenkins/
# 或
ls -la /home/data/jenkins_data/
3. 重置密码的步骤(针对 Tomcat 部署)
一旦找到 Jenkins 的数据目录(比如 /home/data/jenkins_data),重置密码的步骤与之前类似:
# 1. 停止 Tomcat
cd /home/data/tomcat_Jenkins
./bin/shutdown.sh
# 2. 修改 Jenkins 的 config.xml [关键步骤:修改之前的config.xml文件,一定需要备份!!实际测试过程中,发现仅仅改了配置,可能在jenkins web端也操作了某些,完全不知情,导致config.xml文件变化了,
备份 config.xml
sudo cp /home/data/jenkins_data/config.xml /home/data/jenkins_data/config.xml.backup
cp config.xml config.xml.backup260408
cp命令:
递归复制 Jenkins 作业目录
cp -rp /home/data/jenkins_data/jobs /opt/jenkins_backup/jobs
然后恢复的时候,仅仅将<useSecurity>false</useSecurity> 改为 true 就不起作用了。。所以恢复的时候,直接恢复修改之前的备份文件,是最稳妥的方法。]
sudo vim /home/data/jenkins_data/config.xml
# 将 <useSecurity>true</useSecurity> 改为 false
vim命令:
# 1. 打开文件
sudo vim /home/data/jenkins_data/config.xml
sudo vim config.xml
# 2. 按 `/` 搜索要修改的内容
/useSecurity
# 3. 按 `n` 找到目标行
# 4. 按 `i` 进入插入模式
# 5. 将 true 改为 false
# 6. 按 `Esc` 退出插入模式
# 7. 输入保存命令
:wq
# 或者直接替换(不进入插入模式)
:%s/<useSecurity>true<\/useSecurity>/<useSecurity>false<\/useSecurity>/g
:wq
# 3. 启动 Tomcat
./bin/startup.sh
# 4. 浏览器访问(无需密码)
# 5. 重新设置密码
# 6. 恢复 config.xml 的安全设置
# 7. 重启 Tomcat
linux vim命令
https://www.cnblogs.com/oktokeep/p/19957843
linux cp复制命令
https://www.cnblogs.com/oktokeep/p/19957834
linux locate和find搜索文件命令
https://www.cnblogs.com/oktokeep/p/19957748
浙公网安备 33010602011771号