본문 바로가기

IT/리눅스

리눅스 디렉토리 구조, 용도 설명

제 3장. 리눅스의 디렉토리 구조 설명

 

 

디렉토리들의 용도와 설명

 

/

최상위 디렉토리인 루트 디렉토리입니다. 리눅스의 모든 디렉토리들의 시작점이라고 할 수 있어요.

절대경로로 표기할 때는 이 디렉토리부터 시작해야 합니다.

(*주의* 여기서 이야기하는 //root와는 완전히 다름)

 

/bin

기본적인 명령어가 저장된 디렉토리입니다.

, 리눅스 시스템사용에 있어 가장 기본적이라고 할 수 있는~

mv, cp, rm, rmdir , df, sync 등과 같은 명령어들이 이 디렉토리에 존재하는데요.

또한 이 디렉토리에 존재하는 거의 모든 명령어들은 root 사용자뿐 아니라 일반 사용자들도 사용할 수 있습니다.

, /sbin에 존재하는 명령어들이 대부분 root 사용자용 이라면

/bin에 존재하는 명령어들은 root 사용자와 일반사용자들이 공동으로 사용하는 디렉토리 인거죠.

 

/boot

리눅스 부트로더(Boot Loader)가 존재하는 디렉토리.

, GRUB과 같은 부트로더에 관한 파일들(예를 들어 grub.conf )이 이 디렉토리에 존재합니다.

 

/dev

시스템 디바이스(device) 파일을 저장하고 있는 디렉토리.

, 하드디스크 장치파일 /dev/sda, CD-ROM 장치파일 /dev/cdrom 등과 같은 장치 파일들이 존재하는 디렉토리.

한때는 /dev위치에 백도어파일이 숨겨져 있는 장소로 유명했음. 관리자들의 관심이 소홀한 디렉토리이기 때문에

백도어파일을 숨겨두기에 최적의 장소로 인식됨.

따라서 기본 장치파일 외에 다른 생소한 파일이 생성되어 있는가를 주기적으로 확인해야함.

 

/etc

시스템의 거의 모든 설정 파일이 존재하는 디렉토리.

/etc/passwd (패스워드파일), /etc/group (그룹파일), yum 설정파일, xinetd 설정파일, vsftpd 설정파일, /etc/sysconfig(시스템 제어판용 설정파일) 등과 같이

거의 모든 시스템 관련 설정 파일들이 존재하는 디렉토리입니다.

 

/home

사용자의 홈디렉토리.

예를 들어 /home/zitto zitto 라는 사용자의 홈디렉토리라고 할 수 있어요.

이와 같이 useradd라는 명령어로 새로운 사용자를 생성하면

대부분 사용자의 ID 와 동일한 이름의 디렉토리가 자동으로 생성된답니다.

 

/lib

커널모듈파일과 라이브러리파일

, 커널이 필요로하는 커널모듈파일들과 프로그램(C, C++ )에 필요한 각종 라이브러리 파일들이 존재하는 디렉토리.

 

/media

DVD, CD-ROM, USB 메모리스틱 등과 같은 탈부착이 가능한 장치들의 마운트포인트 (mount point)로 사용되는 디렉토리.

 

/mnt

/media 디렉토리와 비슷한 용도로 탈부착이 가능한 장치들에 대해 일시적인 마운트포인트로 사용하는 디렉토리.

 

/proc

일명 가상파일시스템이라고 하는 곳에 현재 메모리에 존재하는 모든 작업들이 파일형태로 존재하는 곳입니다.

디스크상에 실제 존재하는 것이 아니라 메모리상에 존재하기 때문에 가상파일시스템이라고 합니다.

실제 운용상태를 정확하게 파악할 수 있는 중요한 정보를 제공하기도 하는데요.

여기에 존재하는 파일들 가운데 현재 실행중인 커널(kernel)의 옵션값을 즉시 변경할 수 있는 파라미터파일들이 있기 때문에

시스템 운용에 있어 매우 중요한 의미를 가집니다.

이 가상파일시스템에 대한 설명만을 별도로 해야할 정도로 매우 중요하게 다루어 진답니다. 

 

/root

시스템 최고 관리자인 root 사용자의 개인 홈 디렉토리.

 

/sbin

ifconfig, e2fsck, ethtool, halt, shutdown 과 같은 주로 시스템관리자들이 사용하는

시스템 관리자용 명령어를 저장하고 있는 디렉토리.

 

/tmp

일명 공용디렉토리”.

시스템을 사용하는 모든 사용자들이 공동으로 사용하는 디렉토리입니다.

예를 들어 mysql에서 사용하는 mysql.sock. 등과 같은 소켓파일, 또는 아파치에서 사용하는 세션파일(session file)등이 생성되기도 합니다.

, 시스템의 일반적인 사용자 또는 각종 프로세스에서 사용되는 파일들이 생성되는 위치인데요.

이 디렉토리가 매우 민감한 이유는 홈페이지에서 해킹툴이 업로드되는 가장 흔한 위치

, 웹해킹에 사용되는 파일이 업로드 되는 위치 이므로 주의가 요구되는 디렉토리랍니다.

 

/usr

시스템이 아닌 일반 사용자들이 주로 사용하는 디렉토리.

, c++, chsh, cpp, crontab, du, find 등과 같이 일반사용자들용 명령어들은 /usr/bin에 위치합니다.

시스템관리자 전용명령어를 제외한 거의 모든 일반적 리눅스 명령어들이 존재하는 위치가 /usr/bin 입니다.

특히 /usr/local 디렉토리는 사용자들이 설치한 어플리케이션이 설치되는 위치입니다.

그리고 /usr/sbin에는 각종 어플리케이션 설치시에 생성되는 명령어들과 네트워크에 관련된 명령어들이 주로 존재해요.

 

/var

시스템 운용중에 생성되었다가 삭제되는 데이터를 일시적으로 저장하기 위한 디렉토리.

거의 모든 시스템로그파일은 /var/log에 저장되고, DNSzone 설정파일은 /var/named에 저장되고,

메일파일은 /var/spool/mail에 저장되며, 크론설정파일은 /var/spool/cron 디렉토리에 각각 저장됩니다.

 

/lost+found

최상위디렉토리인 /디렉토리에만 존재하는 것이 아니라 파일 시스템마다 존재할 수 있는 디렉토리입니다.

이 디렉토리는 fsck 또는 e2fsck 등과 같은 파일시스템 체크 및 복구유틸리티 실행 후에 주로 생성 되는 것으로서

복구되지 않은 채로 블록(block)에만 존재하는 파일 즉, 연결이 끊어진 inode 들이 숫자파일형태로 존재하는 곳입니다.

숫자 형태로 존재하는 파일들은 mv명령어로 파일 이름만 바꾸면 바로 복구될 수 있습니다.

, 이 위치에 존재하는 텍스트파일의 경우에는 file 이라는 명령어와 cat 또는 vi 등의 명령어로 파일의 내용 등을 확인한 후에 복구 가능하므로

경우에 따라서는 매우 중요한 역할을 하는 디렉토리입니다.

이 디렉토리를 삭제해도 시스템에는 아무런 영향이 없으나

꼭 필요한 파일이 이 디렉토리에 복구되지 않은 채로 남아있을 수 있기 때문에 반드시 확인후에 삭제해야 합니다.

 


위 내용은 전공 교재 "리눅스 서버관리 실무 바이블 3.0"(박성수 저)을 참고했습니다.