본문 바로가기
컴퓨터공학/운영체제

[운영체제] 파일 시스템 보호

by 독서왕뼝아리 2023. 9. 7.

File Protection

파일에 대한 부적절한 접근 방지 → 다중 사용자 시스템에서 더욱 필요

접근 제어가 필요한 연산들 : Read, Write, Execute, Append

 

파일 보호 기법으론 password 기법과 access matrix 기법이 있는데 두 번째 방법에 집중할 것이다.

Password 기법

각 파일에 PW 부여

비현실적 : 접근 권한 별 서로 다른 PW 부여해야 함

 

Access Matrix 기법

범위(domain)와 개체(object) 사이의 접근 권한을 명시

*object : 접근 대상(file, device등)

*domain : 접근 권한의 집합, 같은 권한을 가지는 그룹(사용자, 프로세스)

 

Global Table

시스템 전체 file에 대한 권한을 가지는 table

⚠️ 테이블 사이즈 거대해짐, 빈공간 낭비

 

Access Control List

Access matrix의 column을 list로 표현

  • 각 object에 대한 접근 권한을 나열
  • object 생성 시, 각 도메인에 대한 권한 부여

실제 OS에서 사용

👍🏻 관리 쉬움

👎🏻 여분 공간 필요, 파일 접근할 때마다 권한 검사하는 오버헤드 발생

 

 

Capability List

Access matrix의 row를 list로 표현

  • 각 domain에 대한 접근 권한을 나열
  • domain이 권한을 제시, 시스템이 검증 승인
  • 일종의 주민증 같은 것

👍🏻 효율적, 유연성, domain과 object 간 자연스러운 관계

👎🏻 오브젝트 별 권한 관리가 어려움(ex. 파일1에 대한 권한을 모두 취소하고 싶다), 전파되는 권한 컨트롤 복잡함

⚠️ 시스템이 capability list 자체를 보호해야 함 → 커널 안에 저장

 

 

Lock-key Mechanism

Access list와 Capability list를 혼합한 개념

object는 lock을, domain은 key를 가짐

domain 내 프로세스가 object에 접근 시, key와 lock이 짝이 맞는지를 검사

시스템은 key list를 관리해야 함

 

 

그래서 결론

많은 OS는 access list와 capability list 개념을 함께 사용

출입증 발급과 비슷!

  • object에 대한 첫 접근 시 → access list 탐색 → 접근 허용 시 capability 생성 후 프로세스에게 전달 → 이후 접근 시 권한 검사 불필요 → 마지막 접근 후 capability 삭제