侧边栏壁纸
博主头像
沙漠渔

把過去的累積,善用到當下

  • 累计撰写 484 篇文章
  • 累计创建 295 个标签
  • 累计收到 958 条评论
标签搜索

目 录CONTENT

文章目录

Gitlab通过控制台强制修改指定用户密码的方法

沙漠渔
2022-08-05 / 0 评论 / 0 点赞 / 885 阅读 / 2,329 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2022-08-05,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。

前段时间,部门内负责服务器的同事离职,很多事情没有交接好,当然有自己个人方面的原因,很多事情没有实现了解,也就导致了今天发现其留在gitlab中的工程并没把我拉到工程里,并且也没把我改成管理员,于是相当于忘记密码邮箱又不是我一样一样的。。。

这里就简单说明一下Gitlab通过控制台强制修改指定用户的密码,实现登录。

33da145b0daf52ae0eb2ab76a5be5e6c

前提条件

Gitlab处于运行状态,可以正常使用。如果未启动,请尝试使用gitlab-ctl start或者gitlab-ctl restart命令启动或者重启Gitlab

进入控制台

如果没有配置系统环境变量,需要切换到Gitlabbin目录下,如果配置了的话,可以直接执行下面的命令。我的环境配置了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:'jenkins@domian.com').first
0
广告 广告

评论区