gitlab 패스워드 리셋하기
gitlab 패스워드 리셋하기
Gitlab 을 사용하다가 갑자기 패스워드를 잊어버리는 경우가 생길 수 있습니다. 이럴때 보통 Web 에서 ‘Fogot your password’ 링크를 클릭하고 리셋될 패스워드를 가입할때 적어놓은 E-mail 로 발송을 해줍니다. 그런데, E-mail 주소가 없는 거라면 패스워드를 리셋할 수가 없어서 로그인을 못하게 됩니다.
이럴때는 Gitlab 서버에 터미널로 로그인을 해서 gitlab-rails console을 실행하고 패스워드를 바꿀 수 있습니다. 먼저 gitlab-rails console로 접속을 합니다.
1 2 3 4 |
]# gitlab-rails console Loading production environment (Rails 4.2.4) irb(main):001:0> irb(main):002:0* |
여기서 만일 E-mail 주소를 정확하게 알고 있다면 다음과 같이 user 객체를 지정할 수 있습니다.
1 2 |
irb(main):005:0* user = User.find_by(email: 'admin@local.host') => nil |
그런데 위와같이 ‘nil’ 로 나오면 없는 사용자라는 거죠. 그럼 다음은 id 로 검색을 합니다. id 는 내부 데이터베이스에 저장될때에 사용되어진 primary key 인듯 합니다. 보통 사용자가 1명이라면 이 방법이 통하지만 수십명이면 안되겠죠.. (전 집에서 개인적으로 사용하기 때문에 사용자가 1명인 경우입니다. )
1 2 |
irb(main):018:0* user = User.where(id: 1).first => #<User id: 1, email: "admin@example.com", |
뭔가 나오네요… 그런데 이마저도 모르겠다!! 그러면 사용자 로그인 아이디로 검색을 해봅니다.
1 2 |
rb(main):006:0* user = User.find_by(username: 'root') => #<User id: 1, email: "admin@example.com", |
뭔가 나왔군요. 그러면 user 객체가 생성되어진 겁니다.
패스워드는 다음과 같이 바꾸면 됩니다.
1 2 3 4 5 6 |
rb(main):019:0> user.password = 'reset_password' => "reset_password" irb(main):020:0> user.password_confirmation = 'reset_password' => "reset_password" irb(main):021:0> user.save => true |
그리고 바로 Web 에서 변경된 패스워드로 로그인이 가능합니다.