본 강의 노트는 한빛 미디어의 <유닉스 이론과 실습> 책을 기반으로 하고 있습니다)
ch06. 파일 접근 권한 관리하기
학습목표
- 파일의 속성과 접근 권한의 개념을 이해한다
- 접근 권한을 변경하는 방법을 익힌다
- 접근 권한을 상속하고 초기에 설정하는 방법을 익힌다
목차
- 파일의 속성
- 파일의 접근 권한
- 기호를 이용한 파일 접근 권한 변경
- 숫자를 이용한 파일 접근 권한 변경
- 기본 접근 권한의 설정
01. 파일의 속성
- 다중 사용자 시스템의 특징
- 여러 사람이 하나의 시스템 사용
- 다른 사람이 내 파일을 읽거나 수정, 삭제 할 수 없도록 보안 필요
- 다른 사용자의 무단 접근으로부터 자신의 파일을 보호하는 기능으로 파일에 접근 권한을 부여하여 권한 만큼만 파일을 사용
- 파일의 속성
- 유닉스에서 파일을 관리하기 위해 저장하는 정보들
- ls-l 명령으로 파일 속성을 확인할 수 있음
ls-l 명령
번호 |
값 |
의 미 |
① |
- |
파일 종류 (- : 일반파일, d: 디렉토리) |
② |
rw-r--r-- |
파일을 읽고,쓰고,실행할 수 있는 권한 표시 |
③ |
1 |
물리적 연결 개수 |
④ |
user1 |
파일 소유자의 사용자 명 |
⑤ |
staff |
파일 소유자의 그룹명 |
⑥ |
183 |
파일 크기 (바이트 단위) |
⑦ |
May 9 23:11 |
파일이 마지막으로 변경된 시간 |
⑧ |
first.dat |
파일명 |
파일 종류 표시
문자 |
파일 유형 |
- |
일반 (정규) 파일 |
d |
디렉토리 파일 |
b |
블럭 단위로 읽고 쓰는 블럭 장치 특수 파일 |
c |
문자 단위로 읽고 쓰는 문자 장치 특수 파일 |
l |
기호적 링크 |
p |
파이프 |
s |
소켓 |
- 관련 명령 : file 파일명
파일이 속한 그룹
- 관련 명령 : groups 사용자명
- 사용자명 지정 : 인자로 지정한 사용자가 속한 그룹 이름 출력
- 인자가 없을 경우 자신이 속한 그룹이름 출력
02. 파일의 접근 권한
- 파일을 읽고, 쓰고 실행할 수 잇는 권한
- 다중 사용자 시스템의 가장 기본적인 보안 기능
유닉스의 사용자 카테고리
- 소유자
- 일반적으로 파일을 생성한 사용자, 명령을 통해 변경할 수도 있음
- 그룹
- 파일과 동일한 그룹에 속한 사용자들
- 파일이 속한 그룹?
- 일반적으로 파일을 생성한 사용자의 기본 그룹
- 명령을 이용하여 변셩 가능
- 기타 사용자(Others)
- 소유자나 그룹 카테고리에 속하지 않은 모든 사용자들
접근 권한은 카테고리 별로 다르게 부여
접근 권한의 종류
기본권한
- 읽기, 쓰기, 실행
- 파일의 종류에 따라 의미가 다름
모드 |
일반 파일 |
디렉토리 파일 |
특수 파일 |
읽기 ( r ) |
파일 내용을 읽거나 복사할 수 있다 |
ls 명령으로 디렉토리 목록을 읽을 수 있다(ls 명령의 옵션은 실행권한이 있어야 함) |
read() 를 사용하여 파일을 읽을 수 있다 |
쓰기 ( w ) |
파일을 수정/이동/삭제 시킬 수 있다 (디렉토리에 쓰기권한이 있어야 함) |
디렉토리내에 파일을 생성,삭제할 수 있다 |
write() 를 사용하여 파일에 쓸 수 있다 |
실행 ( x ) |
파일을 실행 시킬 수 있다(실행 가능한 파일의 경우) |
cd 명령을 이용하여 디렉토리로 이동할 수 있다. 파일을 디렉토리로 이동하거나 복사할 수 있다. |
아무런 의미가 없다 |
접근 권한 표기 방법
- 문자의 의미
- r : 읽기 허가
- w : 쓰기 허가
- x : 실행 허가
- - : 허가 취소
사용 권한 |
의 미 |
rwxr-xr-x |
소유자는 읽기/쓰기/실행 권한을 모두 가지고 그룹과 기타사용자는 읽기와 실행권한만 가짐 |
r-xr-xr-x |
소유자, 그룹, 기타사용자 모두 읽기와 실행권한만 가짐 |
rw------- |
소유자만 읽기/쓰기 권한을 갖고 그룹과 기타사용자는 아무 권한도 없음 |
rw-rw-rw- |
소유자와 그룹, 기타사용자 모두 읽기와 쓰기 권한을 가지고 있음 |
rwxrwxrwx |
소유자, 그룹, 기타사용자 모두 읽기/쓰기/실행 권한을 가지고 있음 |
rwx------ |
소유자만 읽기/쓰기/실행권한을 가지고 있고 그룹과 기타사용자는 아무 권한도 없음 |
03. 기호를 이용한 파일 접근 권한 변경
- chmod [option] mode file_name
- 자신이 소유한 파일의 사용 권한을 변경
- 옵션
- -R: 하위 디렉토리까지 모두 변경
- 모드
- 변경할 사용 권한 표시
- 종류 : 기호 모드, 8진수 모드
기호 모드를 이용한 권한 변경
- Chmod <기호모드 : 사용자 카테고리 | 연산자 | 권한 > 파일명
- 사용자 카테고리
- u(user), g(group), o(others), a(anyone)
- 연산자 기호
- +(add permision) , -(delete permision), =(add permision to specific users)
- 권한 기호
- r(allow to read), w(allow to write), x(allow to execute)
04. 숫자를 이용한 파일 접근 권한 변경
숫자 모드
- 숫자를 이용하여 접근 권한 표현
- 모든 카테고리의 접근 권한을 동시에 조정 시 기호모드보다 편리
- 각 카테고리 별로 접근 권한을 하나의 8진수로 표현
- 3개의 8진수를 사용하여 전체 접근 권한 표시
표시 방법
- 사용권한
- rwx r-x r-x
- 2진수로 대체
- 111 101 101
- 8진수로 변환
- 7 5 5
사용 권한의 8진수 변환 과정
- 사용권한
- 2진수로 대체
- 2진수로 계산
- 계산 결과 합산
- 8진수 권한 값
접근 권한과 8진수의 대응관계
- table을 참고
사용 권한 |
8진수 모드값 |
rwxrwxrwx |
777 |
rwxr-xr-x |
755 |
rw-rw-rw- |
666 |
r-xr-xr-x |
555 |
rw-r--r-- |
644 |
rwx------ |
700 |
rw-r----- |
740 |
r-------- |
400 |
--------- |
000 |
05. 기본 접근 권한의 설정
: 유닉스에서 새로운 파일이나 디렉토리를 만들때 부여되는 접근 권한
- umask [mask_value]
- 기본 접근 권한을 출력하거나 변경
- 마스크 값
- 파일이나 디렉토리 생성 시 부여하지 않을 권한 지정
- 이 값을 지정하면 지정한 마스크를 이용하여 기본 접근권한 지정
- 지정하지 않으면 현재 설정된 마스크 값 출력
마스크
- 가리다
- 사용 권한에서 허용하지 않을 값을 지정
- 마스크를 이용한 접근 권한 생성
- 기본 사용 권한 XOR 마스크
- 대표적 마스크 값
마스크 값 |
실행할 수 없는 일반 파일 |
실행할 수 있는 일반 파일 |
디렉 토리 |
의 미 |
022 |
644 |
755 |
755 |
소유자는 모두 할 수 있고 그 이외의 사용자는 쓰기 금지 |
077 |
600 |
700 |
700 |
소유자 이외는 파일에 접근 금지 |
027 |
640 |
750 |
750 |
그룹은 읽기와 실행만 가능, 기타 사용자는 파일에 접근 금지 |
'Computer Science > 유닉스프로그래밍' 카테고리의 다른 글
[유닉스 시스템 프로그래밍] Ch05. 프로세스 정보 (0) | 2020.10.19 |
---|---|
[유닉스 시스템 프로그래밍] Ch04. 시스템 정보 (0) | 2020.10.19 |
[유닉스 이론과 실습] ch13. 배시쉘 프로그래밍 (0) | 2020.10.18 |
[유닉스 이론과 실습] ch04. vi 사용법 익히기 (0) | 2020.10.18 |
Introduction UNIX (0) | 2020.10.18 |