前段时间,部门内负责服务器的同事离职,很多事情没有交接好,当然有自己个人方面的原因,很多事情没有实现了解,也就导致了今天发现其留在
gitlab
中的工程并没把我拉到工程里,并且也没把我改成管理员,于是相当于忘记密码邮箱又不是我一样一样的。。。
这里就简单说明一下Gitlab
通过控制台强制修改指定用户的密码,实现登录。
前提条件
Gitlab
处于运行状态,可以正常使用。如果未启动,请尝试使用gitlab-ctl start
或者gitlab-ctl restart
命令启动或者重启Gitlab
。
进入控制台
如果没有配置系统环境变量,需要切换到Gitlab
的bin
目录下,如果配置了的话,可以直接执行下面的命令。我的环境配置了PATH
变量,通过$PATH
查看是否有带gitlab/bin
的,我的位置为:/opt/gitlab/bin
gitlab-rails console -e production
# 低版本可以尝试使用下面一句命令:
gitlab-rails console production
等待时间比较长,建议多等待一下,看看有没有输出,如果使用上述命令入无法进入Gitlab
控制台,建议前往Gitlab
官网查询进入Gitlab
控制台的方式进行进入哦。
进入控制台效果如下:
# gitlab-rails console -e production
--------------------------------------------------------------------------------
Ruby: ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-linux]
GitLab: 13.10.3 (b1774ad36a9) FOSS
GitLab Shell: 13.17.0
PostgreSQL: 12.6
--------------------------------------------------------------------------------
Loading production environment (Rails 6.0.3.4)
irb(main):001:0>
查看所有用户
在Gitlab
控制台输入User.all
即可看到所有的用户,如下:
irb(main):001:0> User.all
=> #<ActiveRecord::Relation [#<User id:2 @alert-bot>, #<User id:3 @support-bot>, #<User id:1 @root>, #<User id:4 @code>, #<User id:5 @hy>]>
irb(main):002:0>
查看指定用户
在Gitlab控制台执行如下命令即可获取到用户(如下:定位到id=1的用户):
irb(main):002:0> user=User.where(id:1).first
=> #<User id:1 @root>
rb(main):003:0>
修改用户密码
在上一步的基础上,修改user
变量的password
属性即可,执行命令如下:
irb(main):002:0> user=User.where(id:1).first
=> #<User id:1 @root>
irb(main):003:0> user.password='abc123456'
=> "abc123456"
irb(main):004:0> user.password_confirmation='abc123456'
=> "abc123456"
irb(main):005:0>
执行user.password='abc123456'是设置密码,然后执行user.password_confirmation='abc123456'是确认密码,两次密码需要设置成一致的。
保存用户密码
在上一步已经做过修改密码操作,但是还需要保存密码才可以生效,操作方式也是对user
对象操作,执行命令如下:
irb(main):005:0> user.save!
Enqueued ActionMailer::MailDeliveryJob (Job ID: 2222b8da-6863-4909-8e35-c01ee88c9dd5) to Sidekiq(mailers) with arguments: "DeviseMailer", "password_change", "deliver_now", {:args=>[#<GlobalID:0x00007f85c6d40ac8 @uri=#<URI::GID gid://gitlab/User/5>>]}
=> true
irb(main):006:0>
执行结果最后提示为true
,即表示设置成功了。执行user.save!
切记后面有个英文感叹号(!)。
可举一反三
如果你知道用户的电子邮件,想获取用户信息,也可以通过Gitlab
控制台执行命令按照email筛选即可,如下
user=User.where(email:'[email protected]').first
评论区