학교 공부/유닉스 시스템

[23-01/유닉스 시스템] 파일 접근 권한 관리하기

KimNang 2023. 4. 27. 03:25

1. 파일의 속성

다중 사용자 시스템의 특징

- 여러 사람이 하나의 시스템 사용

- 다른 사람이 내 파일을 읽거나 수정, 삭제 할 수 없도록 보안 필요

- 다른 사용자의 무단 접근으로부터 자신의 파일을 보호하는 기능으로 파일에 접근 권한을 부여하여 권한 만큼만 파일을 사용

 

파일의 속성

- 파일 종류

- 파일 접근 권한

- 하드 링크 개수

- 파일 소유자의 사용자 이름

- 파일이 속한 그룹 이름

- 파일 크기

- 파일의 마지막 수정 일시

 

■ 파일의 속성

- 유닉스에서 파일을 관리하기 위해 저장하는 정보들

- ls -l 명령으로 파일 속성을 확인할 수 있음

번호 속성 값 의미
1 - 파일 종류(- : 일반 파일, d : 디렉토리)
2 rw-r--r-- 파일을 읽고, 쓰고, 실행할 수 있는 접근 권한 표시
3 1 하드 링크 수
4 user1 파일 소유자의 로그인 ID
5 staff 파일 소유자의 그룹 이름
6 193 파일의 크기(바이트 단위)
7 Jun 19 20:24 파일이 마지막으로 수정된 일시
8 first.dat 파일명

 

파일 종류

file 파일명

문자 파일 유형
- 일반 (정규) 파일
d 디렉토리 파일
b 블럭 단위로 읽고 쓰는 블럭 장치 특수 파일
c 문자 단위로 읽고 쓰는 문자 장치 특수 파일
| 기호적 링크
p 파이프
s 소켓

 

사용 예

 

■ 파일이 속한 그룹 이름

groups [ 사용자명 ]

- 사용자명 지정

    - 인자로 지정한 사용자가 속한 그룹 이름 출력

- 인자가 없으면

    - 자신이 속한 그룹 이름 출력

 

● 사용 예

 

2. 파일의 접근 권한

- 파일을 읽고, 쓰고, 실행할 수 있는 권한

- 다중 사용자 시스템의 가장 기본적인 보안 기능

 

유닉스의 사용자 카테고리

소유자

- 일반적으로 파일을 생성한 사용자. 명령을 통해 변경할 수도 있음

 

그룹

- 파일과 동일한 그룹에 속한 사용자들

- 파일이 속한 그룹?

    - 일반적으로 파일을 생성한 사용자의 기본 그룹

    - 상위 디렉토리에 특수한 권한(setgid)이 부여된 경우 다른 그룹으로 지정

    - 명령을 이용하여 변경 가능

 

● 기타 사용자

- 소유자나 그룹 카테고리에 속하지 않은 모든 사용자들

 

접근 권한은 카테고리 별로 다르게 부여

 

기본 권한

- 읽기(r), 쓰기(w), 실행(x)

- 파일의 종류에 따라 의미 다름

권한 파일 디렉토리
읽기 파일을 읽거나 복사할 수 있음 ls 명령으로 디렉토리 목록을 볼 수 있음
(ls 명령의 옵션은 실행 권한이 있어야 사용할 수 있음)
쓰기 파일을 수정, 이동, 삭제할 수 있음
(디렉토리에 쓰기 권한 있어야 함)
파일을 생성하거나 삭제할 수 있음
실행 파일을 실행할 수 있음
(셸 스크립트나 실행 파일의 경우)
cd 명령의 사용이 가능함
파일을 디렉토리로 이동하거나 복사할 수 있음

 

접근 권한 표기 방법

■ 문자의 의미

- r : 읽기 허가, w : 쓰기 허가, x : 실행 허가, - : 허가 취소

 

■ 다양한 사용 권한 조합

접근 권한 의미
rwxr-xr-x 소유자는 읽기, 쓰기, 실행 권한 모두 가짐.
그룹사용자와 기타사용자는 읽기와 실행 권한만 가짐.
r-xr-xr-x 소유자, 그룹사용자, 기타사용자 모두 읽기와 실행 권한만 가짐
rw------- 소유자만 읽기, 쓰기 권한 가짐.
rw-rw-rw- 소유자, 그룹사용자, 기타사용자 모두 읽기와 쓰기 권한만 가짐
rwxrwxrwx 소유자, 그룹, 기타사용자 모두 읽기, 쓰기, 실행 권한 가짐
rwx------ 소유자만 읽기, 쓰기, 실행 권한 가짐

 

3. 기호를 이용한 파일 접근 권한 변경

파일의 사용 권한 변경

chmod [ 옵션 ] 모드 파일명

- 자신이 소유한 파일의 사용 권한을 변경

 

■ 옵션

- -R : 하위 디렉토리까지 모두 변경

 

■ 모드

- 변경할 사용 권한 표시

- 종류 : 기호 모드, 8진수 모드

 

기호 모드를 이용한 권한 변경

chmod 사용자카테고리 연산자 권한 파일명

memo : 사용자카테고리, 연산자, 권한이 기호모드

ex) u + w, u-x, g+x, g-wx, o=rwx, go-wx, a= rwx

■ 사용자 카테고리

사용자 카테고리 의미
u 소유자
g 그룹
o 기타 사용자
a 모든 사용자 (u+g+o)

 

■ 연산자 기호

연산자 기호 의미
+ 허가권 부여
- 허가권 제거
= 특정 사용자에게 허가권 지정

 

■ 권한 기호

권한 기호 의미
r 읽기 허가
w 쓰기 허가
x 실행 허가

 

4. 숫자를 이용한 파일 접근 권한 변경

숫자 모드

- 숫자를 이용해 접근 권한 표현

- 모든 카테고리의 접근 권한을 동시에 조정할 때 기호모드보다 편리

- 각 카테고리 별로 접근 권한을 하나의 8진수로 표현

- 3개의 8진수를 사용해 전체 접근 권한 표기

 

■ 표시 방법

- 권한이 있으면 1, 없으면 0으로 표시

  소유자 그룹 기타사용자
사용권한 rwx r-x r-x
2진수로 대체 111 101 101
8진수로 변환 7 5 5

 

진법

- 수를 표시하는 방법 중 하나

- 수를 표현하는데 0 ~ p-1까지 p개의 기호를 사용하면 p진법이라 함

- 위치에 따라 값을 다르게 보는 위치적 기수법을 사용함

 

10진수

- 자리값이 올라감에 따라 값이 10배씩 커짐

- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 등 10개의 문자로 수 표현

 

2진수

- 자리값이 올라감에 따라 값이 두배씩 커짐

- 0, 1 두 개의 문자로 수 표현

 

● 8진수

- 자리값이 올라감에 다라 값이 8배씩 커짐

0, 1, 2, 3, 4, 5, 6, 7 등 8개의 문자로 수 표현

 

접근 권한과 8진수의 대응 관계
기호 숫자(2진수) 숫자(8진수) 의미
rwx 111 7 읽기, 쓰기, 실행
rw- 110 6 읽기, 쓰기
r-x 101 5 읽기, 실행
r-- 100 4 읽기
-wx 011 3 쓰기, 실행
-w- 010 2 쓰기
--x 001 1 실행
--- 000 0 권한 없음

 

숫자 모드를 이용한 접근 권한 변경

chmod 소유자8진수 그룹8진수 기타8진수 파일명

 

5. 기본 접근 권한의 설정

기본 접근 권한

- 유닉스에서 새로운 파일이나 디렉토리를 만들때 부여되는 접근 권한

파일 기본 접근 허가권
실행할 수 없는 일반 파일
(문서 편집기로 생성한 파일)
666
실행할 수 있는 일반 파일 777
디렉토리 777

 

기본 접근권한을 출력하거나 변경

umask [ 마스크값 ]

■ 마스크 값

- 파일이나 디렉토리 생성시 부여하지 않을 권한 지정

- 이 값을 지정하면 지정한 마스크를 이용해 기본 접근 권한 지정

- 지정하지 않으면 현재 설정된 마스크값 출력

 

■ 사용 예

 

마스크

- 가리다

- 사용 권한에서 허용하지 않을 값을 지정

 

■ 마스크를 이용한 접근 권한 생성

- 기본사용 권한 XOR 마스크

 

■ 간단한 계산 방법

 

■ 대표적 마스크 값

- 기본 사용 권한 XOR 마스크

마스크 값 일반 파일 적용결과 디렉토리 적용결과 의미
022 644 755 그룹과 기타 사용자의 쓰기 권한 제거
077 600 700 그룹과 기타 사용자의 접근 권한 모두 제거
027 640 750 그룹의 쓰기 권한 제거, 기타 사용자의 접근 권한 모두 제거