이전 목록 다음
채택완료

g7 최고관리자 비번 분실 시

2026-10-15 (목) 11:46:20 56

어렵게 g7을 설치에는 성공 했는데 다시 들어가려니 죄고관리자 비번을 분실 했습니다.
g5 최고관리자 비번 분실 시 재설정 하는 방법으로는 안되는군요.

아직 DB구조도 파악도 안되어서 ㅠㅠ

답변 3개 / 댓글 2개

채택된 답변
+20 포인트
2026-10-15 (목) 14:20:02

g7은 그누보드5와 패스워드 암호화 방식(PBKDF2/FastAPI 기반 등 버전별 차이) 및 회원 데이터 구조가 다를 수 있습니다.

DB 구조를 모르셔도 FTP 접속만 가능하시다면 아래 방법으로 가장 빠르게 초기화하실 수 있습니다.

1.임시 파일 생성:1분.

메모장에 아래 코드를 복사하고 파일명을 reset.php로 저장합니다. (1234 자리에 원하시는 새 비밀번호를 입력하세요)

PHP
<?php
include_once('./common.php');

// 변경할 관리자 ID 및 새 비밀번호
$mb_id = 'admin'; 
$new_pass = '1234'; 

// g7/g5 공용 회원 패스워드 업데이트
$sql = " update {$g5['member_table']} set mb_password = '" . sql_password($new_pass) . "' where mb_id = '{$mb_id}' ";

if (sql_query($sql)) {
    echo "관리자({$mb_id}) 비밀번호가 정상 변경되었습니다.";
} else {
    echo "변경 실패. 관리자 아이디를 확인하세요.";
}
?>

2.FTP 업로드:1분.

생성한 reset.php 파일을 그누보드가 설치된 **최상위 폴더(www 또는 public_html 등)**에 업로드합니다.


3.웹에서 실행:30초.

브라우저 주소창에 http://본인도메인/reset.php로 접속하여 성공 메시지를 확인합니다.


4.임시 파일 삭제:필수.

보안을 위해 reset.php 파일을 FTP에서 바로 삭제합니다.

  • 성공 확인: 관리자 로그인 페이지에서 변경한 비밀번호로 접속이 되는지 확인합니다

g7은 그누보드5와 구조가 완전히 다릅니다. 라라벨(Laravel) 기반이라 회원 테이블이 g5_member가 아니라 g7_users이고, 로그인도 아이디가 아니라 이메일로 하며, 비밀번호는 bcrypt 해시로 저장됩니다. 그래서 g5 방식으로는 안 됩니다.

먼저 관리자 이메일부터 확인하세요. 설치 때 넣은 이메일이 기억 안 나서 못 들어가는 경우도 많습니다.

SELECT id, email FROM g7_users WHERE is_super = 1;

(테이블 앞글자 g7_ 는 설치 때 정한 접두어입니다. 바꾸셨다면 사이트 폴더의 .env 파일에서 DB_PREFIX 값을 보시면 됩니다.)

[방법 1] SSH 접속이 되면 — 가장 간단합니다

사이트 폴더에서 php artisan tinker 실행 후 아래를 한 줄씩 입력합니다.

$u = App\Models\User::where('is_super', true)->first();
$u->password = '새비밀번호';
$u->failed_login_attempts = 0;
$u->locked_until = null;
$u->locked_permanently = false;
$u->save();

password에 평문을 넣어도 모델이 알아서 해시로 바꿔 저장합니다. 아래 세 줄은 비밀번호를 여러 번 틀려서 계정이 잠긴 경우를 풀어 주는 것입니다.

[방법 2] SSH가 없고 phpMyAdmin만 되면

1) 새 비밀번호의 해시를 만듭니다. 사이트 폴더에 임시 파일(예: hash_tmp.php)을 올리고

<?php echo password_hash('새비밀번호', PASSWORD_BCRYPT);

브라우저로 열면 $2y$ 로 시작하는 긴 문자열이 나옵니다. 복사한 뒤 이 파일은 바로 지우세요. (온라인 해시 생성 사이트에 비밀번호를 넣는 건 권하지 않습니다.)

2) phpMyAdmin에서 실행합니다.

UPDATE g7_users
SET password = '복사한 해시값',
    failed_login_attempts = 0,
    locked_until = NULL,
    locked_permanently = 0
WHERE is_super = 1;

3) 확인한 이메일과 새 비밀번호로 로그인하면 됩니다.

메일 발송 설정이 되어 있다면 로그인 화면의 비밀번호 찾기로도 되지만, 설치 직후에는 메일 설정이 안 돼 있는 경우가 많아 위 방법이 확실합니다. 작업 전에 DB 백업은 꼭 받아 두세요.
 

답변에 대한 댓글 1개

[email protected]# docker exec -it php85 sh -lc 'cd /var/www/php85/domain.com && php artisan tinker'
Psy Shell v0.12.24 (PHP 8.5.10 — cli) by Justin Hileman
New PHP manual is available (latest: 3.1.4). Update with `doc --update-manual`
................
#password: "qqqqqqqqqqqqqqqqqqi",
language: "ko",
is_super:
> $u->password = \Illuminate\Support\Facades\Hash::make('qqqqqqqqqq@#$');
$u->save();
= true
안녕하세요. 현재 그누보드7은 관리자 비밀번호 분실시 재설정하는 artisan 명령어가 없습니다.
번거로우시더라도 아래와 같이 tinker 콘솔에서 재설정 요청드립니다.

1. 그누보드7 설치 디렉토리에서 아래와 같이 명령을 입력합니다
php artisan tinker

2. 아래 명령을 한 줄씩 입력합니다. (새 비밀번호는 변경하실 비밀번호를 적습니다)
$u = App\Models\User::where('is_super', true)->first();
$u->email;                       // 관리자 이메일(로그인 ID) 확인
$u->password = '새비밀번호';      // 평문으로 넣으면 자동으로 암호화됩니다
$u->failed_login_attempts = 0;   // 로그인 실패로 잠긴 경우 해제
$u->locked_until = null;
$u->locked_permanently = false;
$u->save();

3. 변경한 비밀번호로 재 로그인을 시도합니다.

문의주신 사례를 통해, 비밀번호 재설정 기능 보완이 필요하다고 판단됩니다.
그누보드7 업데이트 시 이 부분을 저희쪽에서 보완하도록 검토해보겠습니다.

감사합니다.

답변에 대한 댓글 1개

네, 감사합니다. 아래 명령이 중요한가봅니다.
docker exec -it php85 sh -lc 'cd /var/www/php85/domain.com && php artisan tinker'

답변을 작성하려면 로그인이 필요합니다.