조회 수 6804 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄

리눅스는 윈도우와 다른 파일시스템을 사용하고 있기 때문에 리눅스를 제대로 관리하기 위해서는 디렉토리구조와 파일 시스템에 대한 이해가 매우 중요합니다.
이번장에서는 리눅스의 파일시스템에 대해서 알아보도록 하겠습니다. 주요 내용은 다음과 같습니다.
- 리눅스 시스템 디렉토리 구조
- ext 파일시스템의 이해
- 파일구조
- 파일링크
- 파일 허가권과 소유권
- 파일시스템 마운트

 

1. 파일시스템이란?

파일시스템을 사전에서 찾아보면 ‘컴퓨터 파일에 이름을 붙이고, 저장이나 검색을 위해 논리적으로 그것들을 어디에  위치시켜야 하는지 등을 나타내는 방법’으로 정의하고 있습니다. 즉, 우리가 차를 운전하려면 반드시 지켜야 하는 도로 교통법이 있듯이 파일을 디스크에 저장할 때 어떠한 방식으로 저장되고 읽혀지고 지워지는지를 정한 법이라고 생각하면 됩니다.

 

리눅스에서 사용되는 파일시스템의 종류와 특징은 다음과 같습니다.
(진하게 표시된 것은 대표적으로 많이 사용되는 파일시스템)
 ▪ minx : 과거 Minix에서 사용되었던 파일 시스템으로 리눅스 파일 시스템 대부분의 기능을 제공. 현재는 사용되지 않음

  ▪ xiafs : Minix에서 파일 이름과 파일시스템의 제한을 보완한 버전으로, 이 파일 시스템에는 추가된 새로운 기능은 없음
   (마찬가지로 현재는 사용되지 않음)

  ▪ msdos : Windows 98이전에서 사용하던 FAT(File Allocation Table) 파일 시스템

  ▪ umsdos : msdos파일 시스템에서 긴 파일명과 소유자, 접근 허가, 링크등을 사용할 수 있도록 확장한 파일시스템

  ▪ isofs : ISO 기준을 따르는 표준 CD- ROM의 파일 시스템

  ▪ hpfs : OS/2의 파일 시스템(읽기 전용)

  ▪ nfs : 네트워크상에 있는 컴퓨터간 파일 공유를 위한 파일시스템

  ▪ sysv : System v/386, Xenix, Coherent 파일 시스템

  ▪ ext : 리눅스 초기의 파일 시스템

  ▪ ext2 : 하나의 파일에 대해서 스토리지 영역 할당이 block mapping 구조로 되어 있어, 확장성에 있어서 유리함

    CD/DVD이미지와 같이 대용량 파일 생성/삭제시에 storage block 을 할당/삭제 하는데 많은 시간이 걸리는 단점이 있음

  ▪ ext3 : ext2 파일시스템에 저널링(Journaling)을 지원하도록 확장된 파일시스템. 현재 리눅스에 가장 많이 사용되고 있음
   ※ Journaling : 변경을 기록하는 로그(journal)를 두어 시스템 비정상 종료시 파일 시스템 복구를 쉽게 하는 방법

  ▪ ext4 : ext3를 확장한 파일시스템으로 Extent 라는 기능을 제공하여, 파일에 디스크 할당시 물리적으로 연속적인 블럭을 할당할 수 있도록 하여, 파일 접근 속도 향상 및 단편화를 줄이도록 설계된 파일시스템

 

정리하자면, 오랜기간 동안 ext2 파일시스템을 안정적이고 뛰어난 성능으로 표준 파일시스템으로 채택되어 왔지만, 몇 가지 문제점으로 인해 현재는 ext3, ext4가 사용되고 있습니다.

 

또한, 리눅스의 파일시스템은 윈도우 파일시스템(FAT, NTFS)과는 다른 몇 가지 특징을 가지고 있습니다.
  ▪ 파일의 확장자는 필요 없으며 파일의 특성을 알리기 위해 확장자 사용가능  ex) *.c, *.java

  ▪ '.' 으로 시작하는 파일은 숨겨진 파일('ls -a' 명령으로 보임)

  ▪ '.'은 현재 디렉토리, '..' 는 부모 디렉토리

  ▪ 파일 시스템의 크기는 최대 2Tib ~ 16 TiB (변동 가능)파일의 크기는 최대 16GiB ~ 2 TiB (변동 가능)


 

2. 리눅스 시스템 디렉토리의 구조

리눅스는 루트(/) 디렉토리를 근간으로 하여 여러 개의 디렉토리가 트리 구조로 되어있습니다.

 

1) / : 루트 디렉토리
    - 리눅스 파일 시스템으로 마운트된 최상위 디렉토리(윈도우의 로컬디스크(C)와 유사함)

 

2) /boot : 부트 디렉토리
    - 커널 및 부트 로더 관련 파일들이 존재

 

3) /etc : 시스템 설정 파일 디렉토리
    - 각종 중요한 설정 파일과 시스템 초기화 파일을 담고 있는 디렉토리.
    - TCP/IP, 메일서버, 웹서버, FTP서버등 네트워크 설정에 관련된 파일이 위치.
    - 사용자 계정정보 및 암호 정보를 가지고 있는 파일이 위치

 

4) /bin : 기본 실행파일 디렉토리
    - 시스템 조작에 관련된 기본적인 명령어가 들어있는 디렉토리

 

5) /dev : 장치 디렉토리
    - 리눅스 시스템에 필요한 블록과 문자 디바이스 파일들이 위치

 

6) /home : 사용자 계정 디렉토리
    - 사용자 계정이 생성되는 위치(윈도우의 Users 폴더와 동일)
    - 계정 홈 디렉토리는 /etc/skel 디렉토리에 있는 디렉토리 및 파일들이 복사됨

 

7) /lib : 공유 라이브러리 디렉토리
    - 프로그램들이 의존하고 있는 라이브러리 파일들이 담겨있음(module 단위)

 

8) /proc : 시스템 정보 디렉토리
    - 커널에 대한 정보를 가지고 있는 가상 파일 시스템으로 커널의 어떤 기능을 제어할 수 있는 역할

 

9) /sbin : 시스템 관리에 디렉토리
    - 시스템 점검 및 복구 등 시스템 관리에 관련된 실행 파일의 위치

 

10) /var : 가변 자료 저장 디렉토리
    - 시스템 운영중에 시스템 자료 데이터가 변경될 때 자료들이 저장(로그, 메일 등)

 

11) /usr : 사용자 프로그램 디렉토리
    - 윈도우로 예를들면 program files 폴더와 같은 의미

 

12) /lost+found : 파일 시스템 복구시 문제 파일이 생성되는 디렉토리

 

13) /media : 마운트 디렉토리

 

14) /tmp : 임시 디렉토리
 

 

3. 리눅스 파일 및 디렉토리 구조

1) 파일구조

리스트 `ls -al` 명령을 입력하면 수 많은 파일과 디렉토리를 볼 수 있으며 구조는 다음과 같습니다.

filesystem_01.jpg

 

① 파일유형
제일 처음 필드는 파일의 유형을 나타냅니다. 총 5개의 유형이 있으며 각 유형별 설명은 다음과 같습니다.

   -  :  일반 파일
   d  :  디렉터리
   b  :  블록 디바이스(/dev)
   c  :  문자 디바이스(I/O)
   l  :  링크(하드 링크, 심볼릭 링크)
        이중 링크는 윈도우 환경에서 바로가기 아이콘과 의미가 같으며, 하나의 파일/폴더를 다른 이름으로 연결해주는 역할
        파일/폴더의 이름/경로가 길어서 이를 단축시키고자 할 때 주로 사용됩니다.

 

② 파일허가권
해당 파일이나 디렉토리에 접근할 수 있는 권한을 나타냅니다. 리눅스에서는 접근권한을 크게 사용자, 그룹, 기타로 구분하며 각각 읽기, 쓰기, 실행 권한을 독립적으로 제어할 수 있습니다.
        rwx               rwx             rwx
  사용자(User)   그룹(Group)   기타(Other)


   r  :  Read 파일 읽기 권한
   w  : Write 파일 쓰기/지우기 권한
   x  : eXecute 바이너리 파일 실행 권한

 

예로, A라는 디렉토리의 허가권이 `rwxr--r--`이라면 소유자는 모든 권한을 가지지만 같은 그룹의 구성원과 기타 모든 사용자는 읽기 권한만 부여한다는 의미가 됩니다.

리눅스의 파일허가권은 보안과도 연관된 상당히 중요한 요소이기 때문에 정확한 이해가 필요합니다.

 

③ 링크 수

 

④, ⑤ 소유자 명, 그룹 명 : 파일이나 폴더에 대한 사용자, 그룹의 소유권 표시

 

⑥ 파일 크기

 

⑦ 마지막 변경일

 

⑧ 마지막 변경 시간

 

⑨ 파일/폴더명


 

?

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
9 Linux Server Fedora(페도라) Linux 12 소개 및 설치 file 송재진 2009.12.21 11066
8 Linux Server 문서편집기의 사용 - vi editor file 송재진 2011.11.05 9586
7 Linux Server 계정 관리 1 - 사용자 계정생성/삭제 file 송재진 2013.04.30 9363
6 Linux Server Linux 사용을 위한 기초 명령어 1 송재진 2009.12.24 7168
» Linux Server 파일시스템 관리 1 - 리눅스 파일시스템의 이해 file 송재진 2013.11.07 6804
4 Linux Server 파일시스템 관리 2 - 하드링크와 소프트링크 1 file 송재진 2013.11.25 5199
3 Linux Server 계정 관리 3 - PAM 모듈을 이용한 로그인 관리 file 송재진 2013.07.24 4298
2 Linux Server 계정 관리 2 - chage를 이용한 비밀번호 관리 file 송재진 2013.07.23 3676
1 Linux Server 리눅스의 부팅과 Run Level(실행레벨) file 송재진 2013.04.01 3568
Board Pagination Prev 1 Next
/ 1
© k2s0o1d6e0s8i2g7n. ALL RIGHTS RESERVED.