본문 바로가기
정보보안(웹해킹)/File Vulnerability

Linux 주요 파일시스템

by 끊임없는정진 2022. 12. 17.

- Unix 주요 디렉터리

▶ 전형적인 Unix 디렉터리 구조

디렉터리 설명
/ root 디렉터리나 최상위 디렉터리이다.
/etc 시스템의 환경 설정 및 주요 설정 파일을 담고 있다.(passwd, hosts 등)
/dev 프린터나 터미널 같은 물리적인 장치를 다루기 위한 특수파일들을 담고 있다.
/usr/bin 기본적으로 실행가능한 파일을 담고 있다.(echo, mv, copy, pwd 등)
/usr/include C 언어 라이브러리 헤더 파일이 저장되는 디렉터리이다.
/usr/lib 기본 프로그램의 모듈을 담고 있다.
/usr/sbin 시스템 관리 명령어가 저장되는 디렉터리이다.
/home 사용자 홈 디렉터리가 저장되는 디렉터리이다.
/tmp 프로그램 실행 및 설치 시 생성되는 임시파일을 담고 있다. 이 디렉터리에 파일을 저장하면 재부팅 시 임의로 삭제될 수 있다.
/var 시스템 로그가 저장되는 디렉터리이다.

 

- Linux 디렉터리 및 파일

▶ 로그 및 데이터 파일 저장위치

디렉터리 설명
/var/www 웹 문서 및 기타 웹 서버에서 사용되는 파일을 저장
/var/lib 시스템의 각종 서비스에서 자료를 저장할 때 사용. 데이터베이스 등이 이에 속함
/var/lib/mysql MySQL 데이터베이스의 데이터가 저장됨
/var/lib/pgsql, /var/lib/postgresql PostgreSQL 데이터베이스의 데이터가 저장된다.
/var/log 시스템 서비스 등의 로그를 저장할 때 사용한다. 웹 서버 로그가 보통 여기에 위치한다.
/var/cache 캐시 데이터를 저장한다. 일반적으로 삭제되어도 재생성이 가능하다.
/media 제거 가능한 매체(USB 플래시 메모리, 기타 이동 저장장치 등)를 마운트할 때 주로 사용된다.
/mnt 기타 파일시스템을 임시로 마운트하는 용도로 주로 사용된다.

 

▶ 설정 파일

디렉터리 및 파일 설명
/etc 운영체제 초기 부팅 시 필요한 최소한의 명령어를 구현하는 프로그램 파일을 저장한다.
/etc/apache2, /etc/httpd Apache Web Server의 설정 정보를 저장한다.
/etc/nginx Nginx 웹 서버의 설정 정보를 저장한다.
/etc/mysql MySQL 데이터베이스 서버의 설정 정보를 저장한다.
/opt/etc 추가적으로 설치된 프로그램의 설정 정보를 저장한다. 존재하지 않을 수도 있다.
/etc/mysql/my.cnf MySQL 데이터베이스 서버의 주 설정파일이다.
/etc/passwd, /etc/group 사용자 및 그룹 정보를 저장한다.
/etc/shadow, /etc/gshadow 사용자 및 그룹의 인증 비밀번호를 암호화하여 저장한다. 일반적으로 관리자 및 권한 있는 프로그램만이 접근할 수 있다.
/etc/hostname 현재 시스템의 호스트네임을 저장한다.
/etc/hosts 호스트네임의 실주소를 탐색할 때 사용되는 정적 순람표이다.
/etc/fstab 현재 시스템에 등록할 파일시스템의 목록을 저장한다.

 

▶ 장치 및 가상 파일 : 운영 체제를 구성하기 위한 파일, 각각 파일은 커널 기능과 밀접한 관련

디렉터리 및 파일 설명
/dev 각종 디스크 및 장치 파일을 제공한다.
/sys 하드웨어(주변기기 등) 및 플랫폼에 접근할 수 있도록 한다.
/proc 프로세스 및 시스템 정보를 제공하는 가상 파일시스템이 위치한다.
/proc/sys 운영체제의 동작을 제어할 수 있는 각종 파라미터가 위치한다.
/proc/self/net (또는 /proc/net) 운영체제 네트워크 계층의 다양한 정보를 제공한다.
/dev/null, /dev/zero, /dev/full, /dev/random, /dev/urandom 실제 물리적인 장치를 나타내지는 않지만 자주 사용되는 특수 파일.
/dev/pts 유사터미널(pseudoterminal) TTY 장치가 위치한 디렉터리로 SSH 터미널 또는 터미널 에뮬레이터 등에서 사용된다.
/dev/stdin -> /proc/self/fd/0 파일 디스크립터 0, 즉 표준입력(standard input)에 사용된 파일을 나타내는 심볼릭 링크.
/dev/stdout -> /proc/self/fd/1 파일 디스크립터 1, 즉 표준출력(standard output)에 사용된 파일을 나타내는 심볼릭 링크.
/dev/stderr -> /proc/self/fd/2 파일 디스크립터 2, 즉 표준오류출력(standard error)에 사용된 파일을 나타내는 심볼릭 링크.

 

▶ 프로그램 및 라이브러리 : 프로그램의 명령어가 저장된 위치, 이들을 실행하기 위한 라이브러리의 위치

디렉터리 설명
/bin, /sbin 운영체제 초기 부팅 시 필요한 최소한의 명령어를 구현하는 프로그램 파일을 저장한다.
/boot 커널이나 부트로더 옵션 등 부팅에 필요한 파일을 저장한다.
/lib, /lib64, /libx32 운영체제 초기 부팅 시 필요한 최소한의 라이브러리 파일을 저장한다.
/opt 추가적인 프로그램을 저장한다.
/usr/bin 각종 명령어 및 프로그램 파일을 저장한다.
/usr/sbin 시스템 관리자가 주로 사용하는 각종 명령어 및 프로그램 파일을 저장한다.
/usr/lib, /usr/lib64, /usr/libx32 시스템에서 공유되는 라이브러리 파일을 저장한다.
/usr/share 기타 시스템에서 공유되는 파일을 저장한다.

 

▶ 임시 파일 : 운영 체제 및 서비스에서 사용하는 임시 디렉터리 또는 파일을 의미한다.

디렉터리 설명
/tmp 임시 파일을 저장한다. 시스템 재시작(재부팅) 시 저장한 파일이 삭제될 수 있으며, 용량에 상당한 제한이 있을 수 있다. 디스크 또는 메모리상(tmpfs)에 존재할 수 있다.
/var/tmp 임시파일을 저장한다. 시스템 재시작(재부팅)시에도 일반적으로 유지된다.
/run (/var/run) 부팅 후 생성된 각종 런타임 데이터 및 IPC 소켓 등이 이곳에 위치한다. 일반적으로 디스크에 저장되지 않고 메모리 상에서만 존재한다(tmpfs).
/var/run/postgresql PostgreSQL 소켓 등이 위치한다.
/var/run/mysql MySQL 소켓 등이 위치한다.
/dev/shm Linux 'shm_open(3)' C라이브러리 함수에서 사용된다. 일반적으로 디스크에 저장되지 않고 메모리 상에서만 존재한다(tmpfs). 시스템에 따라 존재하지 않을 수도 있다.

 

 

출처 : dreamhack.io

댓글