그누보드 관리자 권한 확장 및 다중 관리자 설정 가이드
페이지 정보

본문
그누보드의 기본 설정을 확장하여 여러 명의 최고관리자나 특정 회원 레벨을 가진 게시판 관리자를 설정하는 방법과 주의사항을 살펴봅니다.
그누보드 최고관리자 권한 확장 코드 작성 방법
그누보드는 기본적으로 최고관리자 1명만 지정할 수 있도록 설정되어 있습니다. 코어 파일을 직접 수정하지 않고 extend/user.config.php 파일을 활용하면 특정 회원 ID나 회원 레벨을 기준으로 최고관리자 권한을 안전하게 확장할 수 있습니다.
1. 설정 파일 위치 확인 및 생성
그누보드가 설치된 경로 하위의 extend 폴더 내에 user.config.php 파일이 있는지 확인합니다. 파일이 존재하지 않는 경우 새로 생성합니다.
2. 최고관리자 권한 부여 코드 작성
extend/user.config.php 파일을 열고 개별 페이지 접근 불가 보안 코드를 포함하여 아래와 같이 조건문을 추가합니다.
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
// 최고관리자 (회원 ID 지정)
if ($member['mb_id'] == '회원아이디1') $is_admin = 'super';
if ($member['mb_id'] == '회원아이디2') $is_admin = 'super';
// 최고관리자 (특정 레벨 지정)
if ($member['mb_level'] == 회원레벨) $is_admin = 'super';
3. 게시판 관리자 권한 부여 코드 작성
특정 게시판에만 특정 회원 ID나 레벨을 가진 회원을 관리자로 지정하려면 아래와 같이 조건문을 작성합니다.
// 특정 게시판 관리자 (회원 ID 지정)
if ($bo_table == '게시판ID') {
if ($member['mb_id'] == '회원아이디1') $is_admin = 'board';
if ($member['mb_id'] == '회원아이디2') $is_admin = 'board';
if ($is_admin == 'board') $board['bo_admin'] = $member['mb_id'];
}
// 특정 게시판 관리자 (특정 레벨 지정 - 최고관리자 제외)
if ($bo_table == 'free' && $is_admin!= 'super') {
if ($member['mb_level'] == 5) $is_admin = 'board';
if ($is_admin == 'board') $board['bo_admin'] = $member['mb_id'];
}
게시판 관리자 권한 지정 설정 방법
그누보드에서 전체 최고관리자 권한을 부여하지 않고 특정 게시판(botable)별로 관리 권한을 나누려면 extend/user.config.php 파일에 조건문을 추가하여 `$isadmin변수와$board['bo_admin']` 값을 제어할 수 있습니다.
설정 위치 및 코드 작성
extend/user.config.php파일을 생성하거나 엽니다 (파일이 없다면 새로 생성합니다).- 파일 상단의
if (!defined('_GNUBOARD_')) exit;바로 아래에 아래와 같은 형식의 코드를 추가합니다.
// 특정 게시판 ID와 회원 아이디를 기준으로 게시판 관리자 지정
if ($bo_table == '게시판ID' && $is_admin!= 'super') {
if ($member['mb_id'] == '회원아이디1') $is_admin = 'board';
if ($member['mb_id'] == '회원아이디2') $is_admin = 'board';
if ($is_admin == 'board') $board['bo_admin'] = $member['mb_id'];
}
// 특정 게시판 ID와 회원 레벨을 기준으로 게시판 관리자 지정
if ($bo_table == '게시판ID' && $is_admin!= 'super') {
if ($member['mb_level'] == 회원레벨) $is_admin = 'board';
if ($is_admin == 'board') $board['bo_admin'] = $member['mb_id'];
}
설정 예시
예를 들어 free 게시판에 레벨 5인 회원을 게시판 관리자로 지정하려면 다음과 같이 작성합니다.
if ($bo_table == 'free' && $is_admin!= 'super') {
if ($member['mb_level'] == 5) $is_admin = 'board';
if ($is_admin == 'board') $board['bo_admin'] = $member['mb_id'];
}
그누보드 관리자 권한 확장 및 다중 관리자 설정 방법
그누보드는 기본적으로 최고관리자 1명과 각 게시판별 관리자 1명만 지정할 수 있도록 제한되어 있습니다. 관리자 권한을 여러 명에게 부여하거나 특정 레벨의 회원에게 게시판 관리 권한을 부여하려면 extend/user.config.php 파일을 활용하여 $is_admin 변수를 동적으로 제어할 수 있습니다.
1. extend/user.config.php 파일 설정 원리
extend/ 폴더 하위에 user.config.php 파일을 생성하면 핵심 코드를 직접 수정하지 않고도 시스템 전반의 설정을 확장할 수 있습니다. 해당 파일 상단에 개별 페이지 직접 접근을 막는 보안 코드를 넣고 조건문을 작성합니다.
<?php
if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
2. 최고관리자 여러 명 지정하기
특정 회원 ID나 특정 회원 레벨을 가진 사용자에게 최고관리자 권한(super)을 부여하려면 파일에 아래와 같은 조건문을 추가합니다.
- 회원 ID로 지정할 때:
if ($member['mb_id'] == '회원아이디1') $is_admin = 'super'; if ($member['mb_id'] == '회원아이디2') $is_admin = 'super'; - 특정 레벨로 지정할 때:
if ($member['mb_level'] == 회원레벨) $is_admin = 'super';
3. 게시판 관리자 지정 및 레벨별 권한 확장
특정 게시판($bo_table)에 대해 특정 회원이나 특정 레벨의 회원에게 게시판 관리자 권한(board)을 부여할 수 있습니다.
- 특정 게시판에 회원 ID로 관리자 지정할 때:
if ($bo_table == '게시판ID') { if ($member['mb_id'] == '회원아이디1') $is_admin = 'board'; if ($is_admin == 'board') $board['bo_admin'] = $member['mb_id']; } - 특정 게시판에 특정 레벨 회원을 관리자로 지정할 때 (최고관리자 제외):
if ($bo_table == 'free' && $is_admin!= 'super') { if ($member['mb_level'] == 5) $is_admin = 'board'; if ($is_admin == 'board') $board['bo_admin'] = $member['mb_id']; }
다음 행동 및 확인 방법
extend/user.config.php파일이 올바른 경로(extend/user.config.php)에 위치하는지 확인합니다.- 코드를 수정한 후 권한을 부여한 계정으로 로그인하여 관리자 페이지 또는 대상 게시판 관리 기능에 정상적으로 접근할 수 있는지 점검합니다.
상황별 판단 및 행동 가이드
| 내 상황 | 선택 기준 | 다음 행동 |
|---|---|---|
| 여러 명의 최고관리자 지정이 필요한 경우 | 코어 수정 없이 extend/user.config.php를 통해 $is_admin 변수를 동적으로 제어 | extend/user.config.php 생성 후 보안 코드(if (!defined('_GNUBOARD_')) exit;)와 회원 ID별 $is_admin = 'super' 조건문 추가 |
| 특정 게시판 관리자 권한 부여가 필요한 경우 | $bo_table과 회원 레벨/ID 조건을 조합하여 게시판별 관리 권한 할당 | extend/user.config.php에 $bo_table 조건문과 $board['bo_admin'] 설정 코드를 추가하여 권한 부여 |
| 설정 후 권한 적용 여부 확인 | 관리자 페이지 접근 및 게시판 관리 기능 활성화 여부 점검 | 권한을 부여한 계정으로 로그인하여 관리자 메뉴 접근 및 게시판 설정 변경 테스트 |
실전 FAQ
Q. 최신 그누보드 환경에서 권한 확장 시 주의할 점은 무엇인가요?
- 대안: 본 방식은 그누보드4 시절부터 사용된 확장 기법입니다. 최신 버전에서는 관리자 토큰 및 CSRF 방어 로직이 적용되어 있으므로, 권한을 임의로 확장할 경우 보안 취약점이 발생하거나 다른 플러그인과 충돌할 수 있습니다. 운영 환경 적용 전 반드시 충분한 테스트를 거치십시오.
Q. 설정 후 '올바른 방법으로 이용해 주십시오' 오류가 발생하면 어떻게 하나요?
- 예외: 파일 수정 시 UTF-8 BOM 형식이 포함되었거나 파일 상단/하단에 공백이 있으면 토큰 에러가 발생할 수 있습니다. 파일을 UTF-8(BOM 없음)로 저장하고 불필요한 공백을 제거하십시오.
Q. 파일 이름이 반드시 user.config.php여야 하나요?
- 대안:
extend/폴더 내의 PHP 파일은 한글 파일명을 제외하고 자동으로 인식되므로, 기존 파일과 충돌을 피하기 위해 별도의 영문 파일명으로 생성해도 무방합니다.
함께 보면 좋은 글
- 그누보드 투표 관리 기능 확장: 참가자 닉네임 출력 및 다중 투표 배치
- 그누보드 최고관리자 권한 확장 및 회원 정보 수정 방법
- 그누보드 관리자 메뉴 회원 레벨별 권한 제어 기능 구현 방법
참고자료
기타 참고자료
- 이전글그누보드 FAQ 스킨 토글 기능 해제 및 항상 열림 설정 방법 26.09.30
- 다음글그누보드 외부 스팸 차단 라이브러리(zmSpamFree) 연동 방법 26.09.29
댓글목록
등록된 댓글이 없습니다.