2022 데이터 사이언스/Linux

16. 권한(3): 소유권과 권한 적용

gool 2022. 5. 30. 17:09
허가권과 소유권이 적용되는 방식을 아는 것은 매우 중요하다.

 

 

 

이번에는 소유권에 대해 간단히 알아본 후, 허가권과 소유권이 적용되는 방식을 살펴볼 예정이다.

허가권과 소유권의 적용 방식은 권한 파트에서 가장 중요한 개념이다.

 

 

 

소유권의 의미

 

소유권은 파일이나 디렉토리를 어느 사용자와 그룹이 소유하고 있는지를 나타내는 권한이다.

ls -l로 출력되는 정보들 중 링크 개수 뒤에 따라오는 사용자명과 그룹명이 소유권을 나타낸다.

 

 

소유권은 두 개의 영역으로 구분된다.

앞에 나오는 정보가 계정명(UID), 즉 파일이나 디렉토리를 소유하고 있는 사용자를 의미하고,

뒤에 나오는 정보는 그룹명(GID)으로, 파일이나 디렉토리를 소유하고 있는 그룹을 의미한다.

 

 

 

소유권 변경

 

chown 명령어로 소유권을 변경해줄 수 있다.

 

 

chown   [옵션]   권한값   대상   [대상]   ...   [대상]

 

 

* 권한값 작성 방식은 아래와 같다. (' : '을 ' . '로 대체 가능)

  • UID   : 소유권의 UID 영역 변경
  • UID:GID   : 소유권의 UID, GID 변경
  • UID:   : 소유권의 UID, GID를 특정 사용자의 UID, GID로 변경
  • :GID   : 소유권의 GID 영역 변경

 

 

~itbank 디렉토리 내부에 test1, test2, test3 파일을 생성하고,

test1은 UID 형태, test2와 test3는 UID:GID 형태의 권한값을 사용해 소유권을 변경해주었다.

 

 

 

test1, test2, test3의 소유권을 원래대로 돌려놓은 뒤, 이번에는 ' : ' 대신 ' . ' 기호를 사용해본다.

test1은 UID:GID 형태, test2는 UID: 형태, test3은 :GID 형태의 권한값을 사용했다.

 

itbank. 권한값을 사용한 test2의 경우 id itbank 명령어로 출력되는 UID와 GID를 따라간다.

 

이로써 소유권에 대해 간단히 알아보았다.

 

 

 

허가권과 소유권이 적용되는 방식

 

허가권과 소유권이 어떻게 적용되는지 아는 것은 매우 중요하다.

파일/디렉토리에 권한을 적용하기 위해 작업 주체와 작업 대상의 UID, GID를 확인하고 비교한다.

 

 

1) 작업 주체와 작업 대상의 UID, GID 확인

 

(1) 작업 주체

작업 주체는 작업을 수행하는 사용자, 즉 명령을 입력하는 사용자를 말한다.

/etc/passwd 파일을 확인하거나 id 명령어를 통해 사용자 정보 중 UID, GID를 확인하면 된다.

 

(2) 작업 대상

작업 대상은 작업(명령)의 대상이 되는 파일이나 디렉토리를 말한다.

ls 명령어의 -l 옵션이나 -n 옵션을 통해 소유권의 UID, GID를 확인할 수 있다.

 

 

2) 작업 주체와 작업 대상의 UID, GID 비교

 

(1) UID 비교

작업 주체와 작업 대상의 UID가 일치하면 Owner 영역의 권한이 적용된다.

UID가 일치하지 않으면 GID의 비교로 넘어간다.

 

(2) GID 비교

작업 주체와 작업 대상의 GID가 일치하면 Group 영역의 권한이 적용된다.

UID와 GID가 모두 일치하지 않으면 Other 영역의 권한이 적용된다.

 

 

지난 포스팅에서 진행한 세 번의 실습에서 확인한 결과,

웹 페이지 정상 출력 여부를 결정한 것은 Other 영역의 권한이었고,

FTP 접속과 itbank 홈 디렉토리로의 파일 전송 여부를 결정한 것은 Owner 영역의 권한이었다.

 

이와 같이 권한이 적용된 이유를 살펴보자.

웹 서버에 파일을 올리는 작업의 주체는 apache 사용자이다.

작업의 대상은 index.html 파일과 /var/www/html 디렉토리이다.

 

그런데 아래 화면을 보면,

apache의 UID와 GID가 index.html, /var/www/html의 그것들과 불일치하는 것을 볼 수 있다.

작업 주체와 작업 대상의 UID와 GID가 모두 일치하지 않으므로 Other 영역의 권한이 적용된다.

 

 

반면, itbank 홈 디렉토리로 파일을 전송하는 작업의 주체는 itbank이고, 대상은 ~itbank이다.

itbank 사용자와 /home/itbank의 UID가 일치하기 때문에 Owner 영역의 권한이 적용된다.

 

 

 

 

권한 적용 실습

 

1 ~ 4번은 Windows 명령 프롬포트에서 진행하고, 5번만 PuTTY에서 진행한다.

2번과 3번의 ls, cd 명령어 모두 FTP에서도 동작한다.

 

 

* 300문제_문제지.txt (010 예시 포함)

 

 

 

(풀이)

 

1 ~ 5번의 작업이 모두 가능한 작업 주체와 작업 대상, 사용 권한은 다음과 같다.

작업 대상은 기본적으로 처음에는 itbank 홈 디렉토리에서 시작한다.

 

 

          작업 주체          작업 대상          사용 권한

1.          itbank              ~itbank       Owner 영역의 x 권한

2.          itbank              ~itbank       Owner 영역의 r 권한

3.          itbank                 html         소유권에 따른 영역의 x 권한

4.          itbank                 html         소유권에 따른 영역의 w 권한

5.         apache                html         Other 영역이 x 권한 (apache: UID, GID 모두 apache)

 

 

 

'2022 데이터 사이언스 > Linux' 카테고리의 다른 글

18. 프로그램 설치(1): tar  (0) 2022.05.31
17. 권한(4): 특수 권한  (0) 2022.05.30
15. 권한(2): 웹 서버와 http  (0) 2022.05.30
14. 권한(1): 허가권  (0) 2022.05.29
13. 사용자와 그룹(4): 그룹  (0) 2022.05.28