( 1 ) FHS
FHS 는 Filesystem Hierachy Standard 의 약자로 파일 시스템 계층구조 표준을 말함.
즉, 리눅스 운영 체제의 주 디렉토리를 정의하는 표준임.
HP, 레드햇, IBM, Dell 과 같은 주요 소프트웨어 및 하드웨어 공급 업체로 이루어진 비영리 조직인 리눅스 재단(http://www.linuxfoundation.org/)에 의해 유지되고 있음.
대부분의 리눅스 배포판은 FHS 를 따르며 FHS 를 준수할 것을 명시함.
자세한 정보는 아래 링크를 참고바람.
http://refspecs.linuxfoundation.org/FHS_3.0/fhs-3.0.html
( 2 ) FHS 릴리즈 역사
버전
|
배포일
|
비고
|
1.0
|
1994-02-14
|
FSSTND
|
1.1
|
1994-10-09
|
FSSTND
|
1.2
|
1995-03-28
|
FSSTND
|
2.0
|
1997-10-26
|
FHS 2.0 은 FSSTND 1.2 를
직접 계승하였으며 FSSTND 명칭에서 FHS 명칭으로
변경함.
|
2.1
|
2000-04-12
|
FHS
|
2.2
|
2001-05-23
|
FHS
|
2.3
|
2004-01-29
|
FHS
|
3.0
|
2015-05-18
|
FHS
|
노란색 - 구버전, 지원함
녹색 – 최신 버전
( 3 ) 최상위 디렉토리 구조인 / 디렉토리 구조 확인
( 4 ) 디렉토리 구조
구분
|
설명
|
/
|
기본 계층 모든 파일 시스템
계층의 기본인 루트 디렉토리
최상위 디렉토리로 모든 디렉토리들의 시작점
모든 디렉토리들을 절대경로로 표기할 때에 이 디렉토리부터 시작해야 함.
파티션 설정 시 반드시 존재하여야 함.
주의! / 와 /root 는 완전히 다른 것임.
|
/bin
|
모든 사용자를 위해 단일 사용자 모드에서 사용 가능해야 하는 명령어 바이너리
ex. cat, ls, cp
기본적인 명령어가 저장된 디렉토리
root 사용자 뿐만 아니라 일반 사용자들도 사용할 수 있음.
(/sbin – 대부분 root 사용자용,
/bin - 공동)
|
/boot
|
부트 로더 파일
ex. kernels, initrd
|
/dev
|
필수적인 장치 파일
(하드디스크 장치 파일 - /dev/sda, CD-ROM 장치 파일 - /dev/cdrom)
/dev 위치에 백도어 파일을 숨기는 주요 디렉토리이므로 주기적인 검사가 필요함.
|
/etc
|
특정 호스트 시스템의 전반적인 설정 파일
윈도우의 제어판이나 레지스트리에 해당됨.
이름 그 자체의 의미 이상에 대한 논쟁이 있었음.
벨 연구소에서 나온 유닉스 구현에 대한 초기 버전 문서에서는 /etc 는 et cetera 를 의미한다고 하였는데 이
디렉토리가 역사적으로 어디에도 속하지 않은 것을 모든 것을 붙들었음.
(그러나 FHS 는 /etc 를 기존 설정 파일로
제한하였고 바이너리를 포함하지 않을 수 있음. 초기 문서의 출판 이후 디렉토리 이름은 다양한 방법으로
재지정되어 왔음. 최근에는 "Editable Text
Configuration" 이나 "Extended Tool
Chest" 와 같은 약어로 해석됨.)
|
/etc/opt
|
/opt/ 에 저장된 애드온 패키지의 설정 파일
|
/etc/X11
|
X Window System 의 설정 파일 (버전 11)
|
/etc/sgml
|
SGML 설정 파일
|
/etc/xml
|
XML 설정 파일
|
/home
|
저장된 파일, 개인 설정, 기타 등을 포함한 사용자의 홈 디렉토리
윈도우의 C:\Users 에 해당됨.
useradd 라는 명령어로 새로운 사용자를 생성하면 대부분 사용자의 ID 와 동일한 이름의 디렉토리가
자동으로 생성됨.
|
/lib
|
/bin/ 과 /sbin/ 에 있는 바이너리용 라이브러리
주의! 함부로 삭제 시세 시스템이 멈출 수가 있음.
|
/lib<qual>
|
패체 형식 필수 라이브러리
|
/lost+found
|
최상위 디렉토리인/ 디렉토리에만 존재하는
것이 아니라 파일 시스템마다 존재할 수 있는 디렉토리
fsck 또는 e2fsck 등과 같은 파일 시스템 체크 및 복구 유틸리티 실행 후에 주로 생성이 되는
것으로서 복구되지 않은 채로 블록(block)만 존재하는 파일
(연결이 끊어진 inode 들이 숫자 파일 형태로 존재하는 곳)
숫자 형태로 존재하는 파일들은 mv 명령어로
파일 이름만 바꾸면 바로 복구될 수 있음.
(이 위치에 존재하는 텍스트 파일의 경우에는 file 이라는 명령어와 cat 또는 vi 등의 명령어로 파일의 내용 등을 확인한 후에 복구
가능하므로 경우에 따라서는 매우 중요한 역할을 하는 디렉토리임)
삭제를 해도 시스템에는 아무런 영향이 없음.
(꼭 필요한 파일이 이 디렉토리에 복구되지 않은 채로 남아 있을 수 있기 때문에 반드시 확인 후에 삭제하도록 함)
|
/media
|
CD-ROM 과 같은 이동식 미디어의 마운트 지점
(2004년 FHS-2.3 에서 적용됨)
|
/mnt
|
임시로 마운트되는 파일 시스템
|
/opt
|
선택 가능한 응용 소프트웨어 패키지
|
/proc
|
프로세스 및 커널 정보를 파일로 제공하는 가상 파일 시스템
리눅스에서는 procfs 마운트에 해당되며
윈도우의 장치관리자에 해당됨.
일반적으로 자동으로 시스템에 의해 생성되고 채워짐.
실제 운용 상태를 정확하게 파악할 수 있는 중요한 정보를 제공함.
(여기에 존재하는 파일들 가운데 현재 실행 중인 커널의 옵션값을 즉시 변경할 수 있는 파라미터 파일들이 있기 때문에 시스템 운용에 있어
매우 중요한 의미를 가짐)
대부분 읽기 전용이나 일부 파일 중에는 쓰기가 가능한 파일이 존재하는데 이러한
파일들에 특정 값을 지정하면 커널 기능이 변하게 됨.
|
/root
|
시스템 최고관리자인 root 사용자의 홈 디렉토리
|
/run
|
런타임 변수 데이터
마지막 부팅 이후 실행 중인 시스템 정보
ex. 현재 로그인 한 사용자 및 실행 중인 데몬
이 디렉토리의 파일은 부팅 시 제거되어야 함.
그러나 이 디렉토리는 임시 파일 시스템(tmpfs)으로
제공하는 시스템에서는 필요하지 않음.
|
/sbin
|
필수 시스템 바이너리
ex. init, ip, route
주로 시스템 관리자들이 사용하는 시스템 관리자용 명령어를 저장하고 있는 디렉토리 (/sbin – 대부분 root 사용자용, /bin - 공동) |
/srv
|
웹 서버 스크립트 및 데이터, FTP 서버가
제공하는 데이터, 버전 제어 시스템용 저장소와 같은 시스템에서 제공하는 사이트별 데이터
(2004년 FHS-2.3 에서 적용됨)
|
/sys
|
장치, 드라이버 및 일부 커널 기능에
대한 참조된 정보
|
/tmp
|
임시 파일 (/var/tmp 참고)
윈도우의 Temp 폴더와 같은 개념임.
종종 시스템 재부팅 사이에 보존되지 않으며 크기가 심각하게 제한될 수 있음.
공용 디렉토리 – 시스템을 사용하는
모든 사용자들이 공동으로 사용하는 디렉토리
(ex. MySQL 에서 사용하는 소켓 파일(mysql.sock)이나 Apache 에서 사용하는 세션 파일(session file) 등이
생성되기도 함)
시스템의 일반적인 사용자 또는 각종 프로세스에서 사용되는 파일들이 생성되는 위치
웹해킹에 사용되는 파일이 업로드 되는 위치이므로 주의가 요구되는 디렉토리
|
/usr
|
읽기 전용 사용자 데이터가 있는 보조
계층 구조
주요(다중) 사용자의 유틸리티와 애플리케이션을 포함하고 있음.
윈도우의 C:\Program Files 에
해당되지만 리눅스에서는 더 큰 의미를 가짐.
|
/usr/bin
|
모든 사용자의 중요하지 않은(단일 사용자
모드에서 필요하지 않은) 명령어 바이너리
|
/usr/include
|
표준 include 파일
|
/usr/lib
|
/usr/bin/ 과 /usr/sbin/ 에 있는 바이너리용 라이브러리.
|
/usr/lib<qual>
|
대체 형식 라이브러리
ex. 64bit 시스템의 32bit 라이브러리일 경우 /usr/lib32 (선택 사항)
|
/usr/local
|
해당 호스트와 관련된 로컬 데이터의 3차
계층 구조
일반적으로 bin, lib, share 와
같은 추가 하위 디렉토리가 있음.
|
/usr/sbin
|
중요하지 않은 시스템 바이너리
ex. 다양한 네트워크 서비스 데몬
|
/usr/share
|
아키텍처에 독립적인(공유) 데이터
|
/usr/src
|
소스 코드
ex. 커널 소스 코드와 그 헤더 파일
|
/usr/X11R6
|
X Window System (버전 11 릴리즈 6, 선택 사항)
|
/usr/share/man
|
명령어들의 도움말을 주는 매뉴얼 페이지 디렉토리
(시스템에서 사용하는 모든 man 페이지 파일이 존재함)
|
/var
|
가변적인 파일
일반적인 시스템의 정상적인 작동 중에 내용이 계속 변경될 것으로 예상되는 파일
(로그 파일, 스풀 파일, 임시 이메일 파일)
시스템 운용 중에 생성되었다가 삭제되는 데이터를 일시적으로 저장하기 위한 디렉토리 |
/var/cache
|
응용 프로그램 캐시 데이터
이러한 데이터는 시간이 걸리는 입출력이나 계산의 결과로 로컬에서 발생함.
이 응용 프로그램은 데이터를 재생성하거나 복원할 수 있어야 함.
이 캐시 된 파일은 데이터 손실 없이 삭제됨.
|
/var/lib
|
상태 정보
프로그램이 실행될 때 데이터베이스, 패키징
시스템 메타데이터 등과 같이 영구적인 데이터가 수정됨.
|
/var/lock
|
잠금 파일
현재 사용중인 자원을 추적하는 파일
|
/var/log
|
로그 파일
다양한 로그가 있음.
|
/var/mail
|
사서함 파일
일부 배포판에서 이러한 파일은 더 이상 사용되지 않는 /var/spool/mail 에 있을 수 있음.
|
/var/opt
|
/opt/ 에 저장된 애드온 패키지의 변수 데이터
|
/var/run
|
런타임 변수 데이터
이 디렉토리에는 부팅 후 시스템을 구동시키는 시스템 정보 데이터가 들어 잇음.
FHS 3.0 에서는 /var/run 은 /run 으로 대체됨.
시스템은 /var/run 디렉토리를
계속 제공하거나 이전 버전과의 호환성을 위해 /var/run 에서
/run 으로 심볼릭 링크를 제공해야 함.
|
/var/spool
|
처리를 기다리는 작업 스풀
ex. 인쇄 큐나 발신 메일 큐
|
/var/spool/mail
|
더 이상 사용되지 않는 사용자 사서함 파일
|
/var/tmp
|
재부팅 사이에 보존되는 임시 파일
공용 디렉토리 |
참고 사이트 :
https://ko.wikipedia.org/wiki/%ED%8C%8C%EC%9D%BC%EC%8B%9C%EC%8A%A4%ED%85%9C_%EA%B3%84%EC%B8%B5%EA%B5%AC%EC%A1%B0_%ED%91%9C%EC%A4%80
https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard
https://refspecs.linuxfoundation.org/FHS_3.0/fhs-3.0.pdf
http://refspecs.linuxfoundation.org/FHS_3.0/fhs-3.0.html
============================================================
본 게시물은 KOROMOON 님께서 작성하였으며 CCL (Creative Commons License) 에서 "저작자표시-비영리-동일조건변경허락" 이용조건으로 자료를 이용하셔야 합니다.
댓글 없음:
댓글 쓰기