관심쟁이 영호
[#5] 시스템보안 - 권한관리 세부내용(운영체제)/chmod, umask 본문
안녕하세요!
관심쟁이 영호입니다.
오늘은 권한관리에 대해서 공부를 해보겠습니다!
바로 보시죠.
권한관리는 한마디로,
시스템 접근 성공 후! 저장 정보의 접근 통제 또는 시스템 조작 명령의 사용권한을 통제하는 것인데요.
운영체제의 권한관리
-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--)
이렇게 출력이 되는 것을 살펴볼 수 있어요!
'학교공부 > 시스템보안' 카테고리의 다른 글
[#3.2] 시스템 보안 - 접근 제어 모델(Access Control Model) (0) | 2020.11.07 |
---|---|
[#6] 시스템 보안 - 권한 관리 (Data Base) (0) | 2020.11.06 |
[#3] 시스템 보안 - 세션 관리, 접근 제어, 권한 관리 (0) | 2020.11.04 |
[#1]시스템보안의 첫걸음! (0) | 2020.11.03 |
[#2] 시스템 보안 - 계정관리 (0) | 2020.11.02 |