BOARD

문제 해결

관리자 로그인 비밀번호 분실 시 강제 재설정 및 변경 방법

페이지 정보

profile_image
작성자 최고관리자
댓글 0건 조회 3회 작성일 26-10-30 16:11

본문

관리자 로그인 비밀번호 분실 시 강제 재설정 및 변경 방법

그누보드 관리자 계정의 비밀번호를 분실하여 로그인할 수 없을 때, 데이터베이스나 임시 스크립트를 활용해 비밀번호를 강제로 재설정하고 접근 권한을 복구하는 방법을 안내합니다.

그누보드 5.4 이상 버전 관리자 비밀번호 강제 변경 방법

그누보드 5.4 이상 버전에서는 비밀번호 암호화 방식이 변경되었으므로, 버전에 맞는 암호화 함수와 CLI(터미널) 환경을 활용하여 비밀번호를 재설정해야 합니다.

1. 작업 전 필수 조치

  • 데이터 손실 방지를 위해 데이터베이스(DB) 전체를 반드시 백업합니다.
  • 그누보드4와 그누보드5는 비밀번호 암호화 방식이 다르므로 버전에 맞는 함수를 정확히 사용해야 합니다.

2. 복구용 스크립트 작성 및 실행 절차

  1. 서버 터미널(CLI)에 접속하여 그누보드 설치 경로 외부의 안전한 임시 디렉토리에 복구용 PHP 스크립트를 생성합니다.
  2. 그누보드 5.4 이상 버전에서는 get_encrypt_string() 함수를 사용합니다. /extend 폴더에 임시 파일을 생성하고 아래 코드를 작성합니다.
<?php
$admin_pass = get_encrypt_string('변경할비밀번호');
sql_query(" update {$g5['member_table']} set mb_password = '$admin_pass' where mb_id = 'admin' ");
?>
  1. 웹 브라우저에서 해당 파일이 위치한 경로를 호출하거나 CLI 환경에서 실행하여 비밀번호를 변경합니다.

3. 작업 후 보안 조치

  • 비밀번호 변경이 완료된 즉시 임시 생성한 PHP 파일은 서버에서 완전히 삭제합니다. (임시 파일을 삭제하지 않으면 보안 취약점으로 악용될 수 있습니다.)

데이터베이스 직접 접근을 통한 관리자 비밀번호 변경 방법

데이터베이스 관리 툴(phpMyAdmin 등)을 사용하여 직접 관리자 비밀번호를 강제로 수정하려면 다음 순서대로 진행합니다.

1. phpMyAdmin 및 테이블 접근

  1. myPhpAdmin에 접속합니다.
  2. 그누보드 회원 정보가 저장된 g5_member 테이블을 클릭합니다.
  3. 상단 메뉴에서 SQL을 클릭합니다.

2. SQL 쿼리 실행

SQL 실행 란에 아래의 내용을 복사하여 넣고 실행합니다. 예시에서는 비밀번호를 1111로 설정하는 쿼리입니다.

update g5_member set mb_password = password('1111') where mb_id='admin'

실행이 정상적으로 완료되면 관리자 아이디(admin)의 비밀번호가 1111로 변경됩니다.

다만 MySQL 8.0.11 버전 이상에서는 PASSWORD() 함수가 영구히 제거되었습니다. 해당 환경에서는 password('1111') 대신 md5('1111')을 사용하거나, Q1에서 안내한 PHP 스크립트 방식을 권장합니다.

관리자 비밀번호 재설정 후 보안 조치

비밀번호 변경 및 관리자 모드 로그인이 정상적으로 완료되었다면, 서버 보안을 위해 즉시 다음 조치를 진행해야 합니다.

  • 임시 파일 삭제: 그누보드5의 경우 /extend 폴더에 생성했던 복구용 PHP 파일을 삭제합니다. 비밀번호 변경이 완료된 후 해당 파일을 방치하면 보안 취약점으로 악용될 수 있습니다.
  • 로그인 확인: 파일을 삭제한 후 웹 브라우저를 통해 정상적으로 관리자 로그인이 유지되는지 최종 확인합니다.

관리자 비밀번호 분실 시 상황별 선택 기준과 행동

1. 그누보드 5.4 이상 버전을 사용하는 경우

  • 선택 기준: 최신 버전 환경이므로 password() 함수 대신 버전에 맞는 암호화 방식(get_encrypt_string() 등)이 반영된 스크립트를 적용해야 합니다.
  • 다음 행동: /extend 폴더에 임시 PHP 파일을 생성하여 변경할 비밀번호를 설정하고 관리자로 로그인한 뒤, 즉시 해당 임시 파일을 삭제합니다.

2. 데이터베이스 직접 접근(phpMyAdmin 등)이 가능한 경우

  • 선택 기준: 서버 파일 업로드보다 DB 콘솔에서 직접 쿼리를 실행하는 것이 빠른 경우 g5_member 테이블을 확인합니다.
  • 다음 행동: update g5_member set mb_password = password('변경할비밀번호') where mb_id='admin' 쿼리를 실행하여 비밀번호를 변경합니다. (단, MySQL 8.0.11 이상 환경에서는 password() 함수가 제거되었으므로 버전 호환성을 확인해야 합니다.)

Q. 비밀번호 변경 후 로그인이 성공했는데 임시 파일을 삭제하지 않으면 어떻게 되나요?

  • 대안: /extend 폴더나 루트 경로에 남겨둔 복구용 스크립트 파일을 방치할 경우, 외부에서 브라우저를 통해 무단으로 관리자 권한을 탈취하거나 보안 취약점으로 악용될 수 있습니다. 변경 직후 반드시 삭제하십시오.

Q. MySQL 8.0.11 이상 버전에서 password() 쿼리가 실행되지 않고 에러가 발생합니다.

  • 예외: MySQL 8.0.11 버전부터는 기본 password() 함수가 영구히 제거되었습니다. 이 경우 DB 직접 수정 대신 그누보드 버전에 맞는 암호화 함수를 포함한 PHP 스크립트 방식을 사용해야 합니다.

함께 보면 좋은 글

참고자료

기타 참고자료

댓글목록

등록된 댓글이 없습니다.