기어가더라도 제대로
[운영체제-김덕수교수님] 파일 보호(4/5) 본문
- File에 대한 부적절한 접근 방지
- 다중 사용자 시스템에서 더욱 필요
- 접근 제어가 필요한 연산들
- Read(R)
- Write(W)
- Execute(X)
- Append(A)
파일 보호 기법
- 파일 보호 기법은 시스템 사이즈 및 응용 분야에 따라 다를 수 있음
- 1. Password 기법
- 각 파일에 패스워드 부여
- 비현실적
- 사용자들이 파일 각각에 대한 PW를 기억해야 함
- 접근 권한 별로 서로 다른 PW를 부여 해야 함
- 2. Access Matrix 기법
- 범위(Domain)와 개채(object) 사이의 접근 권한을 명시
- 도메인을 사용자, 유저, 그룹
- 오브젝트를 파일
- 로 보면 쉽다.
- 용어 정리
- Object
- 접근 대상(file, device 등 HW/SW objects)
- Domain(protection domain)
- 접근 권한의 집합
- 같은 권한을 가지는 그룹(사용자, 프로세스)
- Access right
- <object-name, rights-set>
- ex) <"abc.txt", RW>
- Object
- 범위(Domain)와 개채(object) 사이의 접근 권한을 명시
저장 방법중 하나 - 글로벌 테이블
- table의 열만 표현하는 Access List를 둔다.
- table의 행만 표현하는 Capability list를 둔다.
- 이렇게 하는 이유는 빈공간을 최대한 남기지 않게 하기 위해서
Access List
- Access matrix의 열(column)을 list 로 표현
- 각 object에 대한 접근 권한을 나열
- Object 생성 시, 각 domain에 대한 권한 부여
- Object 접근 시 권한을 검사
- 실제 OS에서 많이 사용됨
- UNIX의 예
- 맥 터미널에서 이렇게 사용해 볼 수 있다.
- `ls -al`
- 가장 앞에 drwxr-xr-x ... 이렇게 되어 있는 열이 Acess List의 한 요소다.
- d는 디렉터리를 표현하고, - 는 파일을 의미한다.
- 단점
- 파일에 접근할 때마다 사용자의 접근 권한을 확인해야한다는 단점이 있다.
- 뷔페에 가서 음식을 다시 먹는 걸 상상해보면, 팔에 입장권을 둘러서 손목띠가 있는 손님은 그냥 다시 입장해서 먹을 수 있도록 하는 조치
- 이것이 Capability List 이다.
Capability List
- Access matrix의 행(row)을 list로 표현
- 각 domain에 대한 접근 권한 나열
- Capability를 가짐이 권한을 가짐을 의미
- 프로세스가 권한을 제시, 시스템이 검증 승인
- 시스템이 Capability list 자체를 보호 해야함
- kernel 안에 저장
- 쉽게 생각하면 도메인(사용자, 유저 그룹, 루트) 등이 개별 파일 시스템에 대해서 권한을 정의해 놓은 리스트라고 생각하면 좋다.
요약
- Global table
- Simple but can be large
- Access list
- Object 별 권한 관리가 용이함
- 모든 접근 마다 권한을 검사해야함
- Object 많이 접근하는 경우 -> 느림
- Capability list
- List 내 object 들(Localixzed info.) 에 대한 접근에 유리
- Object 별 권한 관리(권한 취소 등)가 어려움
- 예시) 파일 하나의 권한을 바꾸려면 모든 도메인에서 그 파일에 대한 접근 권한을 변경해야함
장점 합치기 Access list + Capability list
- Object에 대한 첫 접근 -> access list 탐색
- 접근 허용 시, Capability 생성 후 해당 프로세스에게 전달
- 이후 접근 시에는 권한 검사 불필요
- 접근 허용 시, Capability 생성 후 해당 프로세스에게 전달
- 마지막 접근 후 -> Capability 삭제
'CS > 운영체제' 카테고리의 다른 글
[운영체제-김덕수교수님] 파일 시스템 구현 (5/5) (0) | 2022.08.17 |
---|---|
[운영체제-김덕수교수님] 디렉토리 구조(3/5) - 파일 시스템 (0) | 2022.08.17 |
[운영체제-김덕수교수님] 파일 시스템 (2/5) (0) | 2022.08.17 |
[운영체제-김덕수교수님] 디스크 시스템 (1/5) (0) | 2022.08.17 |
[운영체제-김덕수 교수님] 가상 메모리 관리(6/6) - 다른 고려사항 (0) | 2022.08.17 |
Comments