상세 컨텐츠

본문 제목

[리눅스 개념] Setuid, Setguid, Sticky bit 개념/사용법

컴퓨터 구조/리눅스의 중요한 개념

by 해공학(해킹을 공부하는 학생) 2023. 7. 6. 06:56

본문

안녕하세요 오늘은 Setuid, Setgid, Sticky bit에 대해 알아보겠습니다.

 

Setuid

setuid는 set user id의 약자로, 한 파일이나 디랙토리를 사용할때는 그 파일의 소유자 권한으로

실행이 되는것을 말합니다. 

 

setuid를 사용하는 대표적인 파일로는 passwd파일이 있습니다.

저희가 리눅스에서 보는 passwd 파일의 권한은  이렇게 되어있습니다.

이렇게 -rwsr을 보면 x가 없고 s가 있습니다. 이 s가 있는 파일을 setuid가 설정된 파일 이라고 합니다.

(만약 s가 대문자 이면 실행권한이 없는 setuid이고,  소문자 이면 setuid의 실행 권한이 있는것 입니다.)

 

이제 setuid를 사용하는 예에 대해 알아 보겠습니다.

여러분들이 /usr/bin/passwd에서 자신의 비밀번호를 바꾼다고 가정 했습니다.

 

하지만 위 사진을 보시면 아시다 시피, other사용자에게는 바꿀 권한이 없습니다.

그래서 setuid를 사용하는것 입니다. 이 파일을 사용하는동안 소유자인 root 권한이 되는것 이지요

그럼 비밀번호를 쉽게 변경할수 있겠죠? 

 

Setgid

set group id의 약자로, 파일이나 디렉토리를 사용할때 임시적으로 group의 권한을 사용하는것 입니다.

여기 있는 동그라미 친 부분이 그룹 권한이 보여지는곳 인데, 만약 이쪽에 s가 있으면 set gid가 설정된 것 입니다.

(다른것은 setuid랑 비슷합니다.)

 

Sticky bit

sticky bit는 특수권한 중 하나 이며, 이 sticky bit가 설정된 디렉토리에서는 파일 소유자와 그룹 소유자

만이 파일을 삭제하거나 수정을 할수있는 특수 권한 입니다.

 

이 sticky bit는 /tmp 처럼 모두가 사용할수 있는 디렉토리에서 많이 사용되며, 만약 이 sticky bit가 

설정되어 있으면 권한에 t가 있는다.

그리고 이 sticky bit는 블로그의 개념과 비슷합니다. 만약 인터넷 블로그에 글을 올렸다고 칩시다. 

블로그는 모두가 볼수있습니다. 하지만 삭제하거나 수정하는것은 이 글의 소유자만이 가능합니다.

이거랑 sticky bit의 개념은 똑같습니다.