주식회사 누리아이티

정보자산의 보안강화를 위한 다계층 인증SW (BaroPAM) 전문기업.

▶ Tuxedo/기술자료

Tuxedo Admin 계정이 아닌 개발자 계정에서 서버 프로세스의 시작/종료 권한부여

누리아이티 2012. 2. 24. 09:43

1.tmboot 기능 제한을 위한 wrapping 프로그램(tmstart.c)
  C 프로그램을 이용 tmboot command를 "tmboot -s servername"만 실행되도록 별도의 실행파일을 만든다.
  tmshutdown 역시 같은 방법으로 별도의 실행파일을 만든다.
 
1.1 C 프로그램(tmstart.c)
#include <stdio.h>
#include <stdlib.h>
 
int main(int argc, char *argv[]) {
    char *tux_dir, sbuf[256];
    int   len = 0;
 
    if (argc != 2) {
        fprint(stderr, "Usage : %s Servername\n\n", argv[0]);
        exit(-1);
    }
    if ((tux_dir = getenv("TUXDIR")) == (char *)0) {
        fprintf(stderr, "env variable TUXDIR Not Set !!\n");
        exit(-1);
    }
    len = strlen(argv[1]);
    if (len > 15) {
        fprintf(stderr, "서버명은 15byte 까지만 허용됩니다.(%-16.16s)\n", argv[1]);
        exit(-1);
    }
    memset(sbuf, 0x00, sizeof(sbuf));
    sprintf(sbuf, "%s/bin/tmboot -s %-*.*s", tux_dir, len, len, argv[1]);
    system(sbuf);
}
 
1.2 C 프로그램 컴파일
    > cc -o tmstart -R $TUXDIR/lib tmstart.c
    > cc -o tmstart -L $TUXDIR/lib tmstart.c
    > cp tmstart tmstop
 
1.3 별도로 작성한 실행파일의 권한 설정
    > chmod u+4755 tmstart tmstop
 
2.설정절차
2.1 Tuxedo 관련 환경변수 설정
    export TUXDIR=/tuxedo
    export PATH=
    export LIBPATH=
 
2.2 Tuxedo의 Shared library를 개발자 계정에서 사용할 수 있도록 설정
    개발자 계정에서 서버 프로세스를 Start, Stop할 때 boot된 서버 프로세스가 Tuxedo Admin 계정으로 실행되도록 Effective User를 Tuxedo Admin 계정으로 설정한다.
    > chmod u+s tmboot
    > chmod u+s tmshutdown
    주의) 하면 안됨(tmboot: CMDTUX_CAT:1113: ERROR: Must be the administrator to execute this command)
 
[AIX 장비]
exec(): 0509-036 다음 오류 때문에 /usr/ssw/tuxedo/bin/tmshutdown 프로그램을 로드할 수 없습니다.
        0509-150   종속 모듈 libgpnet.so이(가) 로드되지 않았습니다.
        0509-022 libgpnet.so 모듈을 로드할 수 없습니다.
        0509-026 시스템 오류: 경로 이름에 있는 파일이나 디렉토리가 존재하지 않습니다.
 
===>
$TUXDIR/lib 에 있는 라이브러리를 /usr/lib 에 Symbolic link를 걸어 줘야 함.