삭제(Delete), 읽기(Read), 쓰기(Write), 실행(Execute), 추가(Append) 등의 연산을 보호
다중 사용자 환경에서 매우 중요한 개념
2. 보호 기법
명명(Naming)
파일의 이름을 알지 못하는 사용자는 파일에 접근하지 못하도록 함
암호(Password)
암호를 아는 사용자만 파일에 접근 가능하도록 함
효과적이지만 모든 파일에 접근권한별로 암호를 거는 것은 비현실적
일부 중요한 파일에만 적용하는 방식
접근 제어(Access Control)
사용자, 혹은 사용자 그룹의 파일에 대한 접근 권한을 명시한 테이블을 관리
테이블에 명시된 권한에 따라 접근을 제어함
3. 접근 제어 구현(Access Control Implementation)
전역 테이블(Global Table)
파일시스템 전체에 대한 접근 제어 테이블을 저장해두고 사용
파일시스템의 규모가 커질수록 테이블의 크기도 너무 커지고 공간낭비도 심해짐
접근 제어 리스트(Access Control List) & 권한 리스트(Capable List)
그래프의 인접 리스트 표현 방식처럼 접근 제어 테이블의 강 행과 열을 리스트형태로 관리
접근 제어 리스트는 각 파일에 접근가능한 도메인(사용자, 그룹)과 각 도메인의 접근권한을 저장
권한 리스트는 각 도메인이 접근 가능한 파일과 그 파일에 대한 권한을 저장
대부분의 OS에서는 접근 제어 리스트 방식을 사용 => 각 파일에 대한 접근권한 관리가 용이
Lock & Key 기법
각 파일은 lock을 가지고 각 도메인은 key를 가짐
lock과 key는 접근 권한을 비트로 표현한 형태
파일의 lock 과 도메인의 key를 알면 둘 사이의 접근 제어 관계를 알 수 있음
시스템에서는 key 의 리스트를 관리해야함
접근 제어 리스트 방식의 문제점과 해결
파일에 접근할 때마다 권한 확인이 필요하기 때문에 같은 사용자가 하나의 파일에 여러번 접근할 때도 매번 권한을 확인하는 비효율적인 동작을 하게됨
도메인이 파일에 접근했을 때 접근 제어 리스트를 통해 권한을 확인하고나면 도메인에게 접근권한(Capability)을 부여하고 이후 그 프로세스의 접근시에는 접근 제어 리스트 확인 절차를 진행하지 않도록 하고 도메인이 파일에 마지막으로 접근했을 때 Capability를 삭제하는 방식으로 문제를 해결