728x90
※ Linux: Default Directory Structure.
안녕하세요. 듀스트림입니다.
오늘 포스팅은 리눅스의 기본 디렉터리 구조와 역할에 대한 내용입니다.
리눅스 파일 시스템은 계층 구조(Hierarchical Tree Structure)를 기반으로 각 디렉터리는 특정한 목적과 역할을 가지고 있습니다.
Filesystem Hierarchy Standard
Filesystem Hierarchy Standard LSB Workgroup, The Linux Foundation Copyright © 2015 The Linux Foundation Copyright © 1994-2004 Daniel Quinlan Copyright © 2001-2004 Paul 'Rusty' Russell Copyright © 2003-2004 Christopher Yeoh All trademarks and copyrights
refspecs.linuxfoundation.org
리눅스 기본 디렉터리 구조 및 역할 정리
| 디렉터리 | 주요 역할 | 특징 |
| / | 루트 디렉터리 (모든 파일 시스템의 최상위) | 시스템 전체 구조의 기준점 |
| /bin | 필수 실행 명령어 (사용자/관리자 모두 사용) | 부팅 및 단일 사용자 모드에서도 필요함 |
| /sbin | 시스템 관리자용 필수 명령어 | 일반 사용자는 보통 사용하지 않음 |
| /etc | 시스템 전체 설정 파일 | 정적인 구성파일 (읽기 위주), 예: passwd, fstab |
| /dev | 디바이스 파일 (장치 노드) | 예: /dev/sda, /dev/null, /dev/tty |
| /proc | 커널 및 프로세스 가상 파일시스템 | 동적 정보 제공, 예: /proc/cpuinfo, /proc/meminfo |
| /sys | 커널/하드웨어 설정용 인터페이스 | /proc과 유사한 동적 정보, hotplug 장치 정보 |
| /lib | 기본 시스템 명령어용 공유 라이브러리 | /bin, /sbin 명령 실행에 필요 |
| /usr | 사용자용 프로그램/라이브러리 | read-only로 마운트 가능, 대부분의 유틸리티 위치 |
| /usr/bin | 일반 유틸리티 실행 파일 | 대부분의 명령어는 여기 있음 (ex: awk, gcc) |
| /usr/sbin | 관리자용 유틸리티 (비필수) | 네트워크/서비스 데몬, 시스템 관리 명령어 |
| /usr/lib | /usr/bin, /usr/sbin용 라이브러리 | |
| /usr/local | 로컬에서 설치한 프로그램 | 패키지 관리 시스템 외의 바이너리 설치 시 사용 |
| /var | 가변 데이터 저장소 | 로그, 캐시, DB 상태 등, 시스템 운영 중 계속 변화 |
| /tmp | 일시적 임시 파일 저장소 | 부팅 시 초기화됨 (보안에 민감한 작업 주의) |
| /var/tmp | 재부팅 후에도 유지되는 임시 파일 | 장기 임시파일에 적합 |
| /home | 사용자 홈 디렉터리 | 각 사용자 설정 및 데이터 저장소 |
| /root | 루트 사용자 홈 디렉터리 | 관리자 전용, /home/root 아님 주의 |
| /boot | 부트로더, 커널 관련 파일 | /boot/vmlinuz, /boot/grub, 별도 파티션 구성 권장 |
| /run | 런타임 데이터 저장소 | 부팅 후 생성, PID/소켓/락 파일 등 (예: /run/nginx.pid) |
| /opt | 외부 패키지 또는 상용 소프트웨어 설치 위치 | Oracle, VMware, custom SW 설치 |
| /media | 자동 마운트 디바이스 (USB, CD 등) | 데스크탑 환경 중심 |
| /mnt | 수동 마운트용 임시 디렉터리 | 디스크, NAS 등 수동 마운트 |
| /srv | 서비스 데이터 저장소 (웹, FTP 등) | 예: /srv/www, /srv/ftp |
영역별 상세 설명
- /etc – 설정 파일
- 정적 텍스트 기반 설정
- 주요 예시:
- /etc/passwd, /etc/group: 사용자 정보
- /etc/fstab: 파일 시스템 마운트 정보
- /etc/hostname, /etc/hosts: 네트워크 설정
- /etc/systemd/: 서비스 설정
- /etc/postgresql/: PostgreSQL 설정
- /var – 가변 데이터
- 시스템 동작 중 크기나 내용이 변경되는 데이터 저장
- 하위 예시:
- /var/log: 시스템 로그 (syslog, journal, nginx, postgresql.log)
- /var/lib: 상태 저장소 (rpm, docker, postgresql, mysql)
- /var/cache: 캐시 파일 (yum, dnf, apt)
- /var/spool: 큐 작업 (cron, mail, cups)
- /var/tmp: 오래 보관할 임시 파일
- /usr – 사용자용 애플리케이션 및 라이브러리
- 시스템 관리자 이외의 사용자도 사용하는 프로그램
- 주의: /usr는 read-only 파티션으로 구성 가능
- 하위 구성:
- /usr/bin: 대부분의 일반 명령어 (e.g. ls, vim, psql)
- /usr/sbin: 관리자 명령어 (e.g. sshd, iptables)
- /usr/lib: 공유 라이브러리
- /usr/local: 수동 설치용 패키지 경로
- /lib, /lib64 – 기본 라이브러리
- 시스템 부팅과 필수 명령 실행에 필요한 .so 파일
- 아키텍처에 따라 /lib64(64bit) 사용
- /proc, /sys – 커널 가상 파일 시스템
- 실제 파일이 아닌 메모리상에 존재 (pseudo filesystem)
- 예시:
- /proc/cpuinfo: CPU 정보
- /proc/meminfo: 메모리 정보
- /sys/class/net/: 네트워크 장치 정보
- /proc/[pid]/: 프로세스별 정보
- /boot – 부트로더, 커널
- /boot/grub/grub.cfg: GRUB 부트 설정
- /boot/vmlinuz-*: 커널 바이너리
- /boot/initramfs-*: 초기 램디스크
- /home, /root – 사용자 홈 디렉터리
- /home/사용자명: 일반 사용자 데이터
- /root: 슈퍼유저 전용 홈
- /run – 런타임 정보
- 시스템 부팅 시 tmpfs로 마운트됨
- 예시:
- /run/nginx.pid: PID 파일
- /run/postgresql/: 소켓 파일
운영 환경에서 주로 설정하는 파티션
| 파티션 | 설명 |
| / (root) | 시스템의 최상위 루트 디렉터리 • 부트 및 기본 시스템 실행에 필수 |
| /boot | 부트로더(grub), 커널 저장소 • 루트 파티션과 분리해 업데이트 실패 시 복구 가능성 증가 |
| /var | 로그, 큐, 캐시, DB 상태 정보 등 가변 데이터 저장소 • 로그 폭증 시 / 파티션 침범 방지 |
| /home | 사용자 홈 디렉터리 • 사용자별 데이터 분리, 권한 제어 • 공유 서버 환경에서는 꼭 분리해야 보안 및 백업 용이 |
| /data | 비즈니스 데이터 저장소 (DB, 이미지, 분석 결과 등) • 용량과 I/O 분리를 위한 운영 핵심 파티션 • RAID, SSD, 별도 디스크 구성과 함께 많이 사용 |
| /tmp | 임시 작업 공간 • 보안이나 디스크 침식 방지를 위해 tmpfs 마운트하거나 별도 파티션 설정 • 접근권한 제한 필요 (noexec, nosuid) |
오늘은 여기까지~
728x90
'Linux' 카테고리의 다른 글
| Linux: rpm 다운로드 방법 (1) | 2025.08.04 |
|---|---|
| Linux: 커널 메모리 관리 파라미터 (1) | 2025.07.28 |
| Linux: OpenSSH 사용법 (0) | 2025.02.24 |
| Linux: chage 사용법 (0) | 2025.02.23 |
| Linux: 심볼릭 링크와 하드 링크 (1) | 2025.01.16 |