mysql 을 사용하다보면 가끔 'root' 사용자 즉, 관리자의 비밀번호를 분실하는 경우가 있습니다.
그래선 안되겠지만... 혹 모를 경우를 대비하여 아래의 내용으로 진행해보시는 방법을 추천해드릴게요^^

우선 mysql 서비스가 설치된 디렉터리를 알고 계셔야합니다.
해당 서비스의 경로는 소스 설치시 경로를 수정하지 않은 경우 또는 rpm 으로 설치했을때 "/usr/local/mysql/" 로 설치되게 됩니다.

이제 본격적으로 'root' 사용자의 비밀번호를 변경해보겠습니당!!! Follow ME~!!!


[ Mysql Safe 모드로 접속하기 ] 

  - #/etc/rc.d/init.d/mysqld stop     // 데몬을 종료한다.

 

  =>mysql 5.0.85미만 버전인 경우

    명령어 경로 : "/usr/local/bin/safe_mysqld"

     - #/usr/local/bin/safe_mysqld --skip-grant &

 

  =>mysql 5.0.85이상 버전인 경우

    명령어 경로 : "/usr/bin/mysqld_safe"

     - #/usr/bin/mysqld_safe --skip-grant &

                        //신 or 구 버전에 따라 다르게 안전모드
                        형태로 mysqld 의 인증을 무시하고 접속한다.

 

* 위의 2단계 중 하나를 진행하여 safe 모드의 mysql 상태에서 진행할 것!! 


] mysql -u root mysql             // root 사용자의 비번 설정을 위해 mysql 접속

※ 백그라운드 모드로 동작하므로 프롬프트가 출력되지 않고 커서만 출력되어 있음.


mysql > use mysql;               //mysql 데이터베이스를 사용해야 'root' 사용자의 내용변경이 가능함


mysql > update user set password=password('변경할 비밀번호') where user='root';
                                            //mysql 데이터베이스내 'root' 사용자에 대한 비밀번호를 원하는 비밀번호로 암호화되는 방식으로 저장


mysql > flush privileges;         //mysql 을 사용하는 경우 내용을 수정하였을때 해당 수정사항을 데몬 재실행 없이 적용 시켜주는 명령어


mysql > quit

# /etc/rc.d/init.d/mysqld restart                    //mysql 에서 수정사항이 적용이 안되었을 경우도 있어 안전하게 데몬 재실행


이상으로 mysql 에서 "root" 사용자의 비밀번호를 초기화하는 방법을 안내해드렸어요^^
유용하게 쓰시면 좋겠구요.. 다음에는 좀 더 스펙타클!!!!한 내용을 안내해드릴게요~ 그럼 ㅃㄴㅃㄴ

AND

리눅스에서 작업을 하다보면 "Permission denied" 라고 하는 "허가 거부 메세지" 를 보실 수 있는 데요...
해당 내용이 발생하는 이유는 바로 권한 문제 때문입니다.

많은 사람이 사용하는 서버의 경우는 보안상 일부러 막아놓는 경우가 상당 수 있지만
자신이 직접 설치하여 공부하고 있는 리눅스라면 루트 권한으로 모든 것을 이용 가능하겠죠~? ㅎㅎ

다만 root가 아닌 다른 사용자로 로그인하는 원격접속이나 공동으로 사용하는 서버에 접속해서 내가 만든
공동작업 폴더에 친구가 접속을 못하는 경우도 발생할 수 있을 겁니다.

이런 경우를 막기 위함을 물론이요, 보안 측면에서 좀더 안전하게 하기 위해 제어하는 부분이 바로 권한설정입니다.
보안의 기초적이면서도 매우매우 중요한 부분이므로 꼭..꼭!!! 자신의 것으로 만드세요^^

썰은... 이만 풀기로 하고.. 이제 본격적으로 알아보겠습니다. Follow ME~!!!

현재 위치의 디렉토리 및 파일들의 권한을 보고싶다면 'ls -al' 또는 'ls -l' 을 이용해서 볼 수 있습니다. 한번 해보세요^^


위의 그림과 같이 익숙한 화면을 볼 수 있을 겁니다.
여기서 눈 여겨 보실 부분이 빨간색과 파란색 사각형 안의 영역입니다.

[ 소유권 ]
빨간색 사각형 안에는 [ root root ] 형식으로 각 파일이나 디렉터리마다 사용자를 확인 하실 수 있는데요.
위 형식이 해당 파일이나 디렉터리에 대한 소유권을 나타내는 것입니다.

또한, 소유권을 설정하는 명령어는 'chown' 라는 명령어를 이용하며 사용 방법은 아래쪽 설명을 참고하시기 바랍니다.

이 형식에 대해서 하나씩 뜯어서!! 조각을 내서!!! 알아볼게요^^

[  root   root  ]
  소유자  그룹

이렇게 총 2단락으로 정의가 되어 있는데요. 각각의 내용마다 '소유자'의 사용자명, '그룹'의 그룹명을 나타냅니다.
또한, 아래쪽에서 배우게되는 "허가권" 에서 "2"~"7" 에 해당하는 내용을 내포하고 있으니 이 점 참고하시기 바랍니다.



[ 허가권 ]
파란색 사각형 안에는 [ drwxr-xr-x ] 형식으로 각 파일이나 디렉터리마다 이상한 알파벳 나열이 있을겁니다.
위 형식이 해당 파일이나 디렉터리에 대한 허가권을 나타내는 것입니다.

또한, 허가권을 설정하는 명령어는 'chmod' 라는 명령어를 이용하며 사용 방법은 아래쪽 설명을 참고하시기 바랍니다.

이 형식에 대해서 아주 조각을 내서.. 상세하게 알아볼게요^^

[ d rwx r-x r-x ]
   234  567  8910

이렇게 총 10자리로 이뤄줘 있는데 각각 자리 수가 의미하는 바에 대해 알아보죠.
슬슬 감이 오시는 분들도 있으시죵? 네... 상당히 감이 빠르신 분이네요!!!!!! 쩌러요!

먼저 "1"번에 해당하는 자리는 파일과 디렉터리 구분하는 부분입니다.
(그 외 링크 관련 내용도 표시를 해줍니다만 여기선 생략 하겠습니다.)

'd'라고 적힌 경우는 디렉터리, '-' 라고 적힌 경우는 일반 파일을 말합니다.


다음으로 "2" ~ "10" 번째 자리까지는 'r','w','x'가 반복 되게 되는데요..
각각 'r=read', 'w=write', 'x=excute' 를 정의하고 있습니다. 읽기, 쓰기, 실행이죠.

위 형식에 적어드린 것과 같이 rwx 로 정의된 부분이 3단락이므로 이걸 세개씩 끊어서 생각하시면 됩니다.

[2,3,4] [5,6,7] [8,9,10]
 소유자   그 룹   방문자
  UID      GID     other


이제 3 단락 중 하나를 떼어내어서 각각의 권한을 부여할 수 있는 내용을 살펴볼게요.
우선적으로 각각의 내용을 숫자로 표현할 수 있는데요.. 아래 내용을 참고해주세요^^
'r=4', 'w=2', 'x=1' 로 정의할 수 있으며, 소유자의 경우 *100, 그룹의 경우 *10, 방문자의 경우 *1 을 하여
표현이 가능합니다.


[ 종합 ]
예를 들어 상단의 그림에서 "tmp" 디렉터리에 대한 권한을 변경해보록 할게요.
"chown root.nobody tmp","chmod 755 tmp" 라고 입력하겠습니다.(사진의 노란색 실선 참조)


위 그림의 형태에서 결과창은 빨간색 사각 박스 내용입니다.
해당 내용에서 "tmp"라는 디렉터리에 대한 권한 설정은

사용자의 경우 "root" 사용자로써의 소유권을 가지고, 7 = 4+2+1 로써 'r' 'w' 'x' 의 모든 허가권을 가지게 됩니다.
그룹의 경우 "nobody" 그룹으로써의 소유권을 가지고, 5 = 4+1 로써 'r' 'x' 의 허가권을 가지게 됩니다.
방문자의 경우 "root"사용자 및 "nobody"그룹에 속하지 않은 사용자로써의 소유권에 해당하며, 5 = 4 + 1 로써
'r' 'x' 의 허가권을 가지게 됩니다.
AND

 /etc/fstab은 파일시스템들을 목적에 맞게 사용할 수 있도록 여러가지 정보들을 저장합니다.
 또한, 부팅시에 자동으로 적용될 수 있도록 설정 할 수 있습니다
.  이 파일의 정보가 조금이라도 잘못되면
부팅과정의 파일시스템 마운트 단계에서 다운되게 됩니다.

이 파일에 설정되는 내용들은 파일시스템의 장치명들과 마운트포인트
(마운트될 위치, 디렉토리),
파일 시스템의 옵션들을 사용합니다.

이 파일에서 설정될 수 있는 파일시스템의 정보들은 다음과 같은 것들이 있습니다


  -
해당 파일시스템의 장치명(device name)
  - 파일시스템이 마운트될 마운트포인트(디렉터리명)
  - 파일시스템 타입(ext2, ext3, swap 등등)
  - 파일시스템을 어떤 형식(읽기전용,읽고쓰기)으로 마운트할 것인가?
  - Quota 정책을 사용할 것인가?
 
- 일반사용자도 마운트할 수 있도록 허용할 것인가?
 
- 부팅시 자동으로 마운트를 할 것인가?
 
- SetUID, SetGID 설정을 적용할 것인가?
 
- fsck로 파일시스템 검사에 대한 검사 순서를 설정

위와 같은 정보들이
"/etc/fstab" 에 저장되어 있습니다.

그럼
, 먼저 "/etc/fstab" 파일의 실제 그림을 보면서 내용을 짚어 가겠습니다.

[ 그림 /etc/fstab ]


/etc/fstab
파일의 구조

먼저
, fstab파일의 각행은 모두 6개의 항목으로 구분되어 있으며 6개의 항목은 다음과 같습니다

[ 파일시스템 장치명 / 마운트 포인트 / 파일시스템 종류 / 옵션 / dump 관련 설정 / 파일점검 옵션 ]

파일시스템
장치명

마운트포인트

파일시스템
종류

파일시스템
속성

dump설정

체크옵션

LABEL=/      

ext3

defaults

1

1


위의 형식은 리눅스의 /etc/fstab파일을 나타내는 기본 구조이며, 각 항목은 반드시 "tap(→|)" 으로 구분합니다.
/etc/fstab
파일을 이해하려면 무엇보다도 위의 각 항목들의 정확한 의미를 이해하는 것이 가장 중요합니다.

위의 설정항목들을 하나씩 설명하면 다음과 같습니다

 ㄱ.파일시스템 장치명
: /etc/fstab파일의 첫번째 항목
   /etc/fstab 에서 첫번째로 설정되는 항목으로 파일시스템의 장치명을 설정합니다. "/dev/sda1", "/dev/hda2"
  파일시스템 장치명을 입력하는 자리입니다
.
 
만약 관련 파일시스템에 레이블(LABEL)이 설정되어 있으면 장치명 대신 레이블명으로 지정할 수도 있습니다

 ㄴ.마운트 포인트
: /etc/fstab파일의 두번째 항목
  파일시스템이 마운트될 위치
로써 마운트포인트라고 합니다.  쉽게 설명해서 "/" 또는 "/home"과 같은 디렉터리의
이름을 의미합니다
. 위의 그림에서 "/home" "/var" 등과 같은 부분이 "마운트포인트" 입니다.

 ㄷ.파일시스템 종류
: /etc/fstab파일의 세번째 항목
  파일시스템의 종류를 설정하는 항목입니다. "/home" 이란 마운트포인트를 사용하는 파일시스템 종류는 ext3
사용하고 있다는 것을 알 수가 있습니다
. 또한 "LABEL=SWAP-sda3" swap파일시스템으로 사용되고 있는 것을
알 수 있습니다
. 
  그리고 여기에 올 수 있는 파일시스템의 종류에는 다음과 같은 것들이 있습니다

  [ ext ]
    - 초기 리눅스에서 사용했던 파일시스템으로 현재는 사용 X.
  [ ext2 ]
    - 현재 많이 사용하고 있는 파일시스템. (특징 : 긴 파일명을 지원)
  [ ext3 ]
   -
저널링 파일시스템으로서 ext2에 비해 "파일시스템 복구기능"과 "보안" 부분을 크게 향상시킨 것으로
      현재는
ext2보다 ext3을 기본 파일시스템 타입으로 사용함.
  [ iso9660 ]
    - CD-ROM 드라이브의 표준 파일시스템으로서 "읽기전용"으로 사용함.
  [ nfs ]
    - Network File System의 약자로서 원격서버에서 파일시스템을 마운트할 때 사용함.
  [ swap ]
    - 스왑 파일시스템으로서 스왑공간으로 사용되는 파일시스템에 사용함.
  [ ufs ]
    - UNIX FileSystem의 약자로서 UNIX SYSTEM 계열에서는 표준파일시스템으로 사용함.
  [ vfat ]
    - 윈도우 95 98, 그리고 NT를 지원하기 위한 파일시스템(Fat 방식의 파일시스템).
  [ msdos ]
    - MS-DOS파티션을 사용하기 위한 파일시스템.
  [ ntfs ]
    - 윈도우NT 2000 NTFS파일시스템을 사용하기위한 파일시스템.
  [ hfs ]
    - Mac컴퓨터의 hfs 파일시스템을 지원하기 위한 파일시스템.
  [ ramdisk ]
    - RAM 디스크를 지원하는 파일시스템.

  리눅스에서 지원가능한 파일시스템은 매우 많지만, 대체적으로 위의 범주에서 사용되며, 아래는 지원되는
파일시스템의 종류를 알려드리니 참고하세요.

  - 
리눅스에서 지원되는 파일시스템의 종류들 -

adfs / affs / autofs / coda / coherent / cramfs / devpts / efs / ext2 / ext3 /
hfs / hpfs / iso9660 / jfs / minix /
msdos / ncpfs / nfs / ntfs / proc / qnx4 / reiserfs / romfs / smbfs / sysv / tmpfs / udf / ufs / umsdos / vfat /
xenix /
xfs

이와 같은 파일시스템들을 모두 지원가능하지만 모두 사용하는 것은 아닙니다
.
현재 사용하는 리눅스 시스템에서 지원가능한 파일시스템을 확인하려면 "/proc/filesystems" 로 알 수 있습니다.

 ㄹ. 마운트 옵션 종류 : /etc/fstab파일의 네번째 항목
파일시스템이 마운트될 때 사용하는 옵션입니다. 
  [ default ]
    - 모든것
  [ noquota ]
    - 쿼터 설정을 사용안함
  [ quota ]
    - 쿼터 설정을 사용
  [ nosuid ]
    - SUID접근 불가능

  [ suid ]
    - SUID접근 가능
  [ ro ]
    - 읽기 가능
  [ rw ]
    - 읽기 쓰기 가능


 ㅁ. 덤프인자 : /etc/fstab파일의 다섯번째 항목
파일시스템이 덤프될 필요가 있는지 설정합니다.
  [ 0 ]
    - 덤프될 필요없음
  [ 1 ]
    - 덤프가 필요함

 ㅂ. 체크시퀀스 번호 : /etc/fstab파일의 여섯번째 항목
fsck에 의해 수행되는 무결성 검사를 위한 파일시스템 우선순위를 결정한다.
  [ 0 ]
    - 체크 안함
  [ 1 ]
    - 우선적으로 체크
  [ 2 ]
    - 1번이 끝난 후 체크


이상으로 "/etc/fstab"에 관하여 내용을 읊어 봤는데요... 내용을 쓰면서 저도 공부를 하게되니 참으로 유쾌하네요 ㅎ

AND

1. Booting 이란?

  - PC가 전원이 ON이 되고 OS가 동작하여 Login 이 가능한 상태까지의 일련의 과정을 이야기한다.

   아래의 내용을 참고하여 부팅이되는 정보를 소개합니당~!

 

   ㄱ. 전원 ON 상태가 되면 최초 220v 의 전기 신호가 Power Suply 를 통해 12v, 5v 등 pc 에서 사용하는 전기 신호 형태로 전환

   ㄴ. 전환된 전기신호는 MainBoard로 이동하여 각 장치에 해당하는 곳으로 이동 (Bios를 참조)

   ㄷ. Bios 라고 불리는 North Bridge 와 South Bridge 를 통해 OS가 설치된 HDD를 탐색

   ㄹ. 탐색된 HDD에서 0번 블록이면서 512Kb 짜리의 작은 용량의 MBR로 이동

   ㅁ. MBR에서 존재하는 Boot Loader를 이용하여 디스크, 파티션, 운영체제 정보를 확인

   ㅂ. 확인된 정보를 기반으로 하여 OS를 동작

   ㅅ. OS가 동작하여 ID/PW 을 입력받을 수 있는 상태(Login 이 가능한 상태)

 

 

2. Master Boot Record & boot sector(boot record)

    

    * 운영체제별 Boot Loader

                                                                                   - Windows 7     : bootmgr

                                                                                 - Windows XP    : ntldr

                                                                                     - Linux          : Grub / LILO

                                                                


3. "Grub" Boot Loader
 - MBR에 booting에 관련된 정보를 기록하여 가지고 있으며, 디스크와 파티션 그리고 운영체제 정보가 기재되어 있어

   부팅에서 꼭 필요한 파일  

4. Partition
  ㄱ. Primary : 4개까지만 허용한다.
  ㄴ. Extanded : 1개만 허용한다.
  ㄷ. Logical : Extanded 파티션이 있는 경우 Logical 파티션이 1개이상이 필요
                    ※해당 파티션의 경우 파티션 넘버가 "5" 부터 시작.

5. 각 Type 별 Device / Partition 표현식
  [ Device HDD info ]
     - IDE : /dev/hdX

              (ex : /dev/hda, /dev/hdb ...)


     - SCSI : /dev/sdX

              (ex : /dev/sda, /dev/sdb ...)

 


  [ Partition HDD Info ]
     - IDE : /dev/hdX? 

              ex : /dev/hda1, /dev/hda2, /dev/hda3 .....
                    /dev/hdb1, /dev/hdb2, /dev/hdb3 .....

     - SCSI : /dev/sdX?

              ex : /dev/sda1, /dev/sda2, /dev/sda3 .....
                    /dev/sdb1, /dev/sdb2, /dev/sdb3 ..... 

 

AND

※ 개인적으로 설정을 해야 하는 부분이므로 필요하다 생각되는 데몬은 삭제하지 않고 남겨두길 바랍니다.

[ anacron ]
anacron은 기능적으로 cron과 유사하지만 시스템이 지속적으로 동작하지 않는다고 가정하면 차이가 있다.
이 프로그램은 24시간 동안 작동하지 않는 시스템에서 작동하는 스케줄러 프로그램이므로 24시간내내 작동하는
서버에는 불필요

[ apmd ]
향상된 전원 관리 데몬 유틸리티로 노트북의 경우 배터리를 관리하기에 좋으나 24시간 전원관리가 되는
서버에는 불필요 

[ at ]
스케줄링을 위한 유틸리티. 이 프로그램은 예전부터 문제가 많았으므로 보다 안전한 vixle-cron 패키지를 이용하면 안전하게 스케줄링 기능을 활용 가능 

[ dhcpd ]
DHCP 서버에서 자신의 네트워크 설정 정보를 얻도록 해주는 프로그램 

[ dosfstools ]
리눅스에서 MS-DOS FAT 파일 시스템을 만들고 체크할 때 사용하는 유틸리티

[ eject ]
CD-ROM이나 Floppy, Zip 디스크 등을 제어하는 프로그램

[ hotplug ]
usb 장치를 로드할 때 필요한 프로그램

[ ipchains ]
커널 2.4버전에서는 iptables를 사용하여 방화벽 설정을 한다. ipchains는 커널버전 2.2에서 사용되었었다. 

[ ksymoops ]
커널에 문제가 발생했을 때 이를 보고하는 에러 메세지를 디코딩하는 용도로 사용하는 툴 

[ kudzu ]
시스템이 부팅할 때 어떤 하드웨어가 추가되거나 삭제되었는지를 검색할때 사용하는 툴

[ lokkit ]
방화벽 설정을 위한 응용프로그램

[ Metamail ]
텍스트나 멀티미디어의 출력방법을 결정하는  mailcap파일을 사용하는 프로그램

[ pcutils ]
PCI버스에 연결된 장치를 검사하고 설정하는 유틸리티

[ Pump DHCP ]
디스켓이 없는 개인적인 사용자가 네트워크를 통해서 서버로부터 IP 네트워크 설정 정보를 얻고자 할 때 사용

[ raidtools ]
리눅스에서 소프트웨어적인 RAID를 설정할 때 필요한 툴

[ redhat-logos ]
레드햇의 "Shadow Man" 로고와 RPM로고 파일

[ redhat-release ]
레드햇 리눅스 릴리즈 파일

[ setserial ]
시리얼 포트에 대한 정보를 보여주는 시스템 유틸리티

AND

$$해당 내용은 스크랩된 파일로 수정되지 않은 상태입니다. 참고하세요.$$
##############################################################################
## 번역 : 김 태 용 <multi@linux.nim.to> #
## <multi@taegu.linux.or.kr> #
## 대구 리눅스님투(http://linux.nim.to) #
## (http://linuxer.nim.to) #
## httpd.conf -- 아파치 웹서버 설정 파일 #
###############################################
# Rob McCool씨의 NCSA서버 원본 설정 파일을 기초로 설정 구성.
#
# 이 파일은 주 아파치 서버 설정 파일이다.
# 아파치 서버의 작동 지시는 이 파일의 설정 지시자를 이용한다.
# 각 지시자의 자세한 정보는 <URL:http://www.apache.org/docs/> 를 참고하라
#
# 무엇을 할것인가에 대한 정확한 이해없이 다음의 지시사항들을 대충 읽지 말라.
# 다음의 내용들은 단지 힌트 또는 조언에 불과하다.
# 확실하지 않은 내용이라면 온라인 문서를 참조하라는 것을 경고해 둔다.
#
# 만약 ResourceConfig와 AccessConfig 지시자를 무시하지 않는다면,
# 아파치는 이파일을 읽고난 후 /www/conf/srm.conf 파일과
# /www/conf/access.conf 파일을 읽는다.
#
# 설정 지시자는 3개의 기본 섹션으로 그룹화 되어있다.
# 1. 전체적인 아파치 서버 프로세서의 작동을 제어하는 지시자들
# ('global environment' : 전체 환경)
# 2. 지시자들은 가상호스트에 의해 처리되지 않는 요청들에 대해
# 응답하는 메인(주) 혹은 디폴트(기본) 서버의 매개변수를 정의한다.
# 또한 이지시자들은 모든 가상 호스트들의 기본 셋팅값을 지정한다.
# 3. 동일 아파치 서버 프로세서에 의해 처리되는 다른 IP주소 또는
# 호스트 이름에 대한 웹 요청을 허가하도록 가상 호스트를 설정한다.
#
# 설정 파일과 로그 파일 이름 : 만약 서버들의 많은 설정 파일들의 이름을 "/"
# (또는 "드리이버명:/ -->Win32버전)로 시작한다면 서버는 정의된 경로를
# 사용할것이다.
# 만약 파일 이름이 "/"로 시작하지 않을때는 ServerRoot값이 그 앞에 추가된다.
# 따라서 /usr/local/apache"를 ServerRoot값으로 설정하면 "logs/foo.log"는
# /usr/local/apache/logs/foo.log로 해석된다.
#############################################################################
### 섹션 1 : 전체 환경 (Global Environment)
#
# 이 섹션에 적힌 지시자는 예를 들어 아파치 서버가 처리할 수 있는 동시
# 요청의 갯수라든지 다른 설정 파일의 이름 등 아파치 서버의 전반적인
# 작동에 영향을 미친다.
#
#
# 서버 유형(ServerType)은 inetd 또는 standalone 둘 중 하나이다.
# inetd 방식은 유닉스 플랫폼에서만 지원된다.
#
ServerType standalone
#
# 서버 루트(ServerRoot) : 서버의 설정 파일, 에러 파일, 로그 파일이
# 기록되는 디렉토리의 최상위 경로명.
#
# 주의! 만약 서버 루트를 NFS (또는 기타 네트웍 파일 시스템) 마운트된
# 곳에 두고자 한다면 LockFile 문서를 꼭 읽어보아야 한다.
# (<URL:http://www.apache.org/docs/mod/core.html#lockfile>);
# 문서를 읽고 나면 앞으로 닥칠 지 모르는 몇 가지 문제점을 피할 수 있다.
#
# 디렉토리 경로 뒤에 슬래쉬(/) 문자를 쓰지 않는다!!!
#
ServerRoot "/etc/httpd"
#
# LockFile 지시자는 아파치를 USE_FCNTL_SERIALIZED_ACCEPT 또는
# USE_FLOCK_SERIALIZED_ACCEPT 옵션을 주고 컴파일한 경우, 잠금 파일을
# 경로를 지정할 때 사용한다. 이 지시자 값은 일반적으로 기본값이
# 되도록 놔둔다. 이 값을 바꾸는 경우는 로그 디렉토리가 NFS 마운트된
# 곳에 있는 경우로서 잠금 파일은 항상 네트웍 파일 시스템이 아닌
# 로컬 디스크에 저장되어야 하기 때문이다. 주 서버 프로세서의 PID 값이
# 자동으로 파일 이름 뒤에 붙는다.
#
#LockFile logs/accept.lock
#
# PidFile: 서버가 시동될 때 자신의 프로세스 고유 번호를 기록할 파일
#
PidFile /var/run/httpd.pid
#
# ScoreBoardFile: 내부 서버 프로세스 정보를 기록하는데 사용하는 파일.
# 모든 아키텍쳐에서 꼭 필요한 것은 아니다. 하지만 필요하다고 생각하는
# 경우에는 하나의 아파치 프로그램을 두 번 이상 실행시키는 경우 값이
# 중복되지 않도록 해주는 것만 잊지 않으면 된다.
#
ScoreBoardFile /var/run/httpd.scoreboard
#
# 표준 설정에서 서버는 httpd.conf, src.conf, access.conf 파일을
# 차례대로 읽어나간다. 나중에 있는 2 개의 파일은 현재 아무 내용도
# 없는 빈 상태로 배포되고 있다. 왜냐하면 모든 지시자를 그냥 하나의
# 파일에 적는 것이 더욱 명료하기 때문이다. 주석으로 처리되어 있는
# 값은 기본값이다. 서버가 이 파일 내용을 무시하도록 하기 위해서는
# "/dev/null" (유닉스의 경우) 또는 "nul" (Win32) 값을 지정한다.
#
#ResourceConfig conf/srm.conf
#AccessConfig conf/access.conf
#
# Timeout: 받기/보내기 타임 아웃 시간
#
Timeout 300
#
# KeepAlive: 지속성(persistent) 접속을 허가할 것인가 말 것인가?
# (한 번의 접속에서 여러 개의 요청을 처리할 것인가 여부)
# 허가하지 않기 위해서는 "Off"로 설정한다.
# 허가하지 않는 것과 허가하는 것과의 효율 차이는 매우 크다.
#
KeepAlive On
#
# MaxKeepAliveRequests: 지속성 접속 기간 동안 처리할 수 있는 최대 요청 갯수
# 0 을 넣으면 무한대이다. 높은 성능을 내기 위해서 높은 값을 추천한다.
#
MaxKeepAliveRequests 100
#
# KeepAliveTimeout: 같은 접속 상태에서 같은 클라이언트의 요청이 타임 아웃되는
# 시간 (초 단위)
#
KeepAliveTimeout 15
#
# 서버 풀(Server-pool) 크기 조정. 몇 개의 프로세스가 필요한지 여러분에게
# 추측하도록 하기 보다는 현재의 부하 상태에 자동으로 적응하도록 되어 있다.
# 아파치 서버는 현재의 부하 상태와 순간적으로 급격히 상승하는 경우 값
# (예를 들어 하나의 네스케이프 브라우져에서 동시에 여러 개의 요청이
# 들어올 수 있다)을 처리할 수 있는 충분한 갯수의 서버 프로세스를 유지하려
# 노력한다.
#
# 아파치 서버는 주기적으로 몇 개의 서버가 요청 대기 상태인지 점검한다.
# 만약 MinSpareServers 보다 적다면 여유 서버 프로세스를 생성한다.
# 만약 MaxSpareServers 보다 많으면 불필요한 여유 프로세스를 제거한다.
# 이 곳에 제시된 기본값은 거의 대부분의 사이트에 적합하다.
#
MinSpareServers 8
MaxSpareServers 20
#
# 처음 시동할 때 만들 서버의 갯수 -- 합리적인 근사치여야 한다.
#
StartServers 10
#
# 서버 프로세스의 최대값, 즉 동시에 접속할 수 있는 클라이언트 갯수를
# 제한하는 값이다. -- 만약 이 값에 도달한다면 클라이언트의 요청은
# 봉쇄될 것이다. 따라서 이 값이 너무 낮아서는 안된다. 이 값은
# 아파치 서버가 너무 많은 자원을 소비하여 전체 시스템을 먹통이 되도록
# 하는 것을 방지하기 위해 사용될 뿐이다.
#
MaxClients 150
#
# MaxRequestsPerChild: 각 자식 프로세스가 죽기 전까지 처리할 수 있는
# 요청 갯수. 한 프로세스가 너무 오랫 동안 사용되면 메모리 누출이나
# 자원 누출(아파치 때문에 또는 잘못된 라이브러리 때문에)이 발생할 수
# 있으므로 자식 프로세스는 자동으로 죽는다. 대부분의 시스템에서는
# 필요치 않으나 솔라리스에서와 같이 라이브러리에서의 자원 누출 현상을
# 막기 위해 필요하다. 제한을 두지 않으려면 0 으로 설정한다.
#
MaxRequestsPerChild 100
#
# Listen: 아파치를 기본값 이외에도 특정 IP 주소 또는 포트에 연결하도록
# 해준다. <VirtualHost> 지시자도 참고하라.
#
#Listen 3000
#Listen 12.34.56.78:80
#
# BindAddress: 이 옵션을 사용하여 가상 호스트를 지원할 수 있다.
# 이 지시자를 이용하여 서버가 귀기울일 IP 주소를 지시할 수 있다.
# "*", IP 주소, 또는 완전한 인터넷 도메인 이름을 사용할 수 있다.
# <VirtualHost>, Listen 지시자도 참고하라.
#
#BindAddress *
#
# 동적 공유 객체(Dynamic Shared Object, DSO) 지원
#
# DSO 방식으로 만들어진 모듈의 기능을 사용하기 위해서는 그 기능에 관련된
# 지시자를 사용하기에 앞서 알맞게 `LoadModule' 지시자로 모듈을
# 지시해주어야 한다. DSO 작동방식에 대하여 자세히 알고 싶은 사람은
# 아파치 1.3 배포 파일의 README.DSO 를 읽어보라. 여러분이 갖고 있는
# httpd 바이너리에 내장된(정적으로 링크되어 항상 사용가능한) 모듈 목록을
# 알고 싶을 때에는 `httpd -l' 명령을 실행한다.
#
# 주의: 모듈을 적재하는 순서는 매우 중요하다. 전문가의 조언 없이
# 아무렇게나 순서를 바꾸지 말라.
#
# 예:
# LoadModule foo_module libexec/mod_foo.so
#
# 모듈 관련 문서는 HTML 형식으로 "/home/httpd/manual/mod" 에 놓아두었다.
#
# 주의: LoadModule 설정을 하나라도 바꾸었다면 LoadModule 설정 뒤에 따라
# 나오는 AddModule 설정도 똑같이 바꾸어주기 바란다.
#
#LoadModule mmap_static_module modules/mod_mmap_static.so
LoadModule vhost_alias_module modules/mod_vhost_alias.so
LoadModule env_module modules/mod_env.so
LoadModule config_log_module modules/mod_log_config.so
LoadModule agent_log_module modules/mod_log_agent.so
LoadModule referer_log_module modules/mod_log_referer.so
#LoadModule mime_magic_module modules/mod_mime_magic.so
LoadModule mime_module modules/mod_mime.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule status_module modules/mod_status.so
LoadModule info_module modules/mod_info.so
LoadModule includes_module modules/mod_include.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule dir_module modules/mod_dir.so
LoadModule cgi_module modules/mod_cgi.so
LoadModule asis_module modules/mod_asis.so
LoadModule imap_module modules/mod_imap.so
LoadModule action_module modules/mod_actions.so
#LoadModule speling_module modules/mod_speling.so
LoadModule userdir_module modules/mod_userdir.so
LoadModule alias_module modules/mod_alias.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule access_module modules/mod_access.so
LoadModule auth_module modules/mod_auth.so
LoadModule anon_auth_module modules/mod_auth_anon.so
LoadModule db_auth_module modules/mod_auth_db.so
LoadModule digest_module modules/mod_digest.so
LoadModule proxy_module modules/libproxy.so
#LoadModule cern_meta_module modules/mod_cern_meta.so
LoadModule expires_module modules/mod_expires.so
LoadModule headers_module modules/mod_headers.so
LoadModule usertrack_module modules/mod_usertrack.so
#LoadModule example_module modules/mod_example.so
#LoadModule unique_id_module modules/mod_unique_id.so
LoadModule setenvif_module modules/mod_setenvif.so
#LoadModule bandwidth_module modules/mod_bandwidth.so
#LoadModule put_module modules/mod_put.so
#
# 확장 모듈
#
#LoadModule php_module modules/mod_php.so
#
# 다음 모듈은 MySQL 데이터베이스와 더불어 서버 스크립팅 언어로 인기를
# 누리고 있는 PHP3 모듈입니다.
#
# 참고 사이트 : http://www.php.net
#
# 주의 : 설정을 바꾸고 나서 한 가지 할 일이 더 있다.
#
# AddType application/x-httpd-php3 .php3
#
# 위와 같은 행을 찾아서 주석을 풀어주어야 한다.
#
LoadModule php3_module modules/libphp3.so
#
# 다음 모듈은 아파치 펄 모듈로서 CGI 스크립트로 펄을 많이 사용하는
# 사람들에게 펄 코드 실행 속도의 향상을 가져다 줍니다.
#
# 주의 : 설정을 바꾼 후 한 가지 할 일이 더 있다.
#
# <Location /perl> ... </Location>
#
# 위와 같은 설정을 찾아서 펄 스크립트를 사용할 수 있는
# 디렉토리를 설정해주어야 한다.
#
#LoadModule perl_module modules/libperl.so
#
# 모듈 실행 순서를 정확하게 하기 위해 사용 가능한 모듈(정적 또는 공유
# 모듈 포함)로부터 완전한 목록을 다시 만들어 둔 것이다.
# [LOADMODULE 섹션을 하나라도 수정했다면 이 부분도 역시 알맞게 수정하라]
#
ClearModuleList
#AddModule mod_mmap_static.c
AddModule mod_vhost_alias.c
AddModule mod_env.c
AddModule mod_log_config.c
AddModule mod_log_agent.c
AddModule mod_log_referer.c
#AddModule mod_mime_magic.c
AddModule mod_mime.c
AddModule mod_negotiation.c
AddModule mod_status.c
AddModule mod_info.c
AddModule mod_include.c
AddModule mod_autoindex.c
AddModule mod_dir.c
AddModule mod_cgi.c
AddModule mod_asis.c
AddModule mod_imap.c
AddModule mod_actions.c
#AddModule mod_speling.c
AddModule mod_userdir.c
AddModule mod_alias.c
AddModule mod_rewrite.c
AddModule mod_access.c
AddModule mod_auth.c
AddModule mod_auth_anon.c
AddModule mod_auth_db.c
AddModule mod_digest.c
AddModule mod_proxy.c
#AddModule mod_cern_meta.c
AddModule mod_expires.c
AddModule mod_headers.c
AddModule mod_usertrack.c
#AddModule mod_example.c
#AddModule mod_unique_id.c
AddModule mod_so.c
AddModule mod_setenvif.c
#AddModule mod_bandwidth.c
#AddModule mod_put.c
# Extra Modules
#AddModule mod_php.c
AddModule mod_php3.c
#AddModule mod_perl.c
#
# ExtendedStatus 지시자는 "server-status" 처리기가 호출되었을 때
# 아파치가 "매우 자세한" 상태 정보를 생성시킬 것인지
# (ExtendedStatus On) 아니면 매우 기본적인 정보만 생성시킬 것인지를
# (ExtendedStatus Off) 제어한다. 기본값은 Off 이다.
#
#ExtendedStatus On
#############################################################################
### 섹션 2: '주(Main)' 서버 설정
#
# 이 섹션에 있는 지시자는 <VirtualHost> 정의에 의해 처리되지 않는
# 모든 요청에 응답할 '주' 서버가 사용할 값을 정한다.
# 이 값들은 또한 이 파일 뒷 부분에서 정의할 모든 <VirtualHost>
# 컨테이너의 기본값을 제공하기도 한다.
#
# 여기 나오는 모든 지시자는 <VirtualHost> 컨테이너 안에서도 사용할
# 수 있으며 그 안에서 사용되면 해당 가상 호스트에 대하여 전체
# 기본값을 무시하고 새롭게 정한 값이 채택된다.
#
#
# 만약 ServerType ('Global Environment' 섹션에서 설정)이 "inetd"인
# 경우, inetd 설정 내용을 따르기 때문에 다시 몇 가지 지시자는
# 아무런 효력을 발휘하지 않는다.
# ServerAdmin 지시자까지 그냥 건너뛴다.
#
#
# Port: 독립실행형(standalone) 서버가 요청을 기다리는 포트.
# 1023 번보다 낮은 번호의 포트에 대해서는 httpd가 처음에는
# root 권한으로 실행되어야 한다.
#
Port 80
#
# httpd가 다른 사용자 또는 그룹 권한으로 실행되게 하려면 우선은
# httpd가 root 사용자 권한으로 실행되고 나서 설정한 다른 사용자
# 권한으로 전환해야 한다.
#
# User/Group: httpd가 실행된 권한의 사용자/그룹의 이름(또는 #번호).
# . SCO (ODT 3)에서는 "User nouser"와 "Group nogroup"을 사용한다.
# . UPUX 에서는 nobody로 실행하는 경우 공유 메모리를 사용할 수
# 없을 것이다. 이 때는 www 등의 사용자를 만들고 그 사용자 권한으로
# 실행되도록 한다.
# 주의) 몇몇 커널들은 60000 이상의 (unsigned) 그룹 값을 설정하면
# setgid(Group), semctl(IPC_SET) 함수를 거부한다.
# 이런 시스템에서는 Group #-1을 사용하지 말라!
#
User nobody
Group nobody
#
# ServerAdmin: 서버에 문제가 발생했을 때 메일을 보낼 메일 주소.
# 이 주소는 예를 들어 에러 문서와 같이 서버가 생성하는 페이지에
# 나타날 것이다.
#
ServerAdminroot@localhost
#
# ServerName은 클라이언트 프로그램에게 돌려주는 서버 이름이 다른 경우
# 호스트 이름을 설정할 수 있게 해준다. (예를 들어, 호스트의 실제 이름이
# 아닌 'www'를 사용하도록 하는데 사용할 수 있다.)
#
# 주의: 호스트 이름을 아무렇게나 만들어선 안된다. 이 이름은 여러분의
# 호스트에 주어진 타당한 DNS 이름이어야 한다. 잘 모르겠으면 네트웍
# 관리자에게 문의하라.
# 호스트가 등록된 DNS 이름을 갖고 있지 않는 경우에는 이 곳에 IP 주소를
# 적는다. 어찌 되었든 IP 주소를 사용하여(예를 들어 http://123.45.67.89/)
# 접속할 수 있다. 이런 식으로 해서 리다이렉션이 작동하도록 할 수 있다.
#
#ServerName new.host.name
#
# DocumentRoot: 제공할 문서의 상위 디렉토리.
# 기본적으로 모든 요청은 이 디렉토리로부터 처리된다. 하지만
# 심볼릭 링크나 앨리어스(alias)를 사용하여 다른 위치를 가리키도록
# 할 수 있다.
#
DocumentRoot "/home/httpd/html"
#
# 아파치가 접근할 수 있는 각 디렉토리에 대하여 어떤 서비스와 기능을
# 허용할 것인지 거부할 것인지 여부를 설정할 수 있다.
# 디렉토리에 대한 설정 내용은 그 하부 디렉토리에도 영향을 미친다.
#
# 우선, "기본값"을 매우 제한적인 상태로 설정한다.
#
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
#
# 이 곳부터 허용할 특정 기능을 알맞게 설정해나간다는 사실을 주목하자.
# 여러분이 기대한 대로 작동하지 않는 것이 있다면 그 기능을 가능 상태로
# 설정해두었는지 점검하기 바란다.
#
#
# 다음 내용은 여러분이 설정한 DocumentRoot 값으로 변경해서 사용한다.
#
<Directory "/home/httpd/html">
#
# 다음 값에는 "None", "All", 또는 "Indexes", "Includes",
# "FollowSymLinks", "ExecCGI", "MultiViews"의 자유로운 조합이
# 가능하다.
#
# "MultiViews" 만큼은 "Options All"을 사용한다 할 지라도 명시적으로
# 적어야만 작동한다는 사실을 알아두자.
#
Options Indexes FollowSymLinks Includes
#
# 다음은 각 디렉토리에 위치한 .htaccess 파일에서 어떤 옵션을
# 마음대로 제어할 수 있는지 결정한다.
# "All" 또는 "Options", "FileInfo", "AuthConfig", "Limit"의 자유로운
# 결합이 가능하다.
#
AllowOverride None
#
# 서버로부터 자료를 얻어갈 수 있는 위치를 제어한다.
#
Order allow,deny
Allow from all
</Directory>
#
# UserDir: ~user 요청을 받았을 때 사용자의 홈 디렉토리 뒤에 추가할
# 디렉토리 이름.
#
# 주의 : 사용자가 자신의 홈 디렉토리에 public_html
# 디렉토리를 만들어도 외부에서 홈 페이지를 볼 수 없다.
# 왜냐하면 각 계정 홈 디렉토리에 대한 보안을 중요하게 생각했기 때문에
# 홈 디렉토리에 대하여 사용자 계정과 사용자 자신의 그룹 이외에는
# 아무런 접근 허가권도 갖고 있지 않기 때문이다.
#
# 개인 홈 디렉토리를 가질 사람은 chmod a+x ~ 명령을 일단 실행해주어
# (보통) nobody 권한의 아파치 프로세스가 홈 디렉토리에 접근할 수
# 있도록 허가해주어야 한다.
# 물론 public_html과 홈 페이지 파일에 대하여 모든 사용자가 최소한
# 읽기 권한은 갖도록 설정해주어야 한다.
#
UserDir public_html
#
# UserDir 디렉토리에 대한 접근을 제어한다. 다음은 사용자 홈 페이지에
# 대하여 읽기만 가능하도록 한 예제 설정 내용이다. 참고 자료로
# 사용하기 바란다.
#
#<Directory /home/*/public_html>
# AllowOverride FileInfo AuthConfig Limit
# Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec
# <Limit GET POST OPTIONS PROPFIND>
# Order allow,deny
# Allow from all
# </Limit>
# <Limit PUT DELETE PATCH PROPPATCH MKCOL COPY MOVE LOCK UNLOCK>
# Order deny,allow
# Deny from all
# </Limit>
#</Directory>
#
# DirectoryIndex: 준비된 HTML 디렉토리 인덱스로 사용할 파일이나
# 파일 목록의 이름을 나열한다. 여러 개를 나열할 때는 스페이스로
# 구분한다.
#
#DirectoryIndex index.php3 index.html index.shtml index.cgi
DirectoryIndex index.html index.shtml index.cgi
#
# AccessFileName: 각 디렉토리에 대하여 접근 제어 정보 내용을
# 담고 있을 파일 이름
#
AccessFileName .htaccess
#
# 다음 행은 웹 브라우져가 .htaccess 파일을 접근할 수 없도록 하는
# 설정이다. .htaccess에는 인증 정보가 들어있는 경우가 빈번하므로
# 보안 상 이유로 이 파일에 대한 접근은 불허해야 한다.
# 웹 방문객들이 이 파일을 보게 하고 싶으면 다음 행들을 주석 처리하라.
# 만약 AccessFileName 설정을 다른 파일명으로 바꾸었다면 알맞게
# .htaccess를 그 이름으로 바꾸어준다.
#
# 또한 사람들이 웹 서버 패스워드 파일을 .htpasswd라고하는 경향이
# 있기 때문에 .ht 로 시작하는 파일을 모두 보호한다.
#
# 아파치 1.3.x 버전부터 <Files> <Directory> 지시자에서 ~ 다음에
# 정규 표현식을 사용할 수 있다.
#
<Files ~ "^.ht">
Order allow,deny
Deny from all
</Files>
#
# CacheNegotiateDocs: 기본적으로 아파치는 내용에 따라 협상된 문서에
# 대해서는 "Pragma: no-cache" 내용을 전송한다. 이 행은 프록시 서버로
# 하여금 문서를 캐쉬하지 않도록 요청한다. 다음 행의 주석을 풀면
# 이 기능을 해제하고 모든 프록시가 문서들을 캐쉬할 수 있도록 한다.
#
#CacheNegotiatedDocs
#
# UseCanonicalName: (1.3 버전에 새롭게 등장) 이 설정을 켜두면,
# 아파치가 자기 참조 URL(반응이 오고 있는 서버를 다시 가리키는
# URL)을 만들 필요가 있을 때마다 "공식적인" 이름을 만들기 위해
# ServerName과 Port를 사용한다. 그렇지 않으면 아파치는 가능한 한
# 클라이언트가 제공한 호스트이름:포트 값을 사용한다.
# 이 설정은 CGI 스크립트의 SERVER_NAME, SERVER_PORT에도 영향을
# 미친다.
#
UseCanonicalName On
#
# TypesConfig 는 mime.types 파일 또는 이에 해당하는 파일을 찾을
# 위치를 결정한다.
#
TypesConfig /etc/mime.types
#
# DefaultType이란 파일 확장자와 같은 것을 통해 MIME 타입을 알 수 없는
# 문서에 대하여 사용할 기본 MIME 타입을 말한다. 여러분의 서버에 주로
# 텍스트나 HTML 문서가 많다면 "text/plain"을 쓰는 것이 좋다.
# 대부분이 실행 프로그램이나 이미지 등 바이너리인 경우에는
# 웹 브라우져가 텍스트라고 생각하여 바이너리 파일을 화면에 표시하지
# 않도록 하기 위해 "application/octet-stream"를 적는다.
#
DefaultType text/plain
#
# mod_mime_magic 모듈을 사용하면 파일의 내용을 가지고 파일의 타입에
# 힌트를 얻는다. MIMEMagicFile 지시자를 사용하여 모듈에게 힌트
# 정보가 저장되어 있는 파일을 설정한다.
# mod_mime_magic은 기본 서버의 일부가 아니다.(따라서 LoadModule
# 설정을 사용하여 모듈을 추가해야 한다.) 또는 서버를 다시 컴파일해서
# mod_mime_magic을 추가해야 한다. 그렇기 때문에 <IfModule> 컨테이너에
# 포함되어 있는 것이다. 다음 설정은 모듈이 서버에 포함되어 있을 때에만
# MIMEMagicFile 지시자를 처리하도록 해준다.
#
<IfModule mod_mime_magic.c>
MIMEMagicFile conf/magic
</IfModule>
#
# HostNameLookups: 클라이언트의 이름 또는 IP 주소만을 기록할 지 여부.
# 예를 들어 www.apache.org (on) 또는 204.62.129.132 (off)
# 기본값이 off 인 이유는 각 클라이언트 요청이 올 때마다 최소한 1 번
# 이상의 네임 서버 요청이 발생하기 때문이다. 그러나 꼭 필요한 경우에는
# 이 기능을 켜둔다.
#
HostnameLookups Off
#
# ErrorLog: 에러 기록 파일의 위치.
# <VirtualHost> 컨테이너 안에서 ErrorLog 설정을 하지 않으면
# 그 가상 호스트에 관련된 에러 메시지도 역시 이 곳에 기록된다.
# <VirtualHost> 컨테이너 안에서 에러 로그 파일을 정의하면
# 관련된 에러 메시지는 그 파일로 저장된다.
#
ErrorLog logs/error_log
#
# LogLevel: error_log에 기록될 메시지 분량을 제어한다.
# debug, info, notice, warn, error, crit, alert, emerg 등의
# 값이 가능하다.
# alert, emerg.
#
LogLevel warn
#
# 다음 지시자는 CustomLog 지시자(아래 참고)에서 사용할 몇 가지
# 형식에 대한 별명을 정의한다.
#
LogFormat "%h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"" combined
LogFormat "%h %l %u %t "%r" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
#
# 접근 로그 파일의 위치와 형식(공통 로그파일 형식)
# <VirtualHost> 컨테이너 안에서 접근 로그파일 설정을 하지 않으면
# 모든 기록이 이 파일에 남게 된다. 이와 반대로 각 <VirtualHost> 마다
# 접근 로그파일을 정의하면 모든 처리가 바로 그 파일에 기록된다.
#
CustomLog logs/access_log common
#
# 에이전트 로그파일과 참조자(referer) 로그파일을 갖기 위해서는
# 다음 지시 내용의 주석 처리를 해제하라.
#
# 여기서 에이전트란 여러분의 사이트에 방문하는 브라우져를 말한다.
# 에이전트 로그를 남기면 여러분의 사이트에 방문하는 브라우져의 종류에 대한
# 통계를 낼 수 있다.
#
# 참조자란 주로 배너 광고주에게 중요한 것으로서 여러분의 사이트 바로
# 직전에 방문한 사이트를 말한다.
#
#CustomLog logs/referer_log referer
#CustomLog logs/agent_log agent
#
# 하나의 로그파일에 접근, 에이전트, 참조자 정보를 다 저장하기 위해서는
# (통합 로그파일 형식) 다음 지시 내용을 사용하라.
#
# 몇 달만 운영해도 접속이 많은 사이트에서는 combined 로그 파일이 어마어마하게
# 커져서 루트 파일 시스템을 꽉 채워 버리는 일이 발생할 수 있다!
#
#CustomLog logs/access_log combined
#
# 부차적으로 서버가 생성하는 페이지(에러 문서, FTP 디렉토리 목록,
# mod_status, mod_info 출력 등, 그러나 CGI 생성 문서는 제외)에
# 서버 버전과 가상 호스트 이름을 포함하는 행을 추가하도록 한다.
# "Email"로 설정하면 ServerAdmin으로의 mailto: 링크를 포함한다.
# On | Off | EMail 중 하나로 설정한다.
#
#ServerSignature On
#
# Aliases: 필요한 만큼의 별칭을 만들어 사용한다.(제한 없음)
# 형식은 다음과 같다.
# Alias 가짜이름 실제이름
#
# 가짜 이름 뒤에 / 를 포함하면 아파치 서버는 URL에도 / 이 있어야
# 처리함을 잘 알아두자. 따라서 "/icons"는 별칭 처리되지 않고
# "/icons/"만 별칭 처리된다.
#
Alias /icons/ "/home/httpd/icons/"
<Directory "/home/httpd/icons">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
#
# ScriptAlias: 서버 스크립트를 포함하는 디렉토리를 제어한다.
# ScriptAlias는 근본적으로 Alias와 같으나 가리키고 있는 실제 디렉토리
# 안에 들어있는 문서를 실행 프로그램으로 취급하여 실행한다.
# 맨 뒤에 붙는 "/" 에 대한 규칙은 Alias와 마찬가지이다.
#
ScriptAlias /cgi-bin/ "/home/httpd/cgi-bin/"
#
# "/home/httpd/cgi-bin" 부분은 ScriptAlias로 별칭 처리된 실제 CGI
# 디렉토리로 설정해야 한다.
#
<Directory "/home/httpd/cgi-bin">
AllowOverride None
Options ExecCGI
Order allow,deny
Allow from all
</Directory>
#
# localhost에서는 지역 시스템 문서를 접근할 수 있도록 허용한다.
#
# (레드햇 리눅스 6 설정으로부터 인용)
#
Alias /doc /usr/doc
<Directory /usr/doc>
order deny,allow
deny from all
allow from localhost
Options Indexes FollowSymLinks
</Directory>
#
# Redirect를 사용하면 서버의 이름공간에 존재했으나 현재에는 존재하지 않는
# 문서에 대하여 클라이언트에게 통보할 수 있도록 해준다. 이렇게 함으로써
# 위치가 변한 새로운 문서를 어디에서 찾을 수 있는지 클라이언트에게
# 알려줄 수 있다.
# 형식: Redirect 예전URI 새URI
#
#
# 서버가 생성하는 디렉토리 목록의 표시 상태를 제어하는 지시자.
#
#
# FancyIndexing은 예쁜 디렉토리 목록 또는 표준적인 디렉토리 목록 여부를
# 결정한다.
#
IndexOptions FancyIndexing
#
# AddIcon으로 시작하는 지시자는 서버에게 다양한 파일, 파일명 확장자에
# 대하여 어떤 아이콘을 보여 줄 것인지 말해준다. 이 값들은
# FancyIndexing을 사용하는 경우에만 해당된다.
#
AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
AddIconByType (TXT,/icons/text.gif) text/*
AddIconByType (IMG,/icons/image2.gif) image/*
AddIconByType (SND,/icons/sound2.gif) audio/*
AddIconByType (VID,/icons/movie.gif) video/*
AddIcon /icons/binary.gif .bin .exe
AddIcon /icons/binhex.gif .hqx
AddIcon /icons/tar.gif .tar
AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
AddIcon /icons/a.gif .ps .ai .eps
AddIcon /icons/layout.gif .html .shtml .htm .pdf
AddIcon /icons/text.gif .txt
AddIcon /icons/c.gif .c
AddIcon /icons/p.gif .pl .py
AddIcon /icons/f.gif .for
AddIcon /icons/dvi.gif .dvi
AddIcon /icons/uuencoded.gif .uu
AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl
AddIcon /icons/tex.gif .tex
AddIcon /icons/bomb.gif core
AddIcon /icons/back.gif ..
AddIcon /icons/hand.right.gif README
AddIcon /icons/folder.gif ^^DIRECTORY^^
AddIcon /icons/blank.gif ^^BLANKICON^^
#
# DefaultIcon이란 명시적인 아이콘을 갖고 있지 않는 파일에 대한
# 기본 아이콘 파일을 설정한다.
#
DefaultIcon /icons/unknown.gif
#
# AddDescription은 서버 자동 생성 인덱스의 파일명 뒤에 간단한 설명을
# 넣을 때 사용한다. FancyIndexing을 사용할 때에만 보인다.
# 형식: AddDescription "설명" 화일명
#
#AddDescription "GZIP compressed document" .gz
#AddDescription "tar archive" .tar
#AddDescription "GZIP compressed tar archive" .tgz
#
# ReadmeName은 서버가 디렉토리 목록 뒤에 내용을 덧붙여 넣을 README 파일의
# 이름을 설정한다.
#
# HeaderName은 디렉토리 인덱스 앞에 내용을 덧붙일 파일명을 설정한다.
#
# 서버는 먼저 name.html을 찾고 그것이 있으면 그 내용을 포함한다.
# 만약 없다면 서버는 name.txt 파일을 찾고 평범한 텍스트 내용으로
# 추가한다.
#
ReadmeName README
HeaderName HEADER
#
# IndexIgnore는 디렉토리 인덱싱에 있어 목록에서 제외시킬 파일명을 설정한다.
# 쉘 스타일의 와일드 카드를 사용할 수 있다.
#
IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t
#
# AddEncoding은 특정 브라우져(모자익/X 2.1+)로 하여금 자료를 받으면서
# 정보의 압축을 풀 수 있도록 해준다. 주의: 모든 브라우져가 이 기능을
# 지원하는 것은 아니다. 이름이 유사하기는 하지만 다음부터 나오게 될
# Add로 시작하는 지시자들은 FancyIndexing과는 관련이 없다.
#
AddEncoding x-compress Z
AddEncoding x-gzip gz tgz
#
# AddLanguage는 문서의 언어를 명시한다. 내용 협상 과정을 통해 브라우져가
# 이해할 수 있는 언어의 문서를 제공하는 것이 가능하다.
# 접미어(suffix)는 언어 키워드와 꼭 같은 필요는 없다. 예를 들어
# 폴란드어(Polish)로 된 문서는 네트웍 표준 언어 코드가 pl 이지만
# 펄 스크립트와 확연히 구별하기 위해 "AddLanguage pl .po"라고 사용한다.
#
AddLanguage ko .ko
AddLanguage en .en
AddLanguage fr .fr
AddLanguage de .de
AddLanguage da .da
AddLanguage el .el
AddLanguage it .it
#
# LanguagePriority는 내용 협상 중 동점이 발생하는 경우 언어 우선권을
# 부여한다. 언어의 우선권을 내림차순으로 나열하면 된다.
#
LanguagePriority ko en fr de
#
# AddType를 사용하면 mime.types 파일 수정없이 MIME 설정을 할 수 있고
# 또는 어떤 파일들에 대하여 특정 타입으로 처리하도록 할 수 있다.
#
# 예를 들어, PHP3 모듈(아파치 배포파일에 포함되어 있지 않다)에
# 대해서는 다음과 같이 사용한다.
#
#AddType application/x-httpd-php3 .php3
#AddType application/x-httpd-php3-source .phps
# PHP4 Zend 에 대한 설정
#AddType application/x-httpd-php .php
#AddType application/x-httpd-php-source .phps
#다음은 PHP/FI (PHP2)를 위한 것입니다.
#AddType application/x-httpd-php .phtml
#
# .tgz 파일에 대한 타입 설정
#
AddType application/x-tar .tgz
#
# AddHandler를 사용하면 특정 파일 확장자와 "처리기"를 연결하거나
# 특정 파일 타입에 특정 동작(action)을 연결할 수 있다.
# 서버에 내장되어 있거나 또는 Action 명령을 사용하여 추가할 수
# 있다.(아래 참고)
#
# 서버 측 포함(SSI) 또는 ScriptAlias 처리된 디렉토리 외부에
# 존재하는 CGI 스크립트를 사용하고 싶을 때는 다음 내용의
# 주석을 없앤다.
#
# CGI 스크립트를 사용하기 위해:
#
#AddHandler cgi-script .cgi
#
# 서버 처리 HTML 파일 사용하기 위해:
#
AddType text/html .shtml
AddType text/html .htm
AddHandler server-parsed .shtml
#
# 아파치의 send-asis HTTP 파일 기능을 사용하기 위해서는 다음 행의
# 주석을 없앤다.
#
#AddHandler send-as-is asis
#
# 서버 처리 이미지 맵 파일을 사용하려면...
#
AddHandler imap-file map
#
# type map을 사용하려면...
#
#AddHandler type-map var
# perl 모듈을 사용하려면 다음 세션의 주석을 풉니다.
#
#Alias /perl/ /home/httpd/perl/
#<Location /perl>
#SetHandler perl-script
#PerlHandler Apache::Registry
#Options +ExecCGI
#</Location>
#
# Action을 사용하면 매칭되는 파일이 호출될 때마다 그 미디어 타입에 맞는
# 스크립트를 시행시킬 수 있다. 빈번하게 사용되는 CGI 파일 프로세서에
# 대하여 반복적으로 URL을 사용하지 않아도 된다.
# Format: Action media/type /cgi-script/location
# Format: Action handler-name /cgi-script/location
#
#
# MetaDir: 아파치 서버가 메타 정보 파일을 찾을 디렉토리 이름.
# 이 파일에는 문서를 보낼 때 추가하고자 하는 추가 HTTP 헤더 정보가
# 들어있다.
#
#MetaDir .web
#
# MetaSuffix: 메타 정보를 담고 있는 파일의 접미어를 설정한다.
#
#MetaSuffix .meta
#
# 사용자 정의 에러 반응 메시지 (아파치 스타일)
# 다음 3 가지 방법으로 가능하다.
#
# 1) 보통의 텍스트
#ErrorDocument 500 "The server made a boo boo.
# 주목: " 표시는 텍스트임을 알려주는 것으로서 그 자체는 출력되지 않는다.
#
# 2) 지역적인 방향 전환
#ErrorDocument 404 /missing.html
# 지역적 URL인 /missing.html로 방향 전환하기
#ErrorDocument 404 /cgi-bin/missing_handler.pl
# 주목: 스크립트나 SSI로 방향 전환시킬 수 있다.
#
# 3) 외부 방향 전환
#ErrorDocument 402 http://some.other_server.com/subscription_info.html
# 주목: 원래 요청과 관련있는 환경 변수의 상당수가 스크립트에
# 전달되지 못한다는 점을 알고 있어야 한다.
#
# 다음 지시자는 보통의 HTTP 반응 방식을 수정한다.
# 첫번째 것은 네스케이프 2.x 또는 그를 흉내내는 브라우져에 대하여
# KeepAlive 기능을 쓰지 않도록 한다. 이 브라우져들은 KeepAlive 구현에
# 문제점을 갖고 있기 때문이다.
# 두번째 것은 HTTP/1.1을 잘못 구현하였고 301 또는 302 (redirect) 응답에
# 대하여 KeepAlive를 제대로 지원하지 못하는 마이크로소프트 인터넷
# 익스플로러 4.0b2를 위한 것이다.
#
BrowserMatch "Mozilla/2" nokeepalive
BrowserMatch "MSIE 4.0b2;" nokeepalive downgrade-1.0 force-response-1.0
#
# 다음은 기본적인 1.1 응답도 제대로 처리하지 못함으로써 HTTP/1.1 스펙을
# 위반하고 있는 브라우져에 대하여 HTTP/1.1 응답을 하지 않도록 한다.
#
BrowserMatch "RealPlayer 4.0" force-response-1.0
BrowserMatch "Java/1.0" force-response-1.0
BrowserMatch "JDK/1.0" force-response-1.0
#
# http://servername/server-status을 통해 서버 상태 보고를 허용한다.
# 여기서 ".your_domain.com" 부분을 허용할 도메인으로 바꿔 사용하라.
#
#<Location /server-status>
# SetHandler server-status
# Order deny,allow
# Deny from all
# Allow from .your_domain.com
#</Location>
#
# http://servername/server-info를 통하여 원격 서버 설정 보고를 허용한다.
# (mod_info.c가 적재되어 있어야 한다.)
# 여기서 ".your_domain.com" 부분을 허용할 도메인으로 바꿔 사용하라.
#
#<Location /server-info>
# SetHandler server-info
# Order deny,allow
# Deny from all
# Allow from .your_domain.com
#</Location>
#
# 1.1 버전 이전의 오래 된 버그를 악용하려는 사람들이 있다는 보고를 받았다.
# 이 버그는 아파치 일부분으로 제공한 CGI 스크립트와 연관있다.
# 이 부분의 주석 처리를 없애면 이 버그를 악용하는 공격이 있을 때
# phf.apache.org 상의 기록 스크립트로 방향 전환시킬 수 있다.
# 또는 support/phf_abuse_log.cgi 스크립트를 사용하여 여러분 직접 기록할
# 수도 있다.
#
#<Location /cgi-bin/phf*>
# Deny from all
# ErrorDocument 403 http://phf.apache.org/phf_abuse_log.cgi
#</Location>
#
# 프록시 서버 지시자. 프록시 서버 기능을 작동시키려면 다음 행의
# 주석을 해제시켜준다.
#
#<IfModule mod_proxy.c>
#ProxyRequests On
#
#<Directory proxy:*>
# Order deny,allow
# Deny from all
# Allow from .your_domain.com
#</Directory>
#
# HTTP/1.1 "Via:" 헤더를 처리할 것인지 여부를 결정한다.
# ("Full"은 서버 버전을 포함하고 "Block"은 나가는 모든 자료에서
# Via: 헤더를 제거한다.)
# Off | On | Full | Block 중 하나의 값을 지정한다.
#
#ProxyVia On
#
# 캐쉬 기능도 사용하기 위해서는 다음 행의 주석을 풀어준다:
# (CacheRoot가 없으면 캐쉬하지 않음)
#
#CacheRoot "/home/httpd/proxy"
#CacheSize 5
#CacheGcInterval 4
#CacheMaxExpire 24
#CacheLastModifiedFactor 0.1
#CacheDefaultExpire 1
#NoCache a_domain.com another_domain.edu joes.garage_sale.com
#</IfModule>
# 프록시 설정 끝
#############################################################################
### 섹션 3: 가상 호스트
#
# VirtualHost: 여러분의 리눅스 박스에 여러 개의 도메인/호스트이름을
# 관리하고 싶다면 각각에 대하여 VirtualHost 컨테이너를 설정한다.
# 가상 호스트를 설정하기에 앞서 자세한 설명을
# <URL:http://www.apache.org/docs/vhosts/>에 들러 읽어보기 바란다.
# 가상 호스트 설정 내용을 점검해보기 위해서는 아파치를 실행할 때
# 명령행 옵션으로 '-S'를 사용한다.
#
# 이름 기반의 가상 호스트를 사용하려면 사용할 IP 주소 (최소 1 개,
# 그리고 포트 번호)를 정의해주어야 한다.
#
# 경고 : 아파치 1.2.x 버전에서만 가상 호스트 기능을 사용해 온 관리자들은
# 아파치 1.3.x 버전에서 NameVirtualHost 지시자로 IP 주소를
# 해주어야만 가상 호스트가 제대로 동작한다는 사실을 꼭 알아야 한다!!!
# 1.2 버전을 쓰다 1.3 버전으로 와서 가상 호스트가 동작하지 않는
# 문제의 99% 는 바로 NameVirtualHost 설정에 있다.
#
#
#NameVirtualHost 12.34.56.78:80
#NameVirtualHost 12.34.56.78
#
# 가상 호스트 예제:
# 대부분의 아파치 지시자는 Virtual 부문을 설정한다.
#
#<VirtualHost ip.address.of.host.some_domain.com>
# ServerAdminwebmaster@host.some_domain.com
# DocumentRoot /www/docs/host.some_domain.com
# ServerName host.some_domain.com
# ErrorLog logs/host.some_domain.com-error_log
# CustomLog logs/host.some_domain.com-access_log common
#</VirtualHost>
#<VirtualHost _default_:*>
#</VirtualHost>

AND

가끔 yum을 쓰다보면
 'Another app is currently holding the yum lock; waiting for it to exit .................'

위 처럼 징징..... 거릴 때가 있습니다...

으아아아~~악!!!! 난...새로 업데이트하고 싶을 뿐이고...
Yum 이 녀석은 쓰잘떼기 없는 소리나 하면서 내가 하라는 업데이트는 하지 않을 뿐이고!!

요렇게 열받으실때... 조용히 Putty 나가!! 지.. 마시고;ㅋ
아래의 방법을 추천해드립니다 ㅎㅎ

========================================== 추 천 =========================================
위와 같은 메세지가 출력되는 원인은 yum이 이미 다른 프로세스로 진행되고 있는데 상황에서 다시
yum을 진행하려고 하기 때문입니다.

가장 쉬우면서 정확한 해결 방법은 해당 프로세스가 어련히 알아서 나가!!! 주실때까지... 푸지게 아주
푸지게.... 기다리는 것이라고 할 수 있습니다만.............

참....쉽고도 짜증나는 해결방법이 아닐 수 없습니다...ㅡㅡ;;;;ㅋ(누스 생각 ㅋ)
과연 기다릴 수 있나요? ㅋ(대화법입니다;ㅋ)

요럴때!! 좀 더 빠르게 해결해보는 방법입니다........ 자~ 따라와~~~ Follow ME~!

1. 일단 root로 로긴~ (현재 root 사용자라면 패스~)

$ su - root

2. 프로세스들 중에 yum이 진행되는 것을 확인.

# ps –aef | grep yum 


3. 이 yum 프로세스 정보를 담고있는 파일을 삭제!! 삭제!!!

# cd /var/run/ 
# rm yum.pid

또는

# kill [yum 이 사용하고 있는 프로세스번호]

4. 다시 한 번 yum을 진행
==========================================================================================

이 얼마나 빠릇한 반응인가!!! 놀래셨죵~~~?
엄청나게 사랑스러운 방법이 아닐 수가 없습니다...!!!
윈도우에는 거의 불가능한 방법이 아닐까 싶습니다 ㅎㅎ

다만, 위 내용은 리눅스를 처음 접하시거나 공부 중 이신분들께는..추천하지 않습니다..
푸지게.... 아주 푸지게... 정상적으로 프로세스가 종료되는 걸 기다리시는 방법을 추천
해드립니다.. (위 방법은 비정상적으로 종료시키기 때문에 다른 문제를 야기 할 수 있어요...)

사랑하는 뤼눅슈!!! 많이 이용해주세용 ㅎㅎ
AND

최상위 디렉터리를 기준으로 각각의 디렉터리 별로 중요한 부분은 간단한 보안 설정은 해주어야 합니다.

아래 내용을 참고하여 자신에게 필요하게 설정하시면 되요^^


[ 시스템 설정을 위한 내용 ]
설치된 CentOS 버전 : CentOS 5.6
설치된 VMware 버전 : VM workstation 7.0


/bin : 시스템에서 기본적으로 사용하는 명령어들이 존재

/sbin : 시스템과 직접적인 관계가 있는 명령어들이 존재

/boot : 시스템의 부팅과 관련된 정보들이 존재

/root : root 사용자(슈퍼유저)의 홈 디렉터리

/home : 사용자들의 홈 디렉터리가 존재함.(사용자 기본 홈 디렉터리)

 



AND


####################################################################################################
     ** 시스템 정보 확인용 **
====================================================================================================
cpu 정보 : cat /proc/cpuinfo
pci 정보 : cat /proc/pci
사용중인 irq 정보 : cat /proc/interrupts
사용주인 dma 채널 : cat /proc/dma
사용중인 i/o 포트 정보 :cat /proc/ioports
현재 사용가능한 화일 시스템 :cat /proc/filesystems
현재 사용중인 메로리 : cat /proc/meminfo
현재 사용중인 파티션 :cat /proc/partitions
현재 사용중인 스왑 파티션 정보 : cat /proc/swaps
현재 사용중인 커널 버전 : cat /proc/version
현재 사용중인 드라이버 :cat /proc/devices
현재 사용중인 부트 이미지 : cat /proc/cmdline

####################################################################################################


####################################################################################################
     ** 리눅스의 기본 명령어 **
====================================================================================================
1. 시스템 정보 출력

 arch  : CPU 모델
 cal [11 2000] : 달력
 clock  : CMOS 설정 시간의 출력, 변경
 date  : 현재 시간
 df [-h] : 연결되어 있는 파일 시스템의 용량
 du [-sh] : 파일과 디렉토리별로 할당되어 있는 용량
 free [-m] : 메모리 용량 (M:Mbyte, K:Kbyte)
 fsck -a : 파일 시스템의 검사도중 발견된 에러를 자동 복구
 fsck -r : 파일 시스템의 검사도중 에러가 발견되면 복구 여부확인
 fsck -s : 파일 시스템을 순차적인 방법으로 검색
 fsck -v : 파일 시스템의 검색 중 각종 정보를 보여줌
 fsck -n : 파일 시스템의 실제검사 작업을 안함
 uname [-a] : 커널 버전과 운영체제 정보
 top  : 진행중인 프로세스의 CPU 점유율
 hostname : 사용중인 시스템 이름
 ps [aux] : 진행중인 프로세스 정보
   ex) ps -ef | grep ftp   - ftp 프로세스 실행 가입자
 pstree  : 진행중인 프로세스 정보를 트리 형태로 출력
 tee  : 명령 수행의 결과를 표준출려과 파일로 동시 저장
 nohup  : 지정한 명령어를 로그아웃시에도 계속 수행하도록 한다.
                 ex)nohup 명령어 [ 명령어 인자 ]
 lprm  : 프린트 JOB 삭제
 lockfile : 지정한 화일에 대한 세마포어 화일을 만든다.
 lsdev  : 현재 시스템에 연결되어 있는 하드웨어에 관한 입출력 정보, IRQ 값 등을 출력
 fuser  : 지정한 파일을 사용하고 있는 프로세스를 보여준다.
 fdformat : 플로피디스크 포맷( /dev/fd0 옵션)
 env  : 현재의 환경변수 설정상황을 보여준다
 killall [DM] : [DM]이름의 데몬 죽이기

 mysqladmin -p reload du --max-depth=1      디렉토리 크기 아는법

 ipchains -F : 방화벽초기화(아무나 접속하게 만듬 )
 ipchains -P forward REJECT : 포워딩 거부정책
 ipchains -A forward -s 192.168.1.0/24 -j MASQ : 마스커레이드 허용정책
 ipchains -L : 접속환경 보여줌 

====================================================================================================
  /sbin/ifconfig        telnet 환경에서 ifconfig 보여줌
  cat /proc/interrupts  IRQ 표기
  cat /proc/ioports      i/0 포트 표기
  ntsysv                시작프로그램 설정
    echo "1" > /proc/sys/net/ipv4/ip_forward iptables -P FORWARD DROP iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE  마스커레이드 설정 snmpget 61.77.63.134 Rkdska12 system.1.0 

====================================================================================================
2. 사용자 정보 출력
 who  : 현재 시스템 사용중인 사용자들 이름, 터미널 번호, 로그인 시간
 users  : 현재 시스템 사용중인 사용자들 이름
 finger [user_id] : 현재 시스템 사용중인 사용자들의 신상 명세
 w  : 현재 시스템 사용중인 사용자 이름과 작업 종류
 id  : 자신의 user id와 group id
 whoami  : Who Am I?

====================================================================================================
3. quota 정보
 quotaoff -avug : quota종료
 quotacheck -avug : quota 사용파일 확인
 quotaon -avug : quota시작
 repquota [/device] : device의 quota 정보확인
 ediquota : quota 수정 (-u:user, -p:속성복사)

====================================================================================================
4. 파일/디렉토리 관련 기본 명령어

 /  : 디렉토리 표시
 .  : 현재 디렉토리
 ..  : 상위 디렉토리
 ~  : 홈 디렉토리
 cd  : 디렉토리 이동
 ls  : 디렉토리 내용 출력
 mkdir  : 디렉토리 생성
 rmdir  : 디렉토리 삭제
 pwd  : 현재 작업 디렉토리 절대 주소 출력
 cp  : 파일 복사 (디렉토리 포함은 '-r')
 mv  : 파일 이동
 rm  : 파일 삭제 (디렉토리 포함은 '-r')(강제 삭제는 -f)
 cat  : 파일 내용 출력
 tac  : 파일 내용 역순으로 출력
 more  : 파일 내용 페이지 단위로 출력
 less  : more와 같다.
 head -n : 파일 내용의 앞부분을 n줄만큼 출력
 tail -n : 파일 내용의 뒷부분을 n줄만큼 출력
 ln -s A B : A에 B를 링크
 tar [] 파일? : 파일 풀기[xvf], 묶기[cvf], 압축[z]
   ex)tar -cvf A.tar ./public_html : public_html의 하위디렉토리를 A.tar로 압축.
 split  : 파일 분할
 uniq  : 중복라인 삭제
 cut  : 필드 분리                         
    ex)cut -f2 filename : 두번째 필드만을 분리해낸다. -c옵션으로 분리자 지정
 paste  : 두 파일의 같은 라인을 결합
 comm  : 두 파일의 비교  <---정렬이 먼저 되어있어야 한다.
 fold  : 파일의 각 줄을 잘라서 지정한 폭 이하가 되도록 한다.
 split  : 일정라인마다 잘라서 다른 파일로 저장한다.
 fmt  : 텍스트화일을 일정한 너비로 정렬한다.

 find / -name index.html -print, -ls  파일 찾는 방법.

====================================================================================================
5. 압축 명령어

 gzip, gunzip : 확장자가 .gz 인 파일로 압축 또는 해제
 zip, unzip : 확장자가 .zip 인 파일로 압축 또는 해제

tar command files
옵션  - c 지정파일또는 디렉토리를 tar로 묶는다(압축효과 없음:오히려 용량증가)
        - x tar의 파일의 묶음을 푼다. (묶음과 압축의 차이점 이해해야함)
        - v 묶음의 대상파일을 보여준다.
        - r 기존의 tar파일에 파일을 추가한다.
        - p 파일의 생성되었을 때의 권한을 그대로 유지하게 해준다.
        - z tar.gz의 파일로 압축할때 쓰이는 옵션
        - f 작업대상이 되는 tar파일의 이름을 지정한다.
사용예
        tar xvfz gnu3.tgz  : 압축해제와 묶여짐을 동시에 푼다. 
        tar cvfzp gnu3.tgz  *.php  : 현재디렉토리에 있는 *.php로 끝나는 파일을 모두 퍼미션을 유지한 상태에서 묶어서 gnu3.tgz라는 파일로 압축한다.

====================================================================================================
6. 특정아이피 접속차단
route add -host (ipnumber) reject
netstat -rn

위 방법은 재부팅하면 다시해야한다. 영구적설정은 etc/hosts.deny hosts.allow 파일수정
혹은 iptables사용 in kldp

====================================================================================================
7. 포트스켄

nmap (ip_address or host name) : 해당PC에 열려있는 포트/서비스들을 보여준다. 안먹는 컴퓨터들도 있다.

====================================================================================================
8. 퍼미션 관련 명령어

chmod (change mode)
옵션 : -R (대문자) 서브 디렉토리까지 설정된다.
기본권한
    UID    GID    Other
    rwx   _ _ _    rwx
    root  group   other     
여기서 'r' 은 파일의 내용을 볼 수 있는 권한을 말합니다.
       'w' 은 파일의 내용을 수정할 수 있는 권한을 말합니다.
       'x' 은 샐행 시킬수 잇는 권한을 말합니다.

        x=1 , w=2, r=4 의 권한을 말합니다.

AND