유닉스, 리눅스 등 다중 사용자 환경에서는 파일 protection이 매우 중요하다.
Protection 메커니즘은 파일 접근 타입을 제한함으로써, 접근을 제어할 수 있는 기능을 제공한다.
✅ Operation Types
Read, Write, Execute
1) 특정 파일마다 password을 걸어둔다.
그러나 유닉스, 리눅스 시스템의 모든 파일에 password를 거는 것, 그리고 그것을 일일이 기억하는 건 매우 어렵다.
따라서 이것은 불가능한 방법이다.2) Access Matrix를 사용한다.
세로축은 domain, 가로축은 object다.
D1은 F1에 Read 할 수 있다.
D1은 F2에 접근할 수 없다.
이 매트릭스를 커널에 저장해 두고, 어플리케이션이 오브젝트에 접근하려고 할 때 이 Matrix를 통해 접근 권한을 파악할 수 있다.
이 Access Matrix는 몇 가지 변형이 가능하다.
세로축은 도메인. 가로축에 오브젝트를 넣어 두고, 그 뒤에 도메인을 또 넣어준다.
만일 D1에서 프린터 사용할 수 없는데 D1에서 프린터를 사용하고자 하는 상황이다.
이 때 D2에서 프린터가 사용 가능한 경우, D1에서 D2로 Switch할 수 있는지 확인한다.
D1이 D2 Switch가 가능하면, 그 때 프린트가 가능하다.
현재 matrix에 따르면, D2는 D3, D4로 Switch가 가능하다.-> 즉, 각 도메인 간 접근권한을 새롭게 부여하기위해서 switch에 대한 domain matrix를 새롭게 만들어주면 된다.
별표 있는 것들은 COPY 권한이다.
D2가 F2에 대해 Read 권한을 가지고 있는데, #### copy해서 다른 도메인에 넘겨줄 수 있다. 이 때 Read 권한만 해 줄수도 있고, Read Copy권한까지 넘겨줄 수도 있다.
만약 D3에 카피해서 넘겨주면, D3 역시 이 권한을 다른 곳에 카피해 넘겨줄 수도 있다.
(COPY 말고, '이동'의 개념으로 Transfer인 경우도 있다.)
유닉스, 리눅스가 현재 사용중인 권한.
d1이 f1에 execute 권한을 가지고 있는데, owner권한도 있다.도메인은 자신이 owner권한을 갖고 있으면 그 오브젝트에 대해서 다른 도메인에 대해서도 owner 권한을 만들어줄 수 있다.
D2 도메인이 F2에 대해 R*, Owner권한을 가지고 있어서 자기 자신에 대해서 Write 권한까지 추가한다. 그리고 D3에게도 Write 권한을 부여한다.
d2 도메인이 d4 도메인을 컨트롤할 수 있다.
도메인 d2에서 실행하는 프로세스가 d4 도메인의 접근 권한을 마음 대로 제거할 수 있다.
그래서 d4는 read write 권한을 갖고 있었는데 d2가 read 권한을 제거했다.