본문 바로가기

STUDY/ㄴ LINUX

리눅스 파일시스템의 이해

리눅스 파일시스템에 대한 간단한 이해를 돕고자 설명합니다.

리눅스는 컴퓨터에 저장된 프로그램, 문서, 데이터베이스, 문서 파일을 관리하는 파일시스템(File System)을 가지고 있습니다. 파일시스템이란 파일을 저장하거나 검색, 파일에 이름을 붙이는 등 논리적으로 어디에 위치시켜야 하는지등을 나타내는 방법이라고 할 수 있습니다. 리눅스가 시작되면 자동으로 파일 시스템은 실행됩니다.
이와같이 파일개념과 조작에 대해서 배우겠습니다.

파일의 개념
리눅스 시스템은 디렉토리, 일반파일, 특수파일등 세종류의 파일을 가지는데, 사용자가 이용할 수 있는 데이터의 실체를 의미하며 시스템이나 응용프로그램도 파일로 보며 프린터, 키보드, LAN카드, 마우스 등도 파일로 볼 수 있습니다. 모든자원을 리눅스는 파일로 다룹니다.
여기서 일반파일이란 평상시 쓰는 파일을 말하며, 디렉토리파일이란 파일과 마찬가지로 디스크에 저장되어 다른파일을 조직하고 액세스하는데 필요한 정보를 가지고 있습니다. 디렉토리 안에는 파일을 액세스하는데 필요한 정보를 가지고 있습니다.
특수파일이란 리눅스가 지원하는 디바이스를 가리킵니다.예) window에서는 C:, D:등로 표시되는데 리눅스시스템에서는 /dev/hda1, /dev/hda5와 같이 사용됩니다. 컴퓨터의 모든자원 (키보드, 모니터, 마우스, 디스크드라이브등) 이 됩니다.

문서(Text)파일과 이진(Binary)파일
문서파일은 키보드로 입력받은 값만을 가지고 있는데 ASCII문자로 구성되어 있습니다.
ASCII문자는 대소문자, 숫자, 공백, 탭, 제어문자, 문장부호 를 포함하여 128개의 코드로 구성되어 있습니다.

이진파일은 문자가 아닌 데이터파일이 들어있습니다. 이진파일은 "0","1" 값으로 구성되며 실행파일이라고 부릅니다.

트리구조의 이해
리눅스파일시스템은 파일과 디렉토리의 계층적 구조를 가지고 있습니다.
최상위는 루트(root)디렉토리에 기반을 두고 있으며 이 디렉토리를 부모디렉토리라고 합니다.
통상 "/"로 표시합니다. 루트디렉토리를 제외하고는 모든 디렉토리가 자식디렉토리라고 볼 수 있습니다.

디렉토리의 종류
/bin : 각종 기본 프로그램포함 보통 리눅스 명령어가 저장
/boot : 부팅할때 부팅에 관련된 파일들 즉, 커널이미지와 부팅정보 포함
/dev : Device 파일을 포함(다른 디바이스를 추가하기 위해 사용)
/etc : 시스템관리자를 위해 필요한 파일을 담아 놓는다.
/home : 사용자들이 사용할 수 있는 독립적인 공간
/lib : 시스템프로그래밍을 위한 각종 라이브러리 포함
/proc : 커널의 기능을 제어하기 위하여 커널에 대한 정보를 담고 있는 가상파일시스템
/tmp : 리눅스 시스템이 사용하는 임시 파일저장
/var : 현재 운영중인 시스템 자료의 모든 변경 사항을 기록하는 디렉토리

홈디렉토리
루트 디렉토리 밑에는 리눅스 시스템을 위한 특별한 디렉토리로 구성되어 있으며, 이러한 디렉토리는 중요한 파일로 저장되어 있기 때문에 사용자가 자료를 저장하기 위해선 잘 정돈된 디렉토리가 필요합니다.

시스템관리자가 사용자를 등록할때 기본적인 전용공간을 주는데 이것을 홈디렉토리라고 합니다.
소유권(Permission)과 보호(Protection)

리눅스 파일 시스템에서 파일을 액세스하기 위해서 각 파일에 대해 사용권한을 설정합니다.
사용권한은 3종류가 있습니다.

Read : 읽기만 가능
Write : 쓰기만 가능
Execute : 실행만 가능(명령어로 사용가능)

또한 리눅스 시스템을 사용하는 사람들을 세개의 소유자, 그룹 그리고 나머지 모든 사람들로 나눌 수 있습니다.

Owner : 파일이나 디렉토리를 처음만든사람
Group : 사용자는 특정한 그룹에 속하며 그룹에 속한 다른사람들을 포함
Public : 현재 사용자 계정을 가진 모든사람

파일권한
사용권한을 알아보려면 "ls -al"명력어를 사용합니다.
"-"일반파일 "d"는 디렉토리를 뜻합니다.

r(read) 읽기권한
w(write)쓰기권한
x(execute)실행권한
-(none)사용권한이 부여되지 않음.

파일모드(MODE)
4: 읽기(100)
2: 쓰기(010)
1: 실행(001)
0: 사용권한이 부여되어 있지 않음(000)

파일 사용권한 변경(chmod)
"chmod"명령어는 파일이나 디렉토리의 사용권한을 변경시킨다.
u(user):소유자
g(group):파일이 속한 그룹
o(other):파일의 소유자가 아닌 모든 사용자와 그룹
a(all):모든 사용자 즉 소유자, 그룹 그림고 다른 사용자
+ : 권한 추가
- : 권한 제거
= : 명시된 특정한 권한만을 할당하고 나머지는 제거
파일그룹명 변경(chgrp)
파일 소유자 변경(chown)
                                                                     출처 : 리눅스원