### Section 3: Virtual Hosts
#
# VirtualHost: If you want to maintain multiple domains/hostnames on your
# machine you can setup VirtualHost containers for them. Most configurations
# use only name-based virtual hosts so the server doesn\'t need to worry about
# IP addresses. This is indicated by the asterisks in the directives below.
#
# Please see the documentation at
# # for further details before you try to setup virtual hosts.
#
# You may use the command line option \'-S\' to verify your virtual host
# configuration.
#
# Use name-based virtual hosting.
#
NameVirtualHost 아이피주소
공사중에 로그인 막기
시스템을 공사중일 때, root 이외의 다른 사용자를 로그인 못하게 해야 할 때가 있죠?
그럴 때는, /etc/nologin 이라는 파일을 만들어,
공사중 또는 Under Construction이라는 공지를 넣으면 됩니다.
크기가 가장 큰 파일, 디렉토리 찾기
가장 큰 디렉토리를 찾으려면,
du -S | sort -n
cf) 솔라리스의 경우
du -sk `ls -1 | grep \'/$\'`|sort +n
가장 큰 파일을 찾으려면,
s -lR | sort +4n
디스크 Full발생시 쓸모없는 파일 제거
오브젝트파일만 제거하는 예제
find . -name \'*.o\' -print -exec rm -f {} \\;
실행파일들 출력
find . -type f -perm +u+x -print
find의 일반적인 용례
name 파일명 지정한 파일명에 해당하는 파일을 검색
메타문자를 사용할 경우 파일명을 \'\'기호 내에 기입
-size 파일 크기 지정된 크기의 파일을 검색. 크기는 블록 단위, 1 블록 = 512 바이트
-mtime 숫자 지정된 날짜 이전에 수정된 파일을 검색
-ctime 숫자 가장 최근에 변경된 것이 지정된 날짜 전인 파일 검색
-user 사용자명 지정된 사용자 수용의 파일 검색
-print 검색 결과를 화면에 표시
-atime 숫자 지정된 날짜 이전에 접근 된 파일을 검색
-perm 접근권한 지정
-type 파일 유형 지정된 유형의 파일을 검색
b: 블록 특수 파일
c: 문자 특수 파일
d: 디렉토리
f: 일반파일
: 링크파일
p: 파이프 파일
-exec 명령어 {} \\;
실행 결과를 입력 파일로 받아들여 명령어 실행.
명령어의 끝은 \\;
{} : 현재 경로명으로 대치
현재 디렉토리의 크기만을 파악할때
[root@dev2 local]# du -c -h --max-depth=0 *
6.4M apache
35M bin
43M dns
1.7M doc
42k etc
1.0k games
42k geektalkd
1.1M gnuws
1.1M include
41k info
19M jakarta-tomcat-3.2.3
0 jre
15M jre118_v3
25M lib
62k libexec
1011k man
1.3M mm.mysql.jdbc-1.2c
937k sbin
3.8M share
1.8M shoutcast-1-8-3-linux-glibc6
5.2M ssl
159M total
시스템 정보 감추기
/etc/inetd.conf 파일을 열어서,
telnet stream tcp nowait root /usr/sbin/tcpd in.telnetd -h
어떤 프로세스가 메모리를 가장 많이 잡아먹고 있는지 알아내기
ps -aux | sort +4n
또는
ps -aux | sort +5n
FTP로 들어온 사용자 확인하기
ftpwho
ftpcount
원하지 않는 사용자 죽이기
[root@dream /root]# skill -KILL sunny
위의 명령을 내리면 sunny 라는 사용자를 완전히 추방시킬수 있습니다.
그런데 이렇게 완전히 추방시키는게 아니구, 특정 터미널에 접속해있는 사용자만 추방시켜야 할 때도 있겠죠?
그럴때는
[root@dream /root]# skill -KILL -v pts/14
이런식으로 하면 된다 그럼 pts/14 에 연결되어 있는 사용자가 죽게 됩니다.
ess 결과를 vi로 보기
ess상태에서 v를 누르면 바로 vi로 감
vi에서 블럭 설정하기
alt+v 하면, 라인 단위로 블럭 설정을 할 수 있으며, 해제 하시려면 Esc를 누르면 됩니다.
또한 ctl+v를 하시면, 블럭 단위로 블럭을 설정하실 수 있습니다.
블럭을 설정 하신 뒤,
삭제를 하려면 x
복사를 하려면 y
붙여넣기는 p
man 페이지 프린트하기
vi에 대한 매뉴얼을 ps(postscript파일)로 저장
man -t vi > vi.ps
동시에 여러개의 하위 디렉토리 만들기
mkdir -p music/koreanmusic/ost
리로 다시 살리기
boot : vmlinuz root=/dev/hda6
특정 사용자 ftp 접근 막기
/etc/ftpusers 파일에 로그인 네임을 추가하면 됩니다.
X 윈도우에서 TV보기
리눅스에서 TV보기 위해서는 드라이버 파일과 TV를 보는 프로그램이 필요합니다.
이 글에서는 미지 리눅스 OS에 탑재된 bttv 칩셋을 사용하는 TV 카드를 기준으로 설명합 니다.
만일 커널을 새로 컴파일 하실 분은 반드시 Character devices -> Video For Linux -> BT848 Video For Linux 항목을 모듈화 시키거나 커널에 포함하십시오.
TV 카드를 리눅스에 인식시키기 위해서 /etc/conf.modules 파일에 다음과 같은 내용을 삽입하고 컴퓨터를 다시 시작합니다.
alias char-major-81 bttv
# 필립스 튜너의 경우 pre-install bttv modprobe -k tuner
# 알프스 튜너의 경우 pre-install bttv modprobe -k tuner type=9
이제 kwintv나 xawtv 등의 TV 시청 프로그램으로 TV를 볼 수 있습니다.
만약 TV 장치를 찾지 못하는 오류가 있다면 bttv driver 디렉토리에 포함된 MAKEDEV 를 실행하십시오.
s라는 파일이 포함된 rpm패키지 찾기
일단 ls의 절대경로를 알아야 한다. which ls
which로 알아낸 ls의 절대경로로 rpm질의를 한다.rpm -qf /bin/ls
[root@piruks /etc]# which ls
/bin/ls
[root@piruks /etc]# rpm -qf /bin/ls
fileutils-4.0i-2mz
현재 rpm패키지의 의존패키지
rpm -qR 패키지명
현재 디렉토리크기
du -h --max-depth=1 .
바로 이전 디렉토리로 가기
cd -
프로세스명으로 프로세스 죽이기
[리눅스]
killall 프로세스명
kill -9 `pidof 프로세스명`
하드웨어 시계맞추기
배포본을 설치하고 나면 시간이 맞지 않는 경우가 많다.
간단히 어느정도 정확한 시간을 설정하는 방법이다.
[root@dev /down]# rdate -s time.kriss.re.kr
[root@dev /down]# clock -w
원격에서 리모트서버의 X application실행시
X윈도 app를 실행할때 다음과 같은 에러가 나면 조치
[kang@dev /home/kang] xclock
Xlib: connection to \"211.222.186.170:0.0\" refused by server
Xlib: Client is not authorized to connect to Server
Error: Can\'t open display: 211.222.186.170:0.0
ISO이미지 만들기
/down/Disk1 디렉토리의 내용을 Linux9i_1.iso라는 ISO이미지파일로 만든다.
mkisofs -r -o Linux9i_1.iso /down/Disk3
위에서 만들어진 Linux9i_1.iso파일을 레코더로 구울때
cdrecord -v -isosize speed=12 dev=0,0 Linux9i_1.iso
XMMS에서 한글출력
메뉴중 옵션-선택사항-폰트\'에 다음과 같이 지정
옵션: 폰트셋 사용하기(멀티바이트 지원설정) 체크
연주목록에 다음과 같이 설정
-adobe-helvetica-bold-r-*-*-10-*, -baekmuk-gulimbdf-medium-r-normal-*-*-120-*-*-m-*-ksc5601.1987-0
기본창- X폰트사용 체크 하고 다음과 같이 설정
-adobe-helvetica-medium-r-*-*-8-*, -baekmuk-gulimbdf-medium-r-normal-*-*-120-*-*-m-*-ksc5601.1987-0
ISO파일 처리
CD이미지(ISO 9660) 만들기
dd if=/dev/cdrom of=ora817.iso
or
mkisofs -R -V Oracle817 -o ora817.iso /dev/cdrom
SPLIT
[kang@dbakorea test]$ split -100000 wf_cleaner_20040418.log wf_cleaner_
[kang@dbakorea test]$ ls -l
총 322816
-rw-r--r-- 1 sky other 82509153 4월 21일 16:15 wf_cleaner_20040418.log
-rw-r--r-- 1 sky other 4817168 4월 21일 16:16 wf_cleaner_aa
-rw-r--r-- 1 sky other 4826953 4월 21일 16:16 wf_cleaner_ab
-rw-r--r-- 1 sky other 4819016 4월 21일 16:16 wf_cleaner_ac
-rw-r--r-- 1 sky other 4818664 4월 21일 16:16 wf_cleaner_ad
-rw-r--r-- 1 sky other 4815234 4월 21일 16:16 wf_cleaner_ae
-rw-r--r-- 1 sky other 4826339 4월 21일 16:16 wf_cleaner_af
-rw-r--r-- 1 sky other 4822263 4월 21일 16:16 wf_cleaner_ag
-rw-r--r-- 1 sky other 4814657 4월 21일 16:16 wf_cleaner_ah
-rw-r--r-- 1 sky other 4816299 4월 21일 16:16 wf_cleaner_ai
-rw-r--r-- 1 sky other 4817442 4월 21일 16:16 wf_cleaner_aj
-rw-r--r-- 1 sky other 4807225 4월 21일 16:16 wf_cleaner_ak
-rw-r--r-- 1 sky other 4816881 4월 21일 16:16 wf_cleaner_al
-rw-r--r-- 1 sky other 4805557 4월 21일 16:16 wf_cleaner_am
-rw-r--r-- 1 sky other 4824945 4월 21일 16:16 wf_cleaner_an
-rw-r--r-- 1 sky other 4800172 4월 21일 16:16 wf_cleaner_ao
-rw-r--r-- 1 sky other 4813110 4월 21일 16:16 wf_cleaner_ap
-rw-r--r-- 1 sky other 4795892 4월 21일 16:16 wf_cleaner_aq
-rw-r--r-- 1 sky other 651336 4월 21일 16:16 wf_cleaner_ar
[kang@dbakorea test]$ cat wf_cleaner_a[a-r] > wf_cleaner_orig
[kang@dbakorea test]$
b : 일치되는 행의 블록 번호 출력
c : 문자열을 포함하는 행수 출력
h : 파일 이름을 출력하지 않음
i : 대소문자를 구별하지 않음
: 문자열을 포함하는 파일 이름만 출력
n : 일치되는 행번호를 함께 출력
s : 오류가 발생할 경우에만 메시지 출력
v : 일치되지 않는 행만 출력
w : 문자열이 하나의 단어인 경우만 검색(grep만 가능)
e 표현식 : 정규 표현식이 - 문자로 시작할 때 유용
e 문자열 : fgrep에서만 사용, 문자열은 단순 문자열을 의미
f 파일명 : 검색문자열을 파일명으로 부터 받아들임
^ : 행의 시작
$ : 행의 끝
. : 임의의 한문자
[] : []속에 표현되는 문자 중 임의의 한 문자
* : * 앞의 정규표현식이 0회 이상 나타남
+ : + 앞의 정규표현식이 1회 이상 나타남(egrep에서만 가능)
? : ? 앞의 정규표현식이 0 또는 1회 나타남(egrep에서만 가능)
\\ : 메타문자의 의미 제거(예 : \'\\*\'는 *문자를 의미)
| : 문자열간의 OR연산자(egrep에서만 가능)
() : 정규 표현식을 둘러 쌈(egrep에서만 가능)
설치는 redhat 기반에서 rpm으로 설치를 설명한다. 타 OS에서는
http://www.cvshome.org/downloads.html 에서 다운로드를 받아서 compile하
면 된다.
Redhat 에서는 cvs rpm file 을 설치를 하면 된다. 보통 배포본에서 기본으
로 제공 한다. 일단 rpm -q cvs 명령으로 설치가 되어 있는지 확인을 한다.
설치가 되어 있으면 버젼이 print 될 것이고 설치가 되어 있지 않으면 아무
런 정보도 나오지 않는다. 설치가 되어 있지 않을 경우에는 redhat cd에 있
는 RPMS directory에서 cvs-version.i386.rpm file을 설치하도록 한다.
rpm -Uhv cvs-version.i386.rpm
으로 하면 된다.
2. CVS 초기화 하기
일단 CVS data 를 놓아둘 디렉토리를 만든다. 보통 /home/cvs 로 많이들 한
다. mkdir /home/cvs 명령으로 /home/cvs directory 를 생성한 후에 다음의
명령을 실행 한다.
[root@bbowoo /home]$ cvs -d /home/cvs init
-d는 저장소의 위치를 나타내며 init는 cvs를 초기화 하라는 CVS 명령어 이
다. 이 명령을 실행하고 나면 /home/cvs/CVSROOT 라는 directory 가 생성이
된다. 이 디렉토리에는 각종 CVS의 설정들이 들어가 있다.
3. 기본 설정 준비
일단 cvs 를 운영하기 위해서는 cvs 를 이용할 계정을 생성해야 한다.
CVS는 일반 계정으로 로그인을 할수도 있지만 그것 보다는 CVS를 이용할 계정
을 하나 만들어 놓고선 CVS passwd file을 이용하여 alias user를 만들어서 사
용을 하는 것이 더욱 좋다.
이 부분은 3가지의 방법이 있으나 여기서는 direct access가 가능한 pserver
mode만을 다룬다. 이 외에도 rsh, ssh를 이용한 방법이 있다. pserver mode
를 이용하기 위해서는 inetd.conf 에서 셋팅을 해 줘야한다.
일단 /etc/service 에서 다음의 내용이 있는지 확인을 한다.
먼저 /usr/local/apache/conf/httpd.conf에서
디렉터리에 대한 옵션 부분에 보시면
AllowOverride None으로 되어 있으면 AllowOverride All로 바꾸줍니다.
# AccessFileName .htaccess줄이 주석줄로 되어 있으면 주석도 풀어줍니다.
2. .htaccess파일을 만든다.
인증을 받고 싶은 디렉토리로 가서 vi로 아래와 같은 파일을 만들어야 합니다.
======================================================
AuthType Basic
AuthName pbi12
AuthUserFile /home/pbi12/public_html/pds/.htpasswd
require user pbi12
======================================================
이 내용을 .htaccess로 저장해줍니다.
여기서 name과 아래 3번에서 생성할 .htpasswd 파일의 경로를
자신의 환경대로 바꾸어 줍니다.
그리고 마지막에 중요한게 require 인데,
여기서는 유저 한명씩 할때 처리 방법입니다.
user 인 pbi12 한명을 넣은 것이죠.
아래 나오는 부분에서 유저를 생성하게 되는데 그 유저를 여기다가 넣어서
쓸 수 있는 것입니다. 더 추가 할 때에는 pbi12 다음에 한칸 띄고 나서
다른 유저 이름을 적으시면 됩니다.
3. .htpasswd파일을 만든다.
암호파일(.htpasswd)은 암호화되어서 저장이 되므로 그냥 텍스트로 입력해서는 안되구요,
/usr/local/apache/bin에 있는 htpasswd라는 프로그램을 이용해서 만드는데,
이것은 htpasswd 를 해서 -c 새파일을 만드는데, pbi12의 디렉터리에 .htpasswd로 생성하며,
pbi12라는 유저를 추가한다는 것입니다.
이렇게 형식으로 치면 암호를 넣으라고 나오는데 여기에 암호를 적어 넣으면 성공입니다^^;
(이때 -c 옵션은 처음 넣을때만 하면되며 그 다음 부터 추가할때는 필요가 없습니다.
그 다음에도 -c 옵션을 추가하면 이전 것(.htpasswd)은 지워버리고 새로 작성되므로 추가 하실때에
는 그냥 -c 옵션 없이 다른 유저를 추가하시면 됩니다.)
그러면 .htpasswd의 파일이 아래와 같이 생성되어진다.
pbi12:NoWPewwtesgrTR
4. 아파치를 재시작합니다.
# /usr/local/apache/bin/apachectl restart
5. 종료!
이렇게 되면 자신이 .htaccess 를 넣은 곳을 웹에서 접속하게 되면 아파치 인증창이 뜨게
됩니다. 자신이 만든 유저 정보를 치고 들어가면 접속이 되는 것이구요~
위의 가운데 한줄입니다.
저렇게 넣어주면 admin 이라는 그룹안에 pbi12 라는 유저와 pds 라는 유저를 묶으겠다는 말이 됩니
다. 그러면 admin 그룹을 사용할 수 있는 것이죠.
마지막으로 말씀 드리고 싶은 것은 .htpasswd 라는 파일과 .group 파일의 이름은 여러분 마음대로
바꾸셔도 상관없다는 점 말하고 끝내겠습니다.
아참! .htaccess 파일은 사용하고자 하는 위치에 저 이름 그대로 사용하셔야 하는 점 혼동 마시구요
~
그럼 아파치 인증을 마치겠습니다.
※ 이강좌에 대한 질문하고 싶으시거나 다른 문서들을 원하시면, http://linuxnew.com 과
http://pknowhow.com 을 들려 주십시요~