Information Security
11-2 특수 허가권(SetUID, SetGID, Sticky) 본문
특수 허가권(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 |