Tag Archives: 서버관리

[vi/vim] 진정한 멋쟁이는 VI를 사용합니다.

조금 웃기는 제목이지만 저도 어렸을적에 해킹 영화를 보면서 검은창에 알수없는 글자가 주르륵 올라가는것을 보며 왠지 모르게 멋지다는 생각을 했었던거 같습니다.

그래서 해커에 대해 끝없는 동경을 해왔었지만 지금 생각해 보면 아무것도 아닌 것이더군요;;

물론 아무것도 아닌것은 아니지만 모르고 보면 멋지지만 알고보면 평범함 그 자체….그것이 바로 Unix/Linux의 묘미가 아닐까요.

실예로 스크린샷은 없지만 모노폴리라는 국내의 양동근이 해킹 천재로 나오는 영화가 있습니다.

거기에 해킹하는 장면중에 뭐가 주르륵 올라가는것이 있는데 그걸 자세히 보니 리눅스 부팅 스크립트(rc.local) 이더군요;; 웃기죠;;ㅎㅎ

아무튼 유닉스던 리눅스던 쓰다보면 가장많이 사용하게 될 vi 에디터의 사용법에 대해 간단히 정리해 보겠습니다.

제가 자주 쓰는 명령어 위주로만 적어보겠습니다. emacs만큼은 아니지만 vi도 꽤 다양한 명령어 체계를 가지고 있습니다.

1. 기본 명령어
– 기본시작
[code]vi [filename][/code]
– 저장하고 종료
[code]ZZ
:wq[/code]
– 저장하지 않고 종료
[code]:q![/code]
– 명령어 모드로 진입
[code][esc][/code]

2. 커서 이동
– 왼쪽 / 아래 / 위 / 오른쪽
[code]h / j / k / l[/code]
– 줄의 시작 / 끝
[code]0 / $[/code]
– 이전단어 / 다음 단어
[code]b / e[/code]
– 화면상의 시작 / 중간 / 끝
[code]H / M / L[/code]

3. 화면 이동
– 이전 / 다음 페이지 이동
[code] ^B / ^F[/code]
– 가장 마지막 줄로 이동
[code]G[/code]
– 원하는 줄로 이동
[code][n]G[/code]

4. 커서 삽입 (명령어 모드에서 사용)
– 다음 칸에 삽입
[code]a[/code]
– 현재 칸에 삽입
[code]i[/code]
– 다음줄에 삽입
[code]o[/code]


5. 삭제
– 한글자 삭제
[code]x[/code]
– 한줄 삭제
[code]dd[/code]
– 현재 위치에서 원하는 줄 수만큼 삭제
[code][n]dd[/code]

6. 검색
– 이전 검색
[code]?[/code]
– 다음 검색
[code]/[/code]

7. 기타
– 현재위치 북마크
[code]m[x][/code]
– 저장된 북마크위치로 이동
[code]`[x][/code]

8. 탭 편집
– 새탭 생성
[code]:newtab [filename][/code]
– 탭탐색기실행
[code]:Te[/code]
– 다음탭 이동
[code]:tabn
gt[/code]
– 이전탭 이동
[code]:tabp
gT[/code]
– 탭 정렬 변경
[code]:tabm [n][/code]

9. 화면 분할
– 수평탭 나누기
[code]sp[/code]
– 수직탭 나누기
[code]vs[/code]
– 창 이동 (리눅스의 경우 hjkl 대신 방향키로도 가능)
[code]^ww / ^w[h / j / k / l][/code]
– 창 최대화
[code]^w_[/code]
– 창 원래대로
[code]^w+[/code]

[TOMCAT] Tomcat을 다른 권한으로 실행하기

아파치 재단의 최상위 프로젝트중에 하나인 톰캣은 무료지만 정말 빠르고 뛰어난 WEB/WAS 어플리케이션입니다.

물론 웹서버의 지존은 Apache가 있겠지만요, Apache + Tomcat 조합의 구성은 무료로 Java/JSP를 호스팅 할 수 있는 최상의 조건이 되지 않을까 생각합니다.

Tomcat을 사용하다 보면 root로 실행하는 경우가 많이 있는데요, 그러다 보면 톰캣도 root로 돌아가게 된다는 문제점이 생깁니다.

WAS가 root로 실행된다면? 안봐도 끔찍한 보안 문제가 많이 발생할 소지가 있습니다.

그렇다면 역시 다른 제한된 권한으로 실행하는 것이 좋을텐데요, 그중에서도 로그인조차 제한되어있는 nobody로 실행하는 방법을 알아보겠습니다.

톰캣은 /usr/local/tomcat 에 설치되어있다고 가정해 보겠습니다.

/etc/rc.d/init.d/catalina 라는 파일을 만들어 다음의 내용을 적어주고 700등의 권한을 주도록 합시다.

[code]#!/bin/sh
case “$1” in
    start)
        /usr/bin/sudo -u nobody /usr/local/tomcat/bin/startup.sh
    ;;
    stop)
        /usr/bin/sudo -u nobody /usr/local/tomcat/bin/shutdown.sh
    ;;
    restart)
        /usr/bin/sudo -u nobody /usr/local/tomcat/bin/shutdown.sh
        sleep 1
        /usr/bin/sudo -u nobody /usr/local/tomcat/bin/startup.sh
    ;;
    *)
        echo “$0 (start|stop|restart)”
esac[/code]

다음과 같은 방법으로 실행을 할수 있습니다.
[code]# 톰캣 시작
[eye@theeye /] $ /etc/rc.d/init.d/catalina start
# 톰캣 종료
[eye@theeye /] $ /etc/rc.d/init.d/catalina stop
# 톰캣 재시작
[eye@theeye /] $ /etc/rc.d/init.d/catalina restart[/code]
톰캣을 딜레이 없이 껐다키면 에러가 발생하는 경우가 있어 1초의 sleep을 걸었습니다.

하지만 RHEL등에서는 위의 명령이 에러가 나며 실행이 되지 않습니다.

다음과 같이 시작종료 명령 부분을 바꾸어 실행하시면 됩니다.

[code]# 시작 명령
su – nobody -s /bin/sh -c /usr/local/tomcat/bin/startup.sh
# 종료 명령
su – nobody -s /bin/sh -c /usr/local/tomcat/bin/shutdown.sh[/code]