重置 GitLab 管理员密码
手里有一个旧版本的私有化部署的 GitLab 数据,临时要启动一下看一下之前的代码。由于之前就是 Docker 部署的,所以在数据文件里查了下之前部署的版本号,直接就用 Docker 启动了。启动都很顺利,但是问题出在已经没人记得之前的管理员密码了,所以需要重置管理员密码。
重置 GitLab 管理员密码的方法也很简单,GitLab 官方提供了不使用 UI 就可以重置任意用户密码的方法。虽然该方法不局限于管理员账户,但是正常情况下普通账户使用管理员账户重置即可。 对于 GitLab 13.9 的版本,可以使用 Rake 任务的方式直接重置,不过手里的版本没这么新,所以还是采用传统的 Rails 控制台进行操作。
首先进入 Rails 控制台,对于非源码安装的 GitLab,都可以直接使用 gitlab-rails console
命令进入,通过 Docker 启动的需要先进入 Docker 容器再执行命令,如图:
然后在 Rails 控制台中按顺序执行:
-
通过用户名或 ID 查询用户
对于管理员账户,默认用户名为 root,如果修改过,可以使用 ID:1 进行查询1
2
3
4
5
6
7
8通过用户名查询
user = User.find_by_username 'exampleuser'
通过 ID 查询
user = User.find(123)
通过用户邮箱查询
user = User.find_by(email: 'user@example.com') -
查询到用户后,就可以直接修改用户的密码了:
1
2
3new_password = 'abcd1234!'
user.password = new_password
user.password_confirmation = new_password -
然后保存,退出
1
2
3user.save!
exit
全部流程如下:
此时,管理员用户的密码就已经重置完成,可以正常进行登录了。
参考文档