Information Security

11-2 특수 허가권(SetUID, SetGID, Sticky) 본문

Linux

11-2 특수 허가권(SetUID, SetGID, Sticky)

leeeeye321 2017. 9. 23. 04:45

특수 허가권(SetUID, SetGID, Sticky)

SetUID

-실행 파일에 적용하는 권한으로 SetUID가 설정된 파일을 실행하면 해당 파일을 실행한 사용자가 아닌

해당 파일을 소유한 사용자의 권한으로 실행된다.

-보통 root가 소유한 파일에 설정한다.

 

계정 추가

 

계정 전환

 

패스워드 변경 성공

 

★패스워드를 변경한다는 것은 /etc/shadow 파일의 내용을 변경한다는 것이다.

-해당 파일의 쓰기 권한이 없어서 원래는 불가능한 작업이지만, 

패스워드 변경이 성공한 이유는 무엇일까요??

 

그 이유는 passwd 실행 파일에 SetUID가 설정되어 있기 때문입니다.

 

-프로그램 실행(=프로세스 생성)은 보통 해당 계정의 권한으로 실행되는데, SetUID가 설정되어 있으면

해당 실행 파일의 소유자 권한으로 프로세스가 동작한다.

-> passwd 실행 파일은 root가 소유한 파일이므로 실행할 때 root 권한으로 실행한다.

그래서 패스워드 변경이 가능한 것이다.

 

 [설정 방법]

기호 모드 u+s

숫자 모드 4000( 100 000 000 000 )

-> x대신 s로 권한 설정

 

테스트용 디렉터리 생성 후 이동

 

파일 생성

 

파일에 숫자모드로 SetUID 권한 설정

 

-권한 확인

-기존에 x 권한이 있었으면 소문자 s 표시

-기존에 x 권한이 없었다면 대문자 S로 표시

 

출력 리다이렉션으로 SetUID3 파일에 메시지 저장

 

SetUID3 파일의 권한 변경

 

권한 확인

 

-JOHN 계정으로 전환 후

cat 명령어 실행 시도 -> 허가 거부(권한 없음)

-root만 읽을 수 있는 파일이다.

 

root 계정으로 돌아옴

 

/bin/cat 파일에 SetUID 권한 설정

 

-다시 JOHN 계정으로 전환 후

cat 명령어 실행 -> 성공

-SetUID를 설정하여 /bin/cat 파일의 소유자인 root 계정의 권한으로 실행하여 cat 명령어가 실행되었다.

 

※만약 passwd 명령어(실행 파일)에 SetUID 설정이 안되어 있다면???

-일반 사용자들이 패스워드를 변경할 때마다 root에게 요청해야 하기 때문에 불편함이 생길 것이다.

-SetUID는 잘 사용하면 root의 일의 일부를 일반 사용자가 할 수 있게 되어 시스템 운영에 도움이 된다.

하지만 root가 소유한 파일에 적용되어 있기 때문에 잘못 사용하면 보안에 큰 위협이 될 수 있다.

 


 

SetGID

-파일을 소유한 그룹의 권한으로 프로세스가 실행된다.

-파일에는 설정하지 않고 디렉터리에 설정한다.

 

[설정 방법]

기호 모드 g+s

숫자 모드 2000 ( 010 000 000 000 )

 

디렉터리 생성 후 이동

 

파일 생성 후 소유권 확인( root root )

 

디렉터리 이동

 

SetGID 디렉터리의 소유권 확인( root root )

 

SetGID 디렉터리의 소유 그룹 변경(chown) 후 SetGID 설정(chmod)

 

변경 사항 확인

 

디렉터리 이동 후 파일 생성

 

-생성한 파일의 소유권 확인

-SetGID 설정 전에 생성한 파일 file1은 소유그룹이 root로 되어 있고

SetGID 설정 후에 생성한 파일 file2, file3는 소유 그룹이 WEB-ADMIN으로 되어 있다.

 

-파일을 생성한 계정의 그룹이 소유 그룹으로 설정되는 것이 아니라, SetGID가 설정된 디렉터리의 소유 그룹으로 파일이 생성된다.

-팀 단위 작업 시, 같은 그룹에 속한 사용자들 끼리 파일을 공유하도록 하고 싶을 때 사용할 수 있다.

 


 

Sticky

-파일에 적용 가능하나 현재는 의미가 없어졌으며, 모든 사용자가 파일을 생성, 읽기, 실행 가능한 디렉터리에 적용한다.

-Sticky가 설정된 디렉터리에서는 해당 파일을 소유한 사용자만이 해당 파일을 삭제할 수 있다.

 

디렉터리 및 파일 생성

 

숫자 모드 1000

기호 모드 o+t

 

기존에 기타 사용자 필드에 실행 권한이 없던 파일이라면 대문자 T,

 있던 파일이라면 소문자 t

 

계정 전환 후 Sticky 설정이 되어 있지 않은 디렉터리로 이동

 

 

w 권한 확인

 

r 권한 확인

 

삭제 가능

 

Sticky 설정이 되어 있는 디렉터리로 이동

 

w 권한 확인

 

r 권한 확인

 

-삭제 불가능

-Sticky가 설정된 디렉터리는 모든 권한을 가지고 있어 해당 파일을 소유한 계정(root)만 파일을 삭제할 수 있다.

'Linux' 카테고리의 다른 글

12-2 속성(attribution)  (0) 2017.09.25
12-1 사용자 패스워드 정책 관리  (0) 2017.09.24
11-1 UMASK  (0) 2017.09.23
10 파일의 권한  (0) 2017.09.22
09-3 사용자 계정 관리 명령어(group)  (0) 2017.09.21