1) 파일 시스템 개요
물리적 저장장치에 파일을 생성, 저장, 관리하기 위한 논리적인 자료구조
물리적인 저장장치는 논리적인 파티션(partition)으로 나누어지며, 파티션 별로 고유한 파일 시스템을 생성함

부트 블록(Boot Block)
- 운영체제를 부팅하거나 초기화하기 위한 부트스트랩 코드를 담고 있음
슈퍼 블록(Super Block)
- 파일 시스템을 관리하기 위한 정보를 담고 있음
아이노드 리스트(inode list)
- Data Block
: 실제 파일의 내용이 저장되는 블록(고정 크기 블록들로 이루어져있음)
2) 파일시스템과 링크(link) 파일
1) Link
링크는 기존 파일에 대한 또 다른 접근 포인트를 만들어주는 기능
하드링크(Hard Link)와 심볼릭 링크(Symoblic Link)로 구분함

2) 하드링크(Hard Link)
📢 하드 링크(Hard Link)

- 기존 파일과 동일한 inode number를 가지는 파일을 생성하여 접근
- 동일 파일시스템에서만 가능하며 디렉터리는 하드 링크가 불가능
- inode를 참조하는 파일이 있으면 삭제할수 없음
- 실습

3) 심볼릭 링크(Symbolic Link)
📢 심볼릭 링크(Symbolic Link)

- 원본 파일에 대한 경로를 파일내용에 담고 있음
- 파일시스템에 제한이 없고, 디렉터리도 가능
- 원본 파일이 삭제되면 심볼릭 링크는 끊어지게
- 실습

(3) 디렉터리 관리
1) 파일의 종류

1. 일반(정규) 파일
- 텍스트, 실행 파일 등을 바이너리나 텍스트형태로 저장하고있는 일반파일
- 표준 파일 입출력 시스템 호출을 통해 참조
2. 디렉터리
- 디렉터리에 포함된 파일명과 inode number 정보를 목록으로 가지고 있는 파일
- 명시적인 시스템 호출을 통해 참조
3. 특수파일
- 기능에 따라 다양한 형태로 존재, 표준 입출력 시스템 호출을 통해 참조됨
- 프로세스간 통신(IPC : Inter-Process Communication) 목적의 특수 파일 - 파이프(Pipe), 소켓(Socket)
- 디스크, 프린터, 터미널 등의 입출력 장치를 사용하기 위한 장치 파일
- 장치 파일 (버퍼링)블록 장치 파일 : 블록 단위로 입출력 (비 버퍼링)문자 장치 파일 : 문자 단위로 입출력
2) 디렉터리 내용 출력


① : 파일 종류 및 권한
② : 하드링크 개수
③ : 소유자
④ : 소유 그룹
⑤ : 파일 크기
⑥ : 최종 변경(수정) 일시
⑦ : 파일 명
- 파일 종류
-
: 일반(정규) 파일
d
: 디렉터리
b
: 블록 장치 파일
c
: 문자 장치 파일
I
: 심볼릭 링크 파일
p
: 이름있는 파이프
s
: 유닉스 도메인 소켓
📢 접근권한
유형 | 의미 |
---|
소유자(User) | 파일 소유자의 접근 권한 |
소유그룹(Group) | 파일 소유 그룹의 접근 권한 |
기타사용자(Others) | 소유자와 소유그룹에 속하지 않는 모든 사용자의 접근 권한 |
- 접근권한 종류

3) 디렉터리 간 이동

- 절대 경로명 : 최상의 루트 디렉터리(/) 기준 경로 표시
- 상대 경로명 : 현재 디렉터리 기준 경로 표시
4) 디렉터리 생성

5) 디렉터리 삭제

(4) 파일 권한 관리
1) 파일 접근권한 변경(chmod)

- 대상 : u, g, o, a(all)
- 연산자 : + (추가), - (제거), = (설정)
📢 실습

2) 파일 소유자 OR 소유그룹 변경(chown/chgrp)

- 슈퍼유저(root)만이 실행가능한 명령어
- 일반 사용자 계정으로는 허용하지 않는 명령어
📢 실습

3) 접근권한 마스크 설정(umask)
파일 또는 디렉터리 생성 시 접근권한을 설정하기 위해 사용되는 값
- 제거할 접근권한 정보가 설정되어 있음
- 권장 설정 : 로그인하는 모든 사용자에게 적용되는 환경설정파일에 022(0022)이상으로 umask 값을 설

- 예시

- umask 333 은 쓰기(2)와 실행(1) 권한을 제거함
4) 파일 검색(find)
시스템 내의 파일 중, 사용자가 원하는 파일을 찾을 때 사용
특정 명령을 실행하게 할 수 도있음

📢 path
최상위 루트 디렉터리(/) 부터 시작하는 절대 경로너 현재 디렉터리(.)부터 시작하는 상대 경로로 지정 할 수 있음
EX) e.g find / 검색_조건(expression) : 최상위 루트 디렉터리 이하 파일 검색
📢 action
- AND 연산
- OR 연산
- NOT 연산
⭐소유자 및 소유그룹이 존재하지 않는 취약점
발생사유
- 현재 삭제된 사용자 계정 또는 그룹의 소유
- 관리 소홀로 인해 생성된 파일
보안위협
- 해당 파일 및 디렉터리의 UID 또는 GID 를 특정 사용자 계정의 UID나 특정 그룹의 GID를 악의적으로 변경 할 수 있음
- 이로인해 소유자 또는 소유그룹의 권한으로 해당 파일에 접근할 수 있는 위협이 발생
조치 방법
- 불필요한 경우 삭제
- 필요한 경우 소유자나 소유그룹을 변경
⭐World writable 파일 취약점
개요
- 파일의 소유자나 그룹이 아닌 Others에 대해 쓰기가 허용된 파일을 뜻함
보안 위협
- 중요 파일이 world writable 설정이 되어있으면 비인가자에 의해 파일이 악의적으로 변경되는 위협이 발생
조치 방법
- World writable 파일이 불필요한 경우 삭제
- 필요한 파일인 경우 Others에 쓰기 권한 제거