※ 요약

필자는 카페24에서 리눅스 가상 서버를 2대 호스팅 받아 이용중이다. 하나는 CentOS 6.7, 또 하나는 CentOS 7.2를 말이다. 2대는 각각 mysql5.1과 mariadb5.5를 사용중이며 보안상 기본 포트인 3306을 다른 포트로 변경하여 사용중이다. 이번 포스트에서는 mysql 및 mariadb의 접속 포트를 변경하는 방법을 알아보도록 하겠다.



※ 설정 방법

사실 mysql과 mariadb의 설정 방법은 동일하다. 먼저 root 계정으로 "vi /etc/my.cnf"라고 입력한다.



맨 윗 줄에 [mysqld]라고 되어 있는게 보일 것인데, mysqld이 [ ]로 감싸져 있는 이유는 구역(섹션)을 나누기 위함이라고 생각하면 편할 것이다. 즉 다른 [구역]을 만나기 전까지는 mysqld의 구역이며, 이 구역에 "port=원하는포트번호" 형식으로 적어주면 된다. 아래와 같이 말이다. :wq로 저장하고 나온뒤 재부팅 시켜주면 된다. 필자는 처음에 서비스만 재가동 시켰더니 안되서 재부팅을 하였다.






※ 요약

얼마 전 파일 압축 명령어인 compress를 알아보았다. 이번에는 반대로 압축 해제 명령어인 uncompress를 알아보도록 하겠다. 참고로 압축 해제는 compress 명령어에 옵션 -d를 하면 풀리기도 하며, 이 두 명령어는 자주 사용하지 않는 명령어들이다. 보통은 tar와 gzip을 많이 이용하는 걸로 알고 있다.


※ 경로

/usr/bin/uncompress


※ 사용법

uncompress [옵션]... 압축파일명



※ 옵션

 옵션

 설명

 -f

 강제로 압축 해제, 기존에 같은 파일명이 있을 경우 덮어씌움

 -v

 압축 해제 진행 과정을 출력

 -c

 원본 파일이 변경되지 않고 해제되는 내용만 출력

 -V

 uncompress 명령어의 버전 정보를 출력



※ 사용예

아래는 간단한 압축 해제 예제다. compress명령어로 압축한 test.tar.Z 파일을 uncompress 명령어로 해제하였고, 제대로 해제된 걸 알 수 있다.


아래는 옵션 -c를 주어 압축해제는 하지 않고 파일 내용을 확인하는 모습이다. 간단하지 않은가?





※ 요약

리눅스 명령어 compress는 하나 이상의 파일을 압축할때 사용하는 명령어로써 압축된 파일의 확장자는 .Z다. 압축 해제는 uncompress 명령어로 하거나 compress 명령어에 옵션 -d를 붙여 압축을 해제하면 된다. 이 명령어는 잘 쓰지 않는 명령어인데, 보통은 tar 명령어로 파일들을 묶고 compress 명령어 대신 gzip이나 bzip2으로 압축을 하는 편이다. 물론 케바케겠지만 말이다.



※ 경로

/usr/bin/compress


※ 사용법

compress [옵션]... 파일명...


※ 옵션

 옵션

 설명

 -b maxbits

 최대 비트 수를 제한

 -c

 기본 생성 파일인 .Z가 아닌 지정한 파일로 생성

 -d

 압축된 파일의 압축을 해제, uncompress 명령과 같은 효과

 -f

 기존에 압축한 파일이 존재해도 이를 무시하고 압축 파일을 생성(f는 force의 약자)

 -r

 디렉터리를 압축할때 하위 디렉토리 및 하위 파일들도 같이 압축

 -v

 압축 진행 여부를 표시

 -V

 compress 명령어의 버전 정보 출력



※ 사용예

이미지에 설명이 있으므로 길게 설명하지 않겠다. 노락 박스만 보면 용량이 압축되어 확실히 줄어든 것을 볼 수 있을 것이다. 또 알아둬야할께 compress 명령어는 -f 옵션을 붙이면 압축을 한뒤 기존 파일을 덮어 씌운다는 걸 알아두기 바란다. 또! 압축하려는 파일이 하나라면 굳이 tar로 묶지 않아도 된다.



※ 관련 페이지

- [리눅스 명령어] uncompress - 파일 압축 해제



※ 요약

리눅스 명령어 look은 파일에서 주어진 문자로 시작하는 라인을 검색하여 출력하는 명령어다. 글로 설명하는 것보다 예제를 직접 보는 것이 직관적이므로 설명은 여기까지 하고 다음으로 넘어가도록 하겠다.


※ 경로

/usr/bin/look


※ 사용법

look [옵션]... 문자열 [파일명]



※ 옵션

 옵션

 설명

 -b

 주어진 워드 리스트에서 이진 검색을 이용

 -d

 알파벳 문자만을 비교 검사

 -f

 알파벳 문자의 대소문자를 구분하지 않음

 -t character

 문자열의 마지막 문자(character)를 지정


※ 사용예

아래는 look 명령어의 간단한 사용 예제다. 이미지에 설명이 있으므로 따로 설명은 하지 않겠으며, 보면 알겠지만 아주 간단한 명령어다.



아래 예제는 파일명을 지정하지 않았다. 파일명을 지정하지 않으면 /usr/share/dict/words 파일 안에서 검색을 하여 결과를 출력해준다. 필자는 이 명령어를 거의 사용하지 않지만 특정 문자나 문자열로 시작하는 단어가 궁금할 때 가끔 사용한다.



필자는 이 명령어를 거의 사용하지 않지만 특정 문자나 특정 문자열로 시작하는 영단어가 궁금할 때 가끔 사용한다. 아래처럼 말이다! 아래는 ar로 시작하는 단어가 궁금하여 look -f ar로 검색해본 예제다.




※ 요약

칼리 리눅스(Kali Linux)는 백트랙의 후속 버전으로써 해킹 및 정보 보안을 테스트하기 위해 만들어진 리눅스 배포판이다. 용도가 용도인 만큼 수많은 해킹 툴들이 준비되어 있으며, 무료로 다운로드 및 사용이 가능하다. 참고로 백트랙은 우분투 기반, 칼리는 데비안 기반이다.


※ 다운로드 링크



※ 다운로드 방법

상기의 다운로드 링크로 이동하면 아래와 같은 화면이 나오는데, 많은 종류의 ISO 이미지 파일들이 있어서 무엇을 받을지 모르겠다면 아래에 표시된 빨간 박스 안의 파일을 받기 바란다. 가장 무난한 버전으로써 64비트이며 용량은 2.9G다. 1.1G 용량의 라이트 버전도 있지만 초보자가 받으면 고생할 수도 있다. UI가 없는 텍스트 모드라던지 드라이버가 제외되어 있어 따로 설치해줘야 한다던지 말이다. 아무튼 다운로드 할 때에는 토렌트가 속도가 빠르지만 토렌트가 뭔지 모르는 독자 분들은 Direct로 ISO 파일을 다운받기 바란다.



스크롤을 좀 더 내리면 VMware 이미지와 VirtualBox 이미지, ARM 이미지도 준비되어 있다. 필자처럼 뭐 하나 간단한 것만 확인할 것이라면 설치가 필요없는 아래 이미지를 다운받는 것도 나쁘지 않을 것이다. 단, VMware나 VirtualBox가 설치돼 있어야 하는건 당연하겠지!?



※ 요약

리눅스 명령어 chroot는 가상의 root를 만드는 명령어다. 가상으로 설정할 루트 경로에 시스템 운영에 필요한 라이브러리와 실행 파일을 복사해 놓고 chroot [새로운 루트 경로] 명령을 내리면 가상 root 시스템으로 들어가게 된다. 시스템 / 아래의 구조가 같고 환경이 구성되면 그 위에서 프로그램을 동작 시킬수 있는데, 이때 실행되는 프로그램들을 통해 기반 시스템의 쉘에 접근하지 못하므로 보안상 유리하다. 또한 chroot [새로운 루트 경로] [명령어]로 지정한 새로운 루트 경로상에서 실행할 수 있다. 현재는 버추얼 머신(VMWare, VirtualBox 등)이 더 나은 보안성과 편리성을 주기 때문에 chroot는 잘 쓰이지 않는 추세다.


※ 경로

/usr/sbin/chroot


※ 사용법

chroot [새로운 루트 경로] [명령어]

chroot [옵션]


※ 옵션

 옵션

 Long옵션

 설명

 

 --help

 chroot 명령어의 사용법 출력

 

 --version

 chroot 명령어의 버전 정보 출력


※ chroot 이용 목적

- 테스트 및 개발

- 의존성 제어

- 호환성

- 복구

- 권한 분리



※ 사용예

아래는 chroot --version로 버전 정보를 확인하는 사용예다.




※ 요약

리눅스 명령어 chvt는 가상 터미널 간 이동을 할 때 사용하는 명령어다. 참고로 가상 터미널 생성은 openvt로 하고 제거는 deallocvt하며, 이동은 chvt로 한다. 다른 일반적인 명령어들과 다르게 쉘 스크립트에서도 쓰임새가 많다.


※ 경로

/bin/chvt


※ 사용법

chvt Number



※ 사용예

아래는 openvt로 현재 가상 터미널을 확인한뒤 chvt로 가상 터미널 간 이동을 해 본 모습이다. 이상한 점은 18번으로 이동한다고 했는데, 23번으로 이동된 것인데, 아마 내부적으로 따로 인덱스나 번호가 있나보다. 




※ 요약

리눅스 명령어 deallocvt는 openvt 명령어와 다르게 가상 터미널을 제거하는 명령어다. 옵션 없이 사용하면 사용하지 않는 모든 가상 터미널의 커널 메모리와 데이터 구조를 제거하며, 하나 이상의 인자(N)를 지정하면 정확히 일치하는 /dev/ttyN이 제거된다.


※ 경로

/usr/bin/deallocvt


※ 사용법

deallocvt [Number]...



※ 사용예

아래는 openvt 명령어로 가상 터미널을 생성하고 제거하는 예제다. 참고로 가상 터미널 간 이동은 단축키(ctrl+alt+F1~F12)나 chvt 명령어로 하면 된다.




※ 요약

리눅스는 X윈도우 데스크톱 환경에서 다중의 가상 터미널을 제공하며 openvt 명령어는 가상 터미널을 추가할 때 사용하는 명령어다. deallocvt(가상 터미널 제거), chvt(가상 터미널 간 이동)와 함께 사용하는데, 기록을 보니 1980년대 부터 가상 터미널의 개념이 있었던 걸로 보인다.


※ 경로

/bin/openvt


※ 사용법

openvt [-c vt_number] [-s] [-u] [-l] [-v] [...] command command_option



※ 옵션

 옵션

 설명

 -c vt_number

 주어진 숫자(vt_number)로 번호를 할당하여 새로운 가상 터미널을 생성, 이때 반드시 시스템에서 할당할 수 있는 범위의 VT로 번호를 할당해야함

 -f

 사용하고 있는지 확인하지 않고 강제적으로 vt를 오픈

 -e

 포크 없이 직접 주어진 명령어를 실행. 이 옵션은 /etc/inittab 파일을 참조하여 init명령에서 사용함

 -s

 명령어를 실행할 때 새로운 vt 화면으로 전환

 -u

 현재의 vt 사용자를 설정하고 지정한 사용자로 로그인함. init 명령에서 쓰는 옵션으로써, -c, -l 옵션과 함께 사용하면 안 됨

 -l

 명령어 로그인쉘을 생성

 -v

 상세 정보를 출력

 -w

 명령어가 완료될 때까지 대기. -w와 -s 옵션과 같이 사용하면 명령이 완료되기 전에 터미널을 제어할 수 있는 화면으로 전환함



※ 사용예

먼저 할당 가능한 범위를 알기 위해 터미널에 ls /dev/tty* 라고 입력하여 번호를 확인한다. 필자의 시스템은 최대 번호가 0번부터 63번까지 있는걸로 보아 63번까지 할당 가능하며, 실제 64번으로 생성을 시도할 경우 illegal vt number라고 메시지를 띄우며 생성할 수가 없었다.



가상 터미널 간 이동은 chvt number 명령어로도 가능하지만 단축키 ctrl+alt+F1~F12로도 가능한데, 아래는 ctrl+alt+F2로 tty4번 가상 터미널로 이동한 화면이다. 


아래는 단축키 ctrl+alt+F3으로 tty2 터미널로 이동한 화면이다.


아래는 chvt 20으로 이동하려고 하였으나 번호 20은 할당이 안되어 있는지 커서만 깜빡였다. 그래서 openvt -c20 -f으로 할당한 후 chvt 20으로 시도하니 잘 되었다.





※ 요약

리눅스 명령어 ldd는 지정한 프로그램의 라이브러리 의존성을 확인할 때 사용하는 명령어다.


※ 경로

/usr/bin/ldd


※ 사용법

ldd [옵션] 파일명


※ 옵션

 옵션

 Long옵션

 설명

 -d

 --data-relocs

 존재해야 할 곳에 없는 오브젝트의 위치를 다시 배치하고, 그 결과를 출력

 -r

 --function-relocs

 데이터 오브젝트와 함수를 재배치하고 오브젝트나 함수 중에 찾지 못한 결과를 출력

 -v

 --verbose

 상세 정보를 출력

 

 --help

 ldd 명령어의 사용법 출력

 

 --version

 ldd 명령어의 버전 정보를 출력



※ 사용예

아래는 ldd 명령어로 vpnserver이라는 프로그램을 확인해보는 화면이다. 보면 libc.so.6이라는 공유 라이브러리가 보이는데, 이 공유 라이브러리는 거의 모든 프로그램에서 사용하는 것 중에 하나인 라이브러리다. 그 외에 pthread도 보인다.


아래는 ls 명령어를 확인하는 예다.



+ Recent posts