Linux

Linux: 기본 디렉터리 구조

dewstream 2025. 7. 22. 08:00
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