gitbucket服务找回管理员密码(忘记root密码怎么办?)

1、由于gitbucket服务管理员(root)忘记,想添加用户等操作做不了,所以这里需要找回管理员的密码。

2、服务背景:docker构建的4.11.0版本的gitbucekt服务,

3、由于这个服务的应用在市场上并不广泛,在网上也查阅不了太多的资料做参考,查看了GitHub与gitbucekt的官网,并没有找到太多有用的信息,但是也了解到默认模式下他的用户信息数据都是存储在一个叫h2内嵌数据库中,针对这一信息可以大致有了动手的方向;

3.1、进入到gitbucket的工作目录下可以看到他的一些配置文件以及他存储用户数据的数据库文件:想要找回密码就得在这个数据库文件中找回

 可以看到这里的几个文件:

data.mv.db--这个是他的h2内嵌数据库的数据库文件,用户密码等以及在gitbucekt的一些操作信息都记录存储在这里面的

database.conf --这个是h2内嵌数据库的配置文件,以下是他的内容,他的路径以及用户密码

gitbucket.conf--这个是gitbucekt服务的配置文件,新版本的用户密码好像在这个文件中可以进行查看或修改,但是我这里没有所以想要找回密码还得对data.mv.db进行操作

3.2、拷贝他的data.mv.db数据库文件到本地实验服务器上,然后可以去连接这个数据库文件拿到你想要的信息,但是这里我根据官方网址的方式去使用h2控制台去连接这个数据库文件但是里面什么表都没有,我不知道是我的连接方式有问题还是别的步骤出错了,但是就是没有表,(这里懂的大佬可以评论指点一下),根据官网说这里可能是数据库文件损坏,所以我使用的是修复数据库文件的方式来做的

可以看到这里不光有data.mv.db数据库文件,还有一个h2-2.1.214.jar---这个是h2数据库要想对数据库文件进行操作,想要下载这个数据库,直接从他的官网上下载就好 

3.3、数据库文件损坏--这里强调一下这里是需要java环境的-如果没有java环境是做不了接下来的操作的 他需要java命令

3.4、因为连接数据库进去我这里里面没有表所以我就不演示了,接下来是数据库文件损坏模式的操作----执行命令:java -cp h2-2.1.214.jar org.h2.tools.Recover

 执行完后查看可以看到生成了一个data.mv.txt文件--这个是H2 数据库的副本文件,他包含了恢复后的数据库的数据和结构信息;不过这里我并没有用到他,我只是要去拿到里面的数据并不是去修复

另一个文件data.h2.sql-这个文件是恢复过程中生成的 H2 数据库的 SQL 脚本文件。它包含了恢复后的数据库的数据和表结构的 SQL 语句;因为我们的gitbucket用户信息数据存储在这里面也是以表的形式存储,那肯定就是要执行sql语句了,为了方便查看我将这个data.h2.sql拷贝到我的电脑上去查看他记录的sql语句。

 3.5、打开这个文件,因为他是记录了所有的操作以及一些信息,所以里面内容很多,不过一般默认的他的用户信息是在ACCOUNT表中,所以直接快捷搜索ACCOUNT就能看到他如何建的表;

   

往下翻可以看到这条语句:INSERT INTO PUBLIC.ACCOUNT SELECT * FROM O_11;

这是表 "O_11" 中的所有数据插入到表 "ACCOUNT" 中,

3.6、根据上面的信息我们就可以直接去找O_11这个表,可以看到他执行的一些sql语句

可以看到这个表的第一列是他的用户,第二列是他的邮件地址,第三列是他的密码(但是这里是一串长度为40的数字,密码存储进来是经过SHA1加密后的),不过不要慌,虽然SHA1具有单向性,从哈希值无法还原出原始输入数据,但是这并不是问题,网上也有很多解密哈希的可以去找,(虽然不能反向还原出,但是他一个密码对应的就是一个哈希值是固定的,),将密码这一列的哈希值复制出来去网上随便找个破解的就能得到你的密码了,注意如果你设置的密码非常复杂包含了数字字母符号多种,那可能我这种方法不适应你得另外再去找别的方法了!!

4、这里我有三个管理员用户,我都破解密码出来了但是我的root用户登录却提示密码不对,另外两个管理员可以登录了,有大佬懂这个的可以指教一下

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值