Background Image
조회 수 15473 추천 수 67 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 수정 삭제
http://www.callor.com/zbxe/90

보안에 강한 Cubrid 부팅 시나리오 재 작성
여기 올린 글을 Q&A에 올렸던 부트 스크립트를 사용해본후 문제점이 있어 보완 작성한 글입니다. 배포는 자유이나 배포하실때는 출처를 밝혀주시기 바랍니다.
원문은 www.callor.com에 있습니다

부팅할때 DB를 같이 올릴 수 있는 최적의 방법이 없을까
매뉴얼을 들여다 보아도 어찌 된 일인지 그에 대한 설명을 찾을 수 없었다.
그래서 여러가지로 고민하고 반복하여 만들어 본 결과 만족할 만한 결과를 얻었다.

1     첫번재 방법으로 /etc/init.d/ 에 시작 데몬을 작성하여 chkconfig를 이용하여 자동 실행 되도록 하는 것이다.

가)    이 방법을 사용하면 Gnome의 서비스 관리자에서도 시작과 종료를 마음대로 할 수 있다.
나)    스크립트는 Q & A 에도 있습니다.

2     그러나 이 방법은 다음과 같은 문제들이 있음을 발견했다.

가)    Cubrid 대몬들이 모두 root 권한으로 실행는 관계로 보안에 매우 취약 할 수 있다.
나)    자동으로 시작되도록 설정한 Database들이 자동으로 시작되지 않는다.
아마 데몬이 시작되는 시기가 디스크 마운트등의 순위와 맞지 않아 그런 것으로 생각된다.
때문에 데몬등 엔진은 잘 구동이 되지만, 부팅 후 다시 데몬을 stop 하고 다시 start 해주어야 비로소 자동 시작 Database가 구동이 된다.

3     일단 root가 아닌 별도의 사용자 권한으로 구동해 줄 필요가 있었다.

가)    그래서 일단 cubrid 를 생성한다.
        /usr/sbin/adduser cubrid
나)    그리고 CUBRID 이하 폴더의 소유자 권한을 cubrid로 지정한다.
       chown cubrid.cubrid –R CUBRID
다)    Cubrid HOME_DIR에 /root/.cubris.sh 복사해 오고 소유자 권한을 cubrid로 지정한다.
        chown cubrid.cubrid .cubrid.sh

라)    로그인 쉘 스크립트에서 .cubris.sh를 실행해 주자 .bashrc 파일을 열고 다음을 추가한다.
  # -- Cubrid 환경설정 -----------
if [ -f .cubrid.sh ]; then
        . .cubrid.sh
fi

4     생성된 cubrid 유저 권한으로 /etc/init.d/cubrid_service 스크립트를 실행하자.
가)     /etc/init.d/cubrid_service 데몬 스크립트 중 일부를 다음과 같이 바꾼다.

start() {
     #$CUBRID_MANAGER/bin/cmauto start
     #sleep 1
     #$CUBRID_MANAGER/bin/cmjs start

     su cubrid - cubrid_service start
     RETVAL=$?
     return $RETVAL
}
stop() {
    #$CUBRID_MANAGER/bin/cmjs stop
    #sleep 1
    #$CUBRID_MANAGER/bin/cmauto stop
    #sleep 1
    #$CUBRID_BROKER/bin/cubrid_broker stop
    #$CUBRID_UTIL/commdb -A

    su cubrid - cubrid_service stop
    RETVAL=$?
    return $RETVAL
}

5     시스템을 재 부팅

가)    프로세스를 검사해 보니 이제 cubrid 데몬들이 cubrid 유저 권한으로 실행 된 것을 볼 수 있다.
나)    하지만, 이 방법으로도 역시 Database를 자동으로 실행하지는 못한다. 스크립트가 작동되는 시간적 이유가 아닌가 생각된다.

6     자 이제 그럼 /etc/rc.local 스크립트에 등록하여 자동으로 실행 하자.
가)    /etc/rc.local 스크립트를 에디터로 열어 다음 문장을 추가해 준다.
          # Cubrid Database
          # cubrid_service 서비스 스크립트를 cubrid 사용자 권한으로 실행하여 데몬을 구동한다.
          su - cubrid cubrid_service start

7     이제 시스템을 재부팅한다.

가)    권한의 문제, Database 자동 실행등의 문제는 해결된 것으로 보인다.
나)    매뉴얼에 나와 있는 몇몇 설명들이 실제와 달라 많이 혼동되었다.
다)    매뉴얼에는 다음과 같은 설명들이 실제 상황에서는 사용하지 않아도 되는 것들이었다.
         ①     master : 마스터 데몬의 시작
         ②     server : 원격 클라이언트의 요청에 응답하기 위한 서버 유틸리티
         ③     start_server database : master 실행 여부를 검사하고 중단되었으면 실행한 후 server를 실행한다.
        ④     Stop_server : start_server와 반대 되는 기능
        ⑤     Cubrid_broker start : 브로커 유틸리티를 시작한다.
라)    순서대로 실행해야 하는 부팅명령들이 cubris_service start하면 순서대로 실행된다.
마)    또한 자동실행으로 설정된 database 이름이 $CUBRID/admin/databases.txt파일에 있다고 하였으나 그렇지 않다.
       ①     $CUBRID/Manager/cmserver/conf/autostartdb.conf 파일에 자동 시작 database 이름이 등록되어 있다.

List of Articles
번호 제목 글쓴이 날짜 조회 수
62 ITrack SW 다운로드 1 file 관리자 2006.09.07 17053
» Linux에서 Cubrid 자동 부팅하기 장현정 2007.10.25 15473
60 ITrack 설명서 file 관리자 2006.09.07 14513
59 ITrack 모범 사용(best practice) 문서 1 file 관리자 2006.09.07 13518
58 큐브리드용 그누보드(GNUBOARD)4 공개 file 한마루 2007.02.26 1560625
57 ITrack (Issue Tracking System) 이란? 관리자 2006.09.06 17888
56 ITrack KLDP에 공개SW 프로젝트로 등록 2 김평철 2006.09.12 16421
55 큐브리드용 제로보드 및 데이터 마이그레이션 툴 3 file InoS 2006.10.12 21986
54 소프트웨어 개발 프로세스 자료들... file 관리자 2007.01.17 26814
53 JCO 8차 컨퍼런스 발표 자료 (개발프로세스) file 김평철 2007.02.12 17391
52 사이냅소프트(Synapsoft) 개발체계 정병주 2007.04.13 18547
51 큐브리드 7.0 : cci c 파일 델파이 포팅자료 - 베타1 2 file 나비스 2007.05.31 16397
50 PHP로 DB작업 디버깅하기(오류시 담당자에 디버깅 정보 보내기) 서상욱 2007.06.19 20125
49 큐브리드용 그누보드 4.21.0 1 file 한마루 2007.06.22 38481
48 게임개발자들을 위한 CUBRID C-API 관련 자료 및 sample code file 남재우 2007.06.28 20161
47 교육 예제입니다. 강사 2007.07.25 18111
46 php로 큐브리드 프로시저 사용하기 1 박진호 2007.10.05 22500
45 loadjava GUI Tool 공유 file 궁금이 2007.10.13 19239
44 phpCubAdmin 1.0.1 입니다. file 야라바 2007.10.18 18978
43 [util] procedure 등록 유틸리티 1 file 이지현 2007.10.19 15421
Board Pagination Prev 1 2 3 4 Next
/ 4

Contact Cubrid

대표전화 070-4077-2110 / 기술문의 070-4077-2113 / 영업문의 070-4077-2112 / Email. contact_at_cubrid.com
Contact Sales