관심쟁이 영호

[#5] 시스템보안 - 권한관리 세부내용(운영체제)/chmod, umask 본문

학교공부/시스템보안

[#5] 시스템보안 - 권한관리 세부내용(운영체제)/chmod, umask

관심쟁이 영호 2020. 11. 5. 05:03
반응형

안녕하세요!

관심쟁이 영호입니다.

오늘은 권한관리에 대해서 공부를 해보겠습니다!

바로 보시죠.


권한관리는 한마디로,

시스템 접근 성공 후! 저장 정보의 접근 통제 또는 시스템 조작 명령의 사용권한을 통제하는 것인데요.

 

운영체제의 권한관리

-Window의 권한 관리

윈도우는 NTFS를 기본 파일 시스템으로 사용합니다!

NTFS에서 그룹 또는 개별 사용자에게 설정할 수 있는 종류로는 기본적으로 6가지가 있어요!

 

(1) 모든권한 : 디렉터리에 대한 접근 권한, 소유권을 변경하고 하위 디렉터리를 삭제할 수 있어요!

(2) 수정 : 삭제, 읽기, 실행, 쓰기 권한이 있어요!

(3) 읽기 및 실행 : 읽기, 파일 옮기기를 할 수 있어요.

(4) 디렉터리 내용 보기 : 디렉터리나 속의 파일의 이름을 볼 수있어요.

(5) 읽기 : 디렉터리의 내용을 읽기만 할 수 있어요.

(6) 쓰기 : 파일을 생성하고, 접근 권한과 설정 내용을 확인할 수 있어요.

 

이런 권한 들이 있는데, 권한들 중에서는 3가지의 규칙이 있습니다.

 

규칙1 : 접근 권한이 누적된다.

 한 그룹에는 읽기, 다른 한 그룹에는 쓰기의 권한을 주었을 때! 두 그룹 모두에 속하는 사용자는 읽기 및 쓰기 권한을 가집니다.

 

규칙2 : 파일 접근 권한이 디렉터리 접근 권한보다 우선한다.

 파일을 포함하고 있는 디렉터리의 접근 권한보다 파일에 대한 접근 권한이 우선한다는 뜻입니다! 저는 잘 이해가 안되네요. 디렉터리보다 파일의 접근 권한이 더 깊이 있을 때, 그것을 따라간다는 말인듯한 느낌인데.. ㅎㅎ..

 

규칙3 : '허용' < '거부'

 규칙 1처럼 한쪽에는 '허용' 다른 한쪽에는 '거부'의 권한을 주었을 때 두 그룹 모두 다에 속하는 사용자는 '거부'가 됩니다.

-UNIX의 권한 관리

(1) 유닉스의 디렉터리 및 파일의 내용 살펴보기

 사실상 여기가 엄청 어려워요.. 상세히 살펴보겠습니다!

임의의 디렉터리에서 ls -al 명령을 통해서 디렉터리의 내용을 보면!

 

drw-r-xr-x 117 root root 12288 Jul 28:07:43 etc가 있는 것을 살펴볼 수 있습니다!

 

하나하나 살펴보면!

 

drw-r-wr-x 파일의 종류 및 권한을 뜻합니다.
왼쪽에서 첫 번째 root 파일의 소유자
왼쪽에서 두 번째 root 파일에 대한 그룹입니다.

 

다시 drw-r-wr-x를 자세히 보겠습니다!

 

d /rw- /r-- /r-- 이렇게 나눌 수 있는데요.

표를 통해서 살펴보겠습니다.

 

이름 내용
d 파일 및 디렉터리의 종류입니다.
("-"는 일반 파일 / "d"는 디렉터리 / "l"은 링크를 나타냅니다.)
rw- 파일 및 디렉터리의 소유자의 권한입니다.
("r"은 쓰기 / "w"는 쓰기 / "x"는 실행을 나타냅니다.)
r-- 파일 및 디렉터리 그룹의 권한입니다.
("r"은 쓰기 / "w"는 쓰기 / "x"는 실행을 나타냅니다.)
r-- 해당 파일 및 디렉터리의 소유자도 그룹도 아닌 제3의 사용자에 대한 권한입니다.
("r"은 쓰기 / "w"는 쓰기 / "x"는 실행을 나타냅니다.)

숫자로도 표기가 가능합니다!

읽기 - 4, 쓰기 -2, 실행 - 1으로 나타낼 수 있습니다.

 

이것을 토대로 아까 있던 "drw-r-xr-x"를 살펴보면!

"d" = 디렉터리이며

"rw-" = 이 디렉터리의 소유자는 읽기와 쓰기가 가능하며

"r-x" =  이 디렉터리는 쓰기와 실행을 할 수 있으며

"r-x" = 제 3의 사용자도 쓰기와 실행만 할 수 있다.

 

라고 유도해낼 수 있겠네요!!

(2) 유닉스의 디렉터리 및 파일의 접근권한의 설정변경하기

이 권한 들을 명령어로 변경해 줄 수 있어요! 

"chmod" 명령어를 사용하는데요!

 

이 방법 또한 살펴보겠습니다.

먼저 예시를 보여드리면.

 

test라는 디렉터리를 만들었다고 가정했을 때!

해당 디렉터리의 ls -l을 내용은

"-rwxr-xr-x 1 root root 8640 ~~" 라고 생각을 해봅시다.

 

이것을 명령어 "chmod"로 바꾸고 싶다면!

"chmod o-x test;" 라고 해줍니다!

 

명령어를 실행 후 결과는

"-rwxr-r-- 1 root root 8640 ~~" 가 되겠죠!!

 

그럼 어떤뜻을 하는지 표로 살펴볼게요!

 

사용자 내용 연산자 내용 권한 내용
u 소유자 + 권한 추가 r 읽기
g 그룹 w 쓰기
o 기타사용자 - 권한 삭제 x 실행
a 전부다 - 불허

위에 표를 토대로

다시 "chmod o-x test"를 풀어보면!

chmod = 권한을 바꾸겠다.

o = 해당 디렉터리 또는 파일의 기타사용자에 대한 권한중에서

- = 뒤에 나오는 권한을 제거해라

x = 실행하는 권한

test = 해당 디렉터리 또는 파일의 이름은 test이다.

이렇게 나타 낼 수 있겠네요!

 

이 명령어 또한 숫자로 나타낼 수 있어요!

이진수로 나타내는데요!

            

소유자 그룹 기타사용자
ugo r-x rw-
111 101 110
7 5 6

 

이것을 chmod로 다시 재구성하면!

"test의 권한을 바꾸겠다. 소유자는 모든기능, 그룹은 r-x기능만, 기타사용자는 r기능으로만 설정해라!"

chmod 754 test  <- 이렇게 간편하게 나타낼 수 있답니다!!

(3) 파일 접근 권한의 기본설정!

 

"umask"란?

umask는 파일 또는 디렉토리를 생성할 때

기본으로 주어지는 사용권한을 설정하기 위한 기능이라고 보시면 됩니다.

umask를 지정해두면 파일을 생성할 때

생성 파일 - umask값이 된 상태로 파일 및 디렉토리에 권한을 주게 됩니다.

 

기본적으로 유닉스에 디렉토리를 생성하면 777값,  파일을 생성하면 666값을 갖도록 하는데요!

이 때 umask를 011로 지정해놓으면 디렉토리는 766, 파일은 655값의 권한을 가진상태로 생성됩니다!

이것을 다시 풀어쓰면

 

디렉토리 -> drwxrw-rw-

파일      ->  -rw-r-xr-x

이렇게 권한이 주어지고 생성이 됩니다!

 

umask 사용법.

#1: umask 022;    -> 마스크값 "022"지정

#2: mkdir testDir  -> 디렉터리 생성

#3: touch test      -> 파일 생성

 

#4: ls-al 명령어를 실행해주면

testDir = 755 (= drwxr-xr-x)

test     = 644 (= -rw-r--r--)

이렇게 출력이 되는 것을 살펴볼 수 있어요!

 

 

 

 

 

 

300x250
Comments