본문 바로가기
정보보안/시스템보안

유닉스/리눅스 보안 파일 시스템

by 피갓자 2025. 1. 27.

유닉스리눅스 보안 파일 시스템
유닉스리눅스 보안 파일 시스템

파일 시스템 구조

부트 블록(Boot Block)

  • 부팅 시 필요한 코드를 저장하고 있는 블록
  • 파일 시스템으로부터 UNIX 커널을 적재시키기 위한 프로그램이 저장되어 있음

슈퍼 블록(Super Block)

  • 전체 파일 시스템에 대한 정보를 저장하고 있는 블록
  • 파일 시스템마다 하나씩 존재
  • 논리적 볼륨(Logical Volume)의 4096 Byte Offset에 위치하며 크기는 4,096 Byte
  • 슈퍼 블록 정보를 확인하는 명령어 : #dumpfs
  • 슈퍼 블록이 손상되었을 때 점검하는 명령어 : #fsck
  • 저장 정보 : 데이터 블록의 개수, 실린더 그룹의 개수, 데이터 블록과 단편의 크기, 하드웨어 설명, 마운트 위치 등의 정보 저장

아이노드 블록(I-Node Block)

  • 파일의 이름을 제외한 해당 파일이나 디렉터리에 대한 모든 정보를 저장하고 있는 블록
  • 파일의 실제 주소로서 파일 앞부분의 블록 번지는 직접 가지고 나머지 블록 번지는 간접 블록 번지로 가짐
  • 모든 파일은 반드시 한 개 아이노드(I-Node) 블록을 가짐
  • 저장 정보 : 파일의 소유자, 파일 유형, 접근 권한, 접근 시간, 파일 크기, 링크 수, 저장된 블록 주소

데이터 블록(Data Block)

  • 실제 데이터가 파일의 형태로 저장되는 공간
  • I-Node에 포함되며, I-Node가 몇 개의 데이터 블록을 포함하고 있음
  • 파일은 크게 두 개의 부분으로 구성되며 하나는 파일에 대한 정보(Meta Data)를 다른 하나는 실제 데이터를 담고 있는 블록

파일 시스템 특징

Minix

  • 리눅스에서 처음 사용한 파일 시스템
  • 파일 시스템당 최대 64MB 지원
  • 파일 이름 최대 30자로 지원

ext1

  • ext 파일 시스템의 첫 번째 버전
  • Extended File System을 줄여 EXTFS 또는 EXT라고 함

ext2

  • 부트 섹터(Boot Sector)와 블록 그룹(Block Group)으로 구성(Block Group은 파일)
  • 파일 시스템 테이블을 정의하기 위하여 시스템 내이 각 파일을 아이노드(I-Node) 자료구조로 표현하며 모든 정보를 Super Block과 Group Descriptor Table에 저장
  • 파일에 들어 있는 데이터는 데이터 블록에 저장되며, 데이터 블록의 크기는 같음
  • ext2 파일 시스템의 크기는 mke2fs 명령어를 통하여 파일 시스템이 만들어질 때 결정
  • 파일 시스템이 손상되었을 때 FSCK(File System Check)를 이용하여 데이터를 복원할 수 있으나 캐시에 저장된 데이터를 하드디스크에 저장하는 동안 시스템의 다운 등 문제 발생 시 파일 시스템이 손상됨
  • 비정상 종료 시 e2fsck 검사 프로그램 실행 시 검사 시간이 오래 걸리며 다른 작업 수행 불가

ext3

  • 커널 2.4 버전부터 지원
  • 사용자가 직접 데이터 보호유형과 보호 수준 결정을 할 수 있음
  • ext2 파일 시스템의 검사 시 또는 복구 시 시간이 오래 걸리거나 시스템을 사용하지 못하는 단점을 보완하기 위하여 저널링(Journaling) 기능 추가 → 데이터의 신뢰성과 작업 능률을 향상할 수 있음

ext4

  • 64비트 기억공간의 제한을 없애고, ext3 파일 시스템보다 성능을 향상했으며 호환성이 있는 확장 버전
  • 1EB(Exa Byte) 이상의 볼륨과 16TB(Tera Byte) 이상의 파일 지원
  • 지연된 할당(Allocate on Flush) 파일 시스템 기능 지원
  • 실제 파일 크기에 기반하여 블록 할당을 결정하고 향상된 블록 할당이 가능하므로 단편화를 줄이고 성능을 향상함